这里简单总结一下关于二维码的扫描与生成,用的是原生的AVFoundation框架,其实这个框架目前功能还是够用的,不过这里推荐一个二维码扫描的第三方(face++),网址就不贴了,直接度娘就OK,里面的内容足够丰富,感兴趣的朋友可以自己去倒弄一下。

一.二维码的扫描     

步骤:
1.创建输入视频设备(默认是后置摄像头)
2.创建输入设备对象
3.创建元数据输出设备
4.创建session目的是将输入和输出联系在一起)
5.把输出设备添加到session,将输入设备添加到session
6.设置数据源的类型(需要真机这个才有值),指定代理(在代理方法中监听结果)
7.开始扫描
8.添加视频的预览界面(这里是打开相机
9.代理方法的实现
代码实现:
  

 - (void)viewDidLoad {
[super viewDidLoad]; // 1.创建输入视频设备
//默认为后置摄像头
AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
// 2.创建输入设备对象
NSError * error = nil;
AVCaptureDeviceInput * inputDevice = [[AVCaptureDeviceInput alloc]initWithDevice:device error:&error]; // 3.创建元数据输出设备
AVCaptureMetadataOutput * outputDevice = [[AVCaptureMetadataOutput alloc]init];
// 4.创建session(作用是为了将输入和输出联系起来)
self.session = [[AVCaptureSession alloc]init];
// 5.把输出设备添加到session
if ([self.session canAddOutput:outputDevice]) {
[self.session addOutput:outputDevice];
}
// 6.把输入设备添加的session
if ([self.session canAddInput:inputDevice]) {
[self.session addInput:inputDevice];
}
// 7.设置数据源类型,这个值要真机才会有值
// NSLog(@"%@",outputDevice.availableMetadataObjectTypes);
outputDevice.metadataObjectTypes = @[@"org.iso.QRCode"];
//设置输出的代理
[outputDevice setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
// 8.开始扫描
[self.session startRunning]; // 9.设置预览界面
//视频预览层
AVCaptureVideoPreviewLayer * previewL = [[AVCaptureVideoPreviewLayer alloc]initWithSession:self.session];
//设置frame
previewL.frame = self.view.bounds;
//添加到控制器的view
[self.view.layer addSublayer:previewL]; } #pragma mark - AVCaptureMetadataOutputObjectsDelegate
//在这个代理中打印输出的结果
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
{
AVMetadataMachineReadableCodeObject * object = [metadataObjects firstObject];
NSLog(@"%@",object.stringValue);
//停止扫描,这样相机会停住了
[self.session stopRunning];
}
 
  二.二维码的生成(此列是根据一段文本生成一个二维码的图片)
  1.1 创建用于生成二维码滤镜
CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
NSData *messageData = [@"最近好吗?" dataUsingEncoding:NSUTF8StringEncoding];
// 1.2 设置二维滤镜的输入
[qrFilter setValue:messageData forKey:@"inputMessage"];
// 1.3取出图片
CIImage *ciImage = qrFilter.outputImage;
// 1.4 放大图片
ciImage = [ciImage imageByApplyingTransform:CGAffineTransformMakeScale(, )]; #pragma mark - 修改二维码的前景色和背景色
// 修改二维码的前景色和背景色,当你修改了前景色或背景色都会降低图片的识别度
CIFilter *falseColorFilter = [CIFilter filterWithName:@"CIFalseColor"];
// inputImage, 图片
// inputColor0, 前景颜色
// inputColor1 背景色
// 这三个参数都是CoreImage中的对象
// NSLog(@"%@",falseColorFilter.inputKeys);
// 图片
[falseColorFilter setValue:ciImage forKey:@"inputImage"];
// 前景色
[falseColorFilter setValue:[CIColor colorWithRed: green: blue:] forKey:@"inputColor0"];
// 背景色
[falseColorFilter setValue:[CIColor colorWithRed: green: blue:] forKey:@"inputColor1"]; // 取出滤镜中的图片
ciImage = falseColorFilter.outputImage; // 二维码上面添加头像,也会降低二维码的识别度
UIImage *qrImage = [UIImage imageWithCIImage:ciImage]; #pragma mark - 在原来的二维码的图片上画一个头像
// 在原来的二维码的图片上画一个头像
// 开启图片上下文
UIGraphicsBeginImageContext(qrImage.size);
// 绘制二维码图片
[qrImage drawInRect:CGRectMake(, , qrImage.size.width, qrImage.size.height)];
// 绘制头像
UIImage *headImage = [UIImage imageNamed:@"cang"];
CGFloat headW = qrImage.size.width * 0.2;
CGFloat headH = qrImage.size.height * 0.2;
CGFloat headX = (qrImage.size.width - headW) * 0.5;
CGFloat headY = (qrImage.size.height - headH) * 0.5;
[headImage drawInRect:CGRectMake(headX, headY, headW, headH)];
// 从图片上下文中取出图片
qrImage = UIGraphicsGetImageFromCurrentImageContext(); // 关闭图片上下文
UIGraphicsEndImageContext(); // 1.6 把CIImage转换为UIImage
self.imageView.image = qrImage;

效果图:

aaarticlea/png;base64,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N5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IwCx9A0lMgIBEAABEAgqAYhlUGsW5QIBEAABEPCNAMTSN5TICARAAARAIKgEIJZBrVmUCwRAAARAwDcCEEvfUCIjEAABEACBoBKAWAa1ZlEuEAABEAAB3whALH1DiYxAAARAAASCSgBiGdSaRblAAARAAAR8IxDxLSdkNGIJWNaIvXRcOAgMOQHbHvJT4AQjgABaliOgknCJIAACIAACl5YAxPLS8sfZQQAEQAAERgABiOUIqCRcIgiAAAiAwKUlALG8tPxxdhAAARAAgRFAAGI5AioJlwgCIAACIHBpCUAsLy3/YX92OxSikbZFqMPI9QP0tYzL8jH6W2NeyYzft1Yaz3PYqkqWzBg2h1Yb80pWJz+wbjfmJcZk6TINe4C+ajxPiLp9PU+m15VtfGNhYASBXgIQS/wUQAAEQAAEQCAFAYhlCkAIBgEQAAEQAAGIJX4DIAACIAACIJCCAMQyBSAEgwAIgAAIgADEEr8BEAABEAABEEhBAGvDpgCEYDOBb9t30yv2zebAi2BdQFvpq6H/8e1M98e+ZcxrMh2kf7LuM4Z5GZfRW15BGdtP0WzyurYfWV+laqsl4zxNCX5lX0u/tN9rCvK0baHlnmFeAQ/HPsg1d6VX8JDbb6RX6TOhJ4f8PDhB8AhALINXpxelRCKUT9BnLsq5TCc5R4/wxAX/xNKrLJ+jB+nT1u9Nl3BRbPVU68n5u/QPVO3TVWyx53iex6dTqGzW0DtYrj7sZ5YZ5RWjMP9qIZYZQUNkRQDdsPghgAAIgAAIgEAKAhDLFIAQDAIgAAIgAAIQS/wGQAAEQAAEQCAFAYhlCkAIBgEQAAEQAAEM8MFvwGcCNhVTnW95tlAZ5zX0P9NiumC85hhZVGcXG8MyNdZTQaZJSNZZLaQmYzrLaCXKpR6uA3N5PJJQHnVmnKaDr6wnizKZr0GuudEclIW1hSo4lRehLDJEklFPYOjvQqMe8egCIELZHPJrjCZRbWwbnaT5Qw7R65ofjH2WKm2zWA35RfEJZtHLtDO0MqNTfcRaSx+xMquDr4R+SV+hX2Z0ng/GHqZH6UsZpfGKPIH20ImQf/VcGjtLzVTldTrYQSBjAuiGzRgZEoAACIAACIw2AhDL0VbjKC8IgAAIgEDGBCCWGSNDAhAAARAAgdFGAGI52moc5QUBEAABEMiYAMQyY2RIAAIgAAIgMNoIYDTsaKvxUVzeF+iDdHVsnpHAptB7jPb/x/pvuofWGMPeZW8y2v00HuVFx6+O/c6Y5VPWx2ic5c90ix/Yt9KP7E8Zz+PFxhgZRhAIKAGIZUArFsVKJHCOLifZMnHzrVM8ceWUOYltNvtpbaFKepPeZcyyg/7caM/GeMi+zPM82eSHNCAQNALohg1ajaI8IAACIAACvhOAWPqOFBmCAAiAAAgEjQDEMmg1ivKAAAiAAAj4TgBi6TtSZAgCIAACIBA0AhjgE7QaRXk8CZTyQJ1KOmIMX29PNdon8Vq3tR4jTqfSemMaL2OUF4Q/SlcbgyfQDl7MvNUY5mXMoZhXkKfdq5w9FCav8nilqcPaq56cERA8AhDL4NUpSuRB4E76MT0a+rIx1IqZhedz9CB90/qZMc3B0PVGu5fxiF1BU+zzxuD/sh6gFdYuY5ifxuvsA8bsPkoPkVd5vNgYM4IRBAJKAN2wAa1YFAsEQAAEQMA/AhBL/1giJxAAARAAgYASgFgGtGJRLBAAARAAAf8IQCz9Y4mcQAAEQAAEAkoAYhnQikWxQAAEQAAE/COA0bD+sUROTKCFyqg2ts03Fmdohm95PU2f5Gu735jfDqvWaP8X+4Oe5TkRWmhM8yexL9CL9P6EMJk64uX+2H6Scuy2hOBZtIHWhP6vBHu2Bq9yVlHiubM9RzbppJ79/N00U3k2l4E0IOBJwPuv1zMJAkAgGYEIneSlx4eja+F5gbKZ3DxeMN3kYnY44/KcpQkZpzlH002n51v+GaM9W6NXObPNz690UcrNmJlf50Y+IJAOAXTDpkMJcUAABEAABEY1AYjlqK5+FB4EQAAEQCAdAhDLdCghDgiAAAiAwKgmALEc1dWPwoMACIAACKRDAAN80qGEOAkEFtBWOkePJNgvlmExvZbxqWpoNw+jedOY7hH7NNSzFgAAQABJREFUOqM9h7roeo9yeqUZy0NVTGk6KZ/P/h7jeebRs1TKi7a7XTXn5XWed9MWKrA63EnoMK9Bu45mJtjF8MfW60b7Tns81+gUY5ipLBLxAF3Fw49mG9N4Ga/ixedjvGj7pXILafOlOjXOO8IJWEmu3yvMadd+597tl2O9SUvW7Rebtmu/3stfVT5vNbZtv8B7uCEgYOkaM+Rth6QqRpbLibVRj/rZDLzuD9DXsltIPWReSN1rgfHvWyvpE9bqgSfno2QLqa+y5hoXUl9tz6YV9s6EvMRwyKqiKVaiwP7QvpU+bieeX9J41edDsY/QN+mnEiXBeaX5YOxhepS+lBA/RN0UDeUl2Ie7was+bXu4X/nIvj7Lsm7lEsiwb3nyi/ImXzVwblID+lj7Ze/2a5vsxelj7Xfu3X451k6n18dqP/LuhAMuHwcgAAIgAAIgMPQEIJZDzxhnAAEQAAEQGOEEIJYjvAJx+SAAAiAAAkNPAGI59IxxBhAAARAAgRFOAGI5wisQlw8CIAACIDD0BJKMg1SjVk1X4Eyj/c692y/HehNxdvvFpu3ar/cYDWuqAZ9tyUbDRtQANZ9POMTZ9ZCMxNQ/Q+fJengp8x6noc/fYpX1+Z2e/2X/Ff2Cvuo09fm90kR4NGjYcHoe0c0TUXL70js919iP0S661WlS/lm8JPsmy7z4ey7nxiMJE9JEeSxfD+Uk2MWQZ3Ub7VHb4jTmmWReabxGw8ogxAh1Gs8znI2mEdRyvRgNO7S1NlJGw5r/OoaWDXIfQQS8biAjqAiOSxWpNP/kvQSBlIjI7KVE55kmMaqyiLDlsZCaXNTO4WtLPE+MRc/7PIlCKXmLUIc9zmM6dzyNnXEar7zkQcVUFu/4CAGB4U9AWnBwIAACIAACIAACSQhALJPAQRAIgAAIgAAICAGIJX4HIAACIAACIJCCAMQyBSAEgwAIgAAIgIB5tAO4gEAvAVlP1eRep7voKC02BXnabqKf0wROBZc+gTqqpa/F3p9+Ao450zpE77c2GtNkmpdk8sXQr415LbfW8kjRxN9HjAf4/Ib+zpjGy1hMF+id9B/G4Ofoz6iRxieEVfNS7rfS/yTYszX8ir6YbVKkGwUEzMPp4gX3CnPatd+5d/vlWG/SknX7xabt2q/3mDoSr4sh/dcw+6DvfF6LaN8f+xY9QZ/pi5eO5zHrarrfGllffXgw9lleXvybxuJ5sTFGTmGcG/sDvU0rUsRKL/g2+iGtDn3CGNlrsXBj5F5jpuXsscOUY5tH/XqdZwLtpBOh+cbg6bFX6SB/x8XtrqLH6c3Qu93mrI+92GDqSNZI00o4UqaOiCjBgQAIgAAIgAAIJCEAsUwCB0EgAAIgAAIgIAQglvgdgAAIgAAIgEAKAhDLFIAQDAIgAAIgAAIQS/wGQAAEQAAEQCAFAYhlCkAIzoyATAGQ0ZOm7ev2F0hGHLq3abHXMjsJx37Evi4hH51vJ6+z6pf7SegfjWVJNkJ0Zex7xmurjB3y67JUPoesKuO1vd/6tfH8wsdUL2L7W/pYxtcmC6lr5s59spGwv7BuMl7DKmulMS/J97+tDxvTJBsJWxo765mf81qd/owBIMGoIgCxHFXVjcKCAAiAAAhkQwBimQ01pAEBEAABEBhVBCCWo6q6UVgQAAEQAIFsCEAss6GGNCAAAiAAAqOKAMRyVFU3CgsCIAACIJANAb2OqymtV5jTrv3Ovdsvx3oTcXb7xabt2q/3WBvWVDM+27JZG/ZX9hLabM9JuBJZRLuOKhPsYijl5bBzKXHN0B4KUwONMabxMuZQF5VRkzH4vDq//hn2R7nJWk8fsV7pNzh8sgasyd1vraJ7rG2mIPJKU8LXlcfX53bF1MKLkv/GbVbHXmvDjqW99BGPtWm/YP2KSq22hPy22BPpUdu8zux5qkqIL4YCaqMi3kzOK00Rl6eAOkxJPG0fsp6jedaphPCd9niaZ59IsIvhHvo2VdNZY5iX8RH6MnVSYULwFfQS3U//X4JdDN+inxjtWBvWiMU340hZGzbxjtKPwCvMadd+597tl2O9aVGUY+3Xwqht+lj2EMv++hgyXzZi6XUxdXYxVdpmEfNaSH29PZWusw94ZWm0X0+P0LrQh4xhObE26qH8hDD5gsqjoS8n2MUgUwhM7nP0IH0z9DNTkGea7/M0iE9Yq41pvIxeYjmHVtPO0EqvZBnbvcr5UXqIfhr6ljE/rzRfoQ/Sl0K/MqbJ1JhMLDPNK1n8e+g79GTo08YoXuWEWBpx+WYcKWIpggQHAiAAAiAAAiCQhADEMgkcBIEACIAACICAEIBY4ncAAiAAAiAAAikIQCxTAEIwCIAACIAACEAs8RsAARAAARAAgRQEIJYpACHYTOD+2LeMC1VPtg8ZF72Wxbq9FlJPNhJ2h1VrzO9/Wf9hPL+MaDSNhJVS/Iq+6JnGXMr4dALJ07R5LUqe6UhYr3OL/W263XhuuZ7DdoUx6Q/tWz3TGBNkafwy/dJ4nnCs0zPHm2L/ZUyz0l5lrGdhPI3MC+1fRY97pimh857XgAAQyIYAxDIbakgDAiAAAiAwqghERlVpUVgQGAICTxYV0daiYoravROKeeJq1JblGYjYRGH5ZJl4xKAsRLGYTTE2RkJhCoUsbm39mmrs+IIJ4XCYCnLzOB2HWSEqLMij7p4elUdROKr8Td02PWKNpZzuAmrt6qLOnhjxB7jUKfZyq6rS/hyfz2JLiDo7rqHW1nfLyeFAAASyJACxzBIckoGAJvBGfj49PaaCelgMwyxuoos2i2V8z4IYiZAtSsr9OOFwiKI9URZIEdCYih/m8DzaQjXRTUpE8/JyqbKkiCIsdkVF+TSmOJfONbRSXm6ExufFqK2jmw4199ArvFJRZ0cR1Te2Ukd3D4tv7zljLby60WOcv63Espn/hVjq2sIeBLIjgG7Y7LghFQj0EQhxC1CE0paWnIghi5asBxRlkYqyYKmN/dLu4wYl9fD7RhG2SF4ORVgAQzk5ZIXj7VBuVFJOJET5uSymsS4qzg9Tbkjyi7KwRqkkL0QcnSy7m6xImHKk9cnxRXDlnCLQ8TamOrs6UlmzDw4EQCB7AhDL7NkhJQgMIMDLdrFSsSiyaon0KeWSnWrhsVSKmLKahXkfCUdUF2xOTpi7W0VpReak5RnmLHiIUm6Y49uUF7E4PgdwvoUsoKXFLKwSkQW3o72LuCGr8pFWq5xenLqOuFf9a/faHSZ4QQAEMiSAbtgMgY226Ctj3zMWeRFtIlkD1e26KEJeaQ7SYnf0lMcft79FRYa1ZsfSSeP5JcNP2U9z64qbXy53Df2aPmb92GXN/lCXs95ew7q4R4mjtCLFhbilF+3uZk3jd5esYkrAWLQsVlLugVWtR1n4WISzm+MoQeW0Ej9k8ztLFtEOjp/Dm8RjnaRy7o4tKcxncWxhQeZRv1F5L8oizGHipGs3Krbe80leSrDjl6TimOpMAnbb0z3rTSU0/HMv/RPdyQvNu51clWbjDttNN7pN6riBaj3TnKMZxjTJjN+x3sdL9if+Bq6g48mSIQwEPAlALD3RIEAIPE+fNIJ4h3WfcbFwWUj9r+gZY5psjK/RHxuTyULq/219wxj2F3bUKJbTWND8nNbxSZ7uIG5c6BRVcN6iWdEYd39yK5DlkWL8blK1GHvFTBp4VjTKQil/dvwuk7ts81jgOrpYVNlux3pEZVnw5PWmtERt7nKVwT/cscrvJEsLClks89R5JN/OTn73yc1OaVFK3vKvCGVcNDkTdSxnkg7auPMq/0P8pRKvutZp3fvF9KaRZw+L/afoD+7oSY/bqDzj8yfL8EHr5WTBCAOBjAn0/hlnnA4JQAAEegnI20hpGUZ5xGqPtCa59djNI1TFJk4JGXtlH+EuVxE4afXlsj+f3zvGuDUoabs5rc7DZsGXFmUOi2mI+1FlNGwkkkPFRQUslpwH593T1cnCGBdItsiplFBKV67FzU0lohwurVA4EACBwRGAWA6OH1KDgBI+GeEq4qjGo8qeBVOJKPOxpN+V/5fRrzksjqxfLIIWFbBocm8r9fTw1A9uXUoXqhJYTt/a1kEtrfypse6oEmA1ulZajZECHtgToaL8HH6/ye8zeWO1VeeTqSa5LKgilCKYIVFL0WtRaTgQAIFBEUA37KDwITEIMAEWQVY5FixuXXIrzmIhlKdQOY7rVbyFKYLXJT2tLGqicRZ3w4qgSiszxoInymbzXt532iyc3dz1er6+kft2o9TR2UV1Tc2074RNDa1d6j2ndPNGozxlhKelSN6WxQIpA4SkS5fPLWeV+Zy8zA374EAABAZDAGI5GHpICwJMQAuTCKZs6lh5RSx5gQLuQpWpHT0sfl0sjNLiky7WC6xhEW519shLyviLStUIlPGu+aymxdzsrG9qpfbObqpr7aCtu4/RVhbR1vZO6uS8OnghggjPuewWcZT3pL1/zWpgj5JKadWKKqOaQAAEBksAYjlYgqM0fb1dRkd4WIvbNVI+W4+4zUmPecgLNdKEpHHcgV18niMea6OOoWM8KzHXnYRKqSHBpg3eeXVQqdWmoxn3opHS7RoXKdYmFqd4S1F0St4p8ntH1drkblKeV9klA3o4fntHhxJTeWcpbxUtFjzJg7OjPBbLSh75eowXI2jvknea3CqV96AqTg/nJ/M4OQ8WzqjY+KRqfBAHqBGynEeYBwvxibhLNnXLsphaM663oiRcvH4DrVRNnVRo5JipsZuXcvCqN6+8iqmLKq0Wr2DYQcCTQLJnTq8wp137nXu3X471Jn+1br/YtF379V4ewPN5q+Gn9Rd4DzcEBOTm7pcrpgvUHKrOKLv19lRKtph6Rplx5A4rj/Ks7oySyYhTk/scPUjfDP3MFKRGqUpAZeXnqazsdyx03MfKAiZL1EmLTk/hEKHM45YlT5HkEa089YN5y8jXIl6UoKMrSocvNFMb76UaZJWecl7ebm5tORVYMdp/pkktdpDP9trqMirMz6M2Fsg27pbdeaKORZKnmLD4tkh6rsj8ggIluNKFy2fh/y1qaXk/nTr9NT7mQ1HZS+hkIfVX6cOX7Aruoe/Qk6FPG8/v9RuQhyG4oSPAv9tbOfczvHXwJu8j5I/RuUkN6GPtl73br22yF6ePtd+5d/vlWDudXh+rPVqWA3DgAAQyJ2CxqPX/3bKP7666RRl/EBF1tHnkK6/Ww3+/VUV5VFZQRKX5ETrf1E5nGtqok1fnkTVkRUjLCyJUwosSlPHWxHMr5S+3tqKIairyKKewmFraIrzkXQ4dP99MdR3S2uTzc/4ST9qV0tIUJ+IrVxa/NuXBPyAAAlkSgFhmCQ7JQEATUOIoyqSd8svUDVmxR4SLB/5wV2sjtwjbeXRrDjfuCnN53VeeN9nNrcJCnkvZ3s3L2PGydaXc2pxcUUg1xRGqKM6jLm5BdvFAnnJelUAWOTh+4jxPtudFCnhUbR6/07TbuJuVzyfnkmX0emSepxrsI6flAD59VLV49cVhDwIgkA0BiGU21JAGBAYQiM+bFJO8c5RFAeS9oQilaKV0y3bxqNVWXp4uzAu7trDaHTzXQtXHz9P82go1kCeaxwLIqndZZSHNn1pD1UU5VFIQb2k28+Ce4xdaacPOOjrTHqNC/sJJR3u7ii9tRy3Ismye6LSSZ74Off6oDB6CAwEQGBQBiOWg8CExCAgBkad4t6fyiF/1vyrZiptYNYv5faKKyf4u7irtsHPpWH0rFedF1AIFMu9yZk0ZzbpsLJUU8fQRFrxwbj7tP3CSzrDCVo0bR2cOnuRVfXLU3MsS/iLJuQv1qqtVRNnmlqQM6pHpK+J0V/DAK4tfDv4FARDIjADEMjNeiA0CCQRE1KT1KCNgZVqICKXSSv5HwqSFl8/zH6tL87k1yO8ieQCPrPU6oaSA2tpaqIC/JNLD00PK+NNcsydVUnVVMY+ajXfhFo8ppZbmDlrUxd2txaVUGrKpO5TLXbklHD9Ex7lFuocHAXVz9640K3ui3Xw+vkQZZMQ7+TJY3JBw2TCAAAhkQABimQGs0Rh1lTXXWOyH7f+XXqM/SQhr4wkac2PmdUG/Z/3ftNzal5AmG8M8epb+2fqMMek19mMsEomLaBsjD8Ko2fyCR96u731PKK07cWrVnt68xZLHLyrHcWtxcmUZzZk0llfv4feYXTx1JFTK8yR7WBBbqbK8hKZOn0BjxlWTzUvZ2fwZrtySclrAg3pqKk9Se2srzZ00kyJFpaobtrGunnbzWPFTPEiojd9ryvSReJdrfMRrfJyPasv2Xgl51k1fBINnZ+gdBivR52MfpicMa/eG+a3q9tDdxjQXy/gb6xr+pmfilJ9X7UVZMbhY143zDF8CEMvhWzfD4spWWLuM1/E9+7TRLl/7eJtWGMMaqMRoz8ZYSnXkdW277FuJP3KVTbYZpdHnfzFcRRtY9GJRlkUWTWnZybtLGd2qGnbsz4vkU3VJPk0YU8DCl8cDefgTXZFi1QIVoezm0a5jWSTHTplIhRX8Iek2njLS1S4qS1UTx1BxeTk1n6ujjrZWnnPZQV2sh5FYLpVdkCkpPDiIj2WyiLy3lFV7lGSzjS9ngPOqmwGR0jw4RNOMdR1SQ5DSzGSIot3CC9ub5lO+RdPpbdv8+xyiS0G2ASEAsQxIRaIYl46AjEKNu3irUhRSxFKt0SpdsmxgDaNyXs91YnUxVfNo14ICXvKOE7Xz+q/53P1azF20ZWPHUP6YSgoVlvBC6T08mJXnTnK3q0w9K+Tu2HyectLZ2U7RtjZq562guYjO8qIFJTwFRbp5W1Sfa28XMCt2/L0pJ1d9wvErxL8gAALZEYBYZscNqUCgnwALU3wUrMiivGvULUsROm7dycZG+dBzKY9yLeR5lLkscDYvFCtdpRbbc/glZg4vgh7O4ZWHZD4mLzYgCw7IWrExXmjd4kE9HIG/b5nHrUdJI81GHjTEXyEp4danHFrSspX/RbM5X5lCIuvQKiP/CwcCIJA9AYhl9uyQEgQUgfjXPVgmHd2uqvuT50JKt6jMsWznpeosHqlaUlJEhSWFvOA5d1ba7Upce2R19XwWSx74I6IYbxFydyqvwiPvIMPy+jWSS6G8gt6vibAA8uLo4XCL6urNZxGVT3/FFZKXxuOGbnw6iSzaLvM9UVEgAAKDJcDPo3AgAAKDISAjYcWprldu2sU7XtkgrTzZsVp1c7dsN4tYQVERhfOLKZJfpMRTPu3V2cHfpeRuVIsFkXKKeCuWl48slLyGLM+n7GnngSrdPBhIJolYLKY5+fzFEhZWfj8c4w8t81oG8daruoh461bOKZ/sis+9hFoKGjgQGAwBtCwHQ28UpF1tzzaWspiXPp9DqxPC+PsatJduSbD7bWjmZb+9rm0WvciyIs2xga6Oauk0mctjKouk7qaI53lu7x38pARRWpUsiEo4pZXH/asyeUPESiRTumKb+NNarHLcSMxlYeQFB/LzeaoH8So98m5SumJZAFl4w2Fe39XKpRhPF+ns6CGLV/mJd8NKNy3P1eRF1WM9/P3Lbp6r2cItVj6XtCale1ZkU8Q6vjCCnNumitBpXr48sa4kdjrOi3M+jzY1ceO1hDyZVXINmNJ08oCsA3RjOpeTVpyX6Aoq45a72zXaJcbzS7y36XZ3dByDQB8BiGUfCnhMBFbYO01m+ifrPvpv6xsJYXV2MVXaTQl2vw076E5aYd9pzNZrIfWvxd5PX6JHjWl2hlYa7Q/GPsvnMTOwe1uUUXk3KH2dLFrc0GOpijv5mkiY30OKhnWz/2xzOzXyVs3L1oV5dGw4l1uJ0qJkAY3yQujq/WR7M4/n4bmSPK2kp7NDrSUb62Ex5GXvcvJYIG3+k+Wu2SjPy+zglX3aeDpJK4uttFrleuRLJPI1TbVJFyy/13y39Rx9LfQLY/nSMXotMP4V+iD9zMCthyHk8LQXk/uFdRN9yHooIWinPZ7m2ScS7Nka3mtvMiaVhdS96tqrnMaMYBx1BCCWo67KUWC/CURlRI84bkWqdVl5b/F8S3nfaHELMcIDdmR91gstbfx9Sh7NysqWW8wSykJqc9NS1n49d7aBys7WURGHhbjV2Xj6NHU21FNBYSHZfGxxHpK3zQJq86jXbhbP9rYOFspuapRvWsolqIYkX4PspUXbq9ryEWo4EACBwRGAWA6OH1KDgBpM45SjuEbFFzaXOY8FPAAnFuHWH3e5trXze0hWMRkMFOZRrBYnbOUl7/btOaFGxtZOHsdi2EVHdh2iulP1NHvBZVR1xVQqKBvDA344LY+M7ZaWJH8Ls4s/Kl3f1sULtHep7xpJVci7Sj24R/ZhPpbPg8GBAAgMjgD+igbHD6lBgMWJe2DVanM81cMWj4ghTydhbye3GtXUDh4Z28yjXk/xvMg2nlspU0c4FZVXllLJiQtUXZZPjXV13NLs4NGyeTR55mU0eXot5ZbysnaTJvHcS37PKeN8WDDl3WgPtywbOK/TjW3UyF24PSzKorwy1TKs3nvyOjrykWluYaJliR8pCAyeAMRy8AyRwygnIC3JePerDPKRV5fSdpSeUG5dcutPvi+ZE46oL48c5w89t3O3aRGPgI3wxyvzy4po0qxaKm9sobzCIsotyOV9HlWMr4lPE2FRDfMnvGxeEo9H8nCmLIjcvdvG6c82NNO5Fu6KlfedLJJqjqeoJecrcaRlKYN95HrgQAAEBkcAYjk4fkgNAixiPOZGRsJy16r4bWnliWOxktV9unj0ahEP5BHBPHauic7Xt9GYch75KhMoeRRsXjEP9pEFCyqq1BQS+UBlDn+Gi4f9xP/jdWJD3GqUhdpjLII9PBK2pa2dzjW1UV1LJ3WyGIo8x7tfRabl3OpSlKfXosz4BwRAIDsCEMvsuI36VF+xf0z/225N4CBtGS/3p/bveZRkZ0Iwfw45wZbKsJh+R7+1Pm6Mlks8RSPJdZgSVcUOmsz0EfoGHbKqjGE6TS59i4XtOTXqVSKqFh23KqU7VkbEtvGCBMXcQpQPNrdxq/I0D+YZX13AXxbhATssgB3tPBCIB4/2NPHC6bwUT4Rblt31ndQd5i7XULxbN8KDfNQAH86ri9eMbeGu3NP8jctGbmFKq1LUUfYyDla9COXl8mTeZ5TnZf48+j76XuzTEonOh6apvfufr8feS9/lcpicV/krKXFqhqQP89QRrzQ1hsXNTed02n5rXU2L6bDTpPyraCF93F6TYIcBBIaCAMRyKKiOgjybeeYeqS39wjbR+PQjp4iZRx00xarziOUt2B4J6AJNMQbxonOe57lgx9NUWCVULOIozble5xTMdu6KbezoolJeoSfMn9Vq5FZhB8+f7OL3jk31PGCnnWendsao2eqkPJ6DmcvfsOS163gRdYu/OsJL3xXyCj254d7PdvF7UI5fz922F1gwWzidnFWEUokmN25lgTtu0rJYcsuWRbPdLvQsX+/lUgsVe8bx5qxTD9zLIKMpvNC9X24CNRjroMZu8OsUyAcEUhKAWKZEhAggkJpAqHfaiGrQsljIIBztxN/c3kkF+blqEYI2FspWPg6JiJ5tpa6mKBVwQm5f8iNAfI1YaXESt0Stwhwe5MPryVbwurBl/AaSu27rm1roNI+gPcvfuZSPSPcJJZ9QhEquQaazSB5ROe7XcH1J2IMACGRIAGKZITBEBwFvAixM0hkrA3G4RaqciJYIIQtmK8+LLOZ3k3U83aOZV94ZwyJYXlFCVn6YW6YFvMB6vlr4PMST+mUEa0wWJ+D4xCvghQo7+ZhbkrwIwZkzjXSYtzNNcbGU7l4RSBFF6aqNT7SMn166YuUK4EAABAZHAGI5OH5IDQK9BLjVxz5Z1CcWE/GSzlCWSTGyk123WoCAB+fwvMi65jZeVL2C7AJ+t8gtTItbpnm85qsshSfCyqrJ9gh3ofL3K+027pXllia7+oYWOnK6ng6eaeY5ljw1hHVQNR61h+PI6Fs9XUS6gyGVCh3+AYFBEYBYDgofEoOAEGAp5K+A2DxKx2ahVF2hvFCrzLmUtV5FrUQs83mUaw+vTHChkZe9a5ERrZ1UzJ/rihV00/nWs9TacZ5Xos3jz21x9ysn6+R3mHYOD/rhd52hGM+b7LTpQkMHHT3fQsd4fmUbi2wOj7KNj4Llk4gq9m4DuoFZMOFAAAQGRwBiOTh+gU99O/3nJS3ja/QAj58sT7iGczSJfmDflmBPZmigUl4q21ye1fQJY9LttCjleeKNR27B8TpzFk/xiGuTCFQ8hDWSXz9aVMQr9hTwaNdG7ko9cvoCjaso5hGyISriuZUhHsxDPLKVeE1Vm6eYRHjd2JKCHIoU8MLprJzdPJeyhdeCPXyumbYfb6Dzzc5RxQPFMMrvKuUadKvWWDCXca61l263zWxcUfsO19qX0y6a3HecjmclbaWp1oV0ovbFedxeRttpat+x9myz52hvwn4Z/ZTHWMuo6IGuihdyz/R3MzAHHI1WAvG/ZnPpvcKcdu137t1+OdYbPy8n+MWm7dqv99KXxUMDqYafnl/gPdwQEEh2U7Vl7uAldLWxbXSS5vtyBR+gr9GjoS8b8xrMItoVFQ9RSfHvWJzk/WD/u0r1BRH+5Rfxh53lXWVZUR4V5/E6sTydpII/Aj1/2jiaPmksVZYXcAuTFyjgrth8Dg9zV6x8skvlxqrXxSv/tLa009a9Z+gXL+2mfacbZLCrcv0tS/nDkq+N8OAiDhGxZC+7MDU0vZsu1MWnhfhZnx+MPczL0n9JXUe6/8QXUl+XEN3vhdTPW6VUabUknOc79t30N/aTCfZkhvjDT7IYCBsMAe6JuZXTn+Gtgzd53yC/bucmP2l9rP3qZ95r137nnoN0P4t4ld+5d/vlWDvJJ8GhZZmABAYQyJ6AGl8jf5f8BJLPq+2MK86lKp43KY+IImQlPN9S3l1G+CHkAq/AU8otxzzuZs3N42klHCeH/wvx+04RQxHVbl65p5Pfce7Yf45+tmYX7eWBPdrFxZGXLuh9n6nuB6KQMkKWI8U/Etb/3lSnwx4EQCBzAhDLzJkhBQgMIBBvefDnsUSkWKUiLFiVxXk0u6aEJhTzl0U4dl0zv6PkL4QUsIgW5HLrkVuO3TxH8uwFXg+Wu267qqqokKeWFES6WFT5yyS8rmtUzc/soI0HztMzmw7RcV4LVhZgVw1GzlPEVTYxyHnFy7MyeToJz7GUYxFOFl60jBgMHAgMkgDEcpAAkRwEurqWUjN/htLmBQCkS7uEp4BY0SI6eSFC5xtCPLcyxiNgO8nqaaT7LzzKLUcRPF7Sjt9X5vMWCR1hPy86kJPHQpqrPuIsbUNZ2m7zuTD9+Pyt1N41R/VDqdV5epG/nztBy0KtfF6R47iT9Wh3xybQWlrJsiliGeJXoUt0MPYgAAJZEoBYZgkOyUBAE2htvZ9k066unuiIPnDsK9j6QOjbDktq71l7Nh23zcvQPWT9gkyr6/zQXkRP2P+UOnPEAAEQSJvApR29kfZlIiIIgAAIgAAIXDoCaFleOvY4cy+B9fZUus4+YOSxw6qledYpY1imxq/F3s+L68igukTn5yjRxNzjliN2hef5vdLModU8hdP8TCsLuev1aZ3pb6MfeqZxxnP6H4p9hL7J0y1Mzuv8vww9TL+khxOS9PAKRDk8BcbkPmy/Qh/u7zXuizKBdmZ8zX2J4QGBi0DA/Fd4EU6MU4AACIAACIDASCEAsRwpNYXrBAEQAAEQuGQEIJaXDD1ODAIgAAIgMFIIQCxHSk3hOkEABEAABC4ZAYjlJUOPE4MACIAACIwUAhgNO1JqapRe53ftP6IqO7OFt79h/ZxXtkkccnmt9RZ91H4oI5K/txfQOvsqY5p/CP2X0Z6N8Q76dxpPxxOS8uJ4JCNVTa6TSkzmpDavvF4h70XpvdJ4nUjIf5Qy41xJ3nX8HfuddMau9jqd0f5l61FeLUmWGoUDAX8I8BIfns4rzGnXfufe7ZdjvUlL1u0Xm7Zrv95jIXXP6vEvQFad8XJe0wa84mdjTzZ1JJv8Oqw8yuPPZfnhHox9lidUfNOYVaZsZOrIFPu8Ma9V1lxaYe1KCFvNixKssHcm2JMZZOrI6pD5KypeU2eS5ZdpGH8jhaIhXg/XJzc99iodpOszyg0LqWeE65JGHikLqYsowYEACIAACIAACCQhALFMAgdBIAACIAACICAEIJb4HYAACIAACIBACgIQyxSAEAwCIAACIAACEEv8BkAABEAABEAgBYEk4yDVqFVTcmca7Xfu3X451puIs9svNm3Xfr3HaFhTDfhs83M0bJ1dTJV2k89XmJjd9fQIrQt9KDEAlqQEshkNm+mo36QXcJECS2NnqZmqEs52D32Hngx9OsEuBi82js+FGtPBODgCGA07OH5IDQIgAAIgAALDhoC04OBAAARAAARAAASSEIBYJoGDIBAAARAAARAQAhBL/A5AAARAAARAIAUBiGUKQAgGARAAARD4/9u7/1jbjqqA43Puo/U1VJFSUmhjaaESgq0VkBi0tRUCiogSEyHVYkpMrEpiiNqICbY2/NUQFWwKhERFTLQ1NQqSEBOg2pYKwZI2UIUglYIlaUsFbe3vd457vfvWY905M/vHWfv8XN+dnDcza37sPZ95nMV9OfcUAb5Inb8DrQKXTP+gtT/vfDydmIeW0v5Kemka+mwXT25Ol08+OdrzDL1/242vmrwvvWhy39yQL85OS1fPfn0uvmjg6nRJceon0mvSzc3Xnw+5PjD7iXTT7KIhU6pjT033p2v33lvtH6vjzvTjg//ejHVv1tluAfk1jtpV67Nxrdsyr0tbX/KTbF6XmMa1riW/OlI7nRHjbb86MuJt1r7Um9I70/V7V432HLVfNVjkBmN+kXrb/Wu/BiL/ZZFrmq+ML121OfJ/Fq5PV5amDI6dnu5K9+6dN3hebULtV0dq49vi/OpIm46/j18d8RuyAgIIIIAAAhshID/BcSGAAAIIIIBAiwDJsgWHLgQQQAABBESAZMnfAwQQQAABBDoE+DRsB1D07kPpia0jOJJOaJ5ZP2fme/wjs0k6kuRzZvPXUJtZs8R0JZ8Wlic+Mv/ATeSJWfl/8vJsQ/dTvMHR4KxZ68li975l2bM4YfRg3ebISs5m9A2x4IoEyv/LWdHNuc3mCzy1d3jzHzJ7whOmj6Sn0jjP/auz32k+I3pNdof9Zu1TosXBTfCe2SnprNk3a92jxV+V/jR9fO/XiuvVPsH7lvT2NNZZ7zX6tbUunH4w3Zp+ufhsqwi+Pv3J4C9SX8VzcY/NF+CfYTf/jHhCBBBAAIE1C5As13wA3B4BBBBAYPMFSJabf0Y8IQIIIIDAmgVIlms+AG6PAAIIILD5AiTLzT8jnhABBBBAYM0CfBp2zQewrbe/anpJ+kR67doe/2XpX9J79t432v0vmH6ouNYPp0+lv5xcUOyrzfm9ybvS6yafL84ZGjw//Vf1/m+d3Zj+Nz1nbsk7mi9Frz1bbS+3z86tzrl1b9inV6fNr2/X7v/vzReZD71+cfr76Wvp++emnZs+l96/9+65eFvg0+n1zbM9u20IfQgUBUiWRRaCXQJ3ppc0aeTSrmFL658d/T3K8ZJlbS8/lm5Kl05uK+7jzbNbi/GvJ0m84yTLZ08eapTL93/b7LHi/R9MZzVnc1ax79ZJOfF9YfbClvMszyne4GjwUMta9Vm1ns+kn0x3px+d6340ndzEhiXLB9I5SV5cCAwV4J9hh4oxHgEEEEAgnADJMtyRs2EEEEAAgaECJMuhYoxHAAEEEAgnQLIMd+RsGAEEEEBgqAAf8BkqxvgOgafS6elLHWP6d9/XfApyFV9wfXq6q/hQR5pPdt41e26xrzbn4dlJzWrzc+5P393YlO9zuPKF9Y/ODjcfbnlm8f6nNj3flf5vru/R5j7fSmfOxccOnNp8VKa2n6H3Oi19eegUxiOwUgGS5Uq5d/9mJ6f/SffunTfaRs+Y3pm+kcZbr/ZgtWf+lekV6dzZvcVptS9Sf830unTF7MNzc05J96QH986ei7cFPpXOTq+elRPsf05OTWdN/ntu+gdmr0yXzz4+Fx87cO3edenadN3Yy7IeAhspwD/DbuSx8FAIIIAAApskQLLcpNPgWRBAAAEENlKAZLmRx8JDIYAAAghskgDJcpNOg2dBAAEEENhIAZLlRh4LD4UAAgggsEkCfBp2k06DZ1mbwAumtxbv/a30vGJcgrU5DxS+9Lu6yLGO103/OH0xvXxu2GNHv/90Lnw0cPHsY+nQ7Mm5zvPTzem2yTlzcQnUnvlV6W+rc4oLLRj8pek70qfTTw2affXkivSCdN/cnDvS86v7uXFyUfMLNI/Pzblh9pr0nvTeuTgBBLoESJZdQvSHECh9UXfXxheZU1vzq+nFxS8Lr42X+D2F5Crxs9MX0ismd0t17rp7Nv+F5DLoovSR6py5RRyBrzVfYj7UTRJlaT/3z55RXetl6evpWZOH5570081/xSXN5sIEEOgU4J9hO4kYgAACCCAQXYBkGf1vAPtHAAEEEOgUIFl2EjEAAQQQQCC6AMky+t8A9o8AAggg0CnAB3w6iRiwKwLfSN+XPjx7yaDtnJ4+n56TvlKc87n0hmJ8keAPptvS4cKXoi+y1ovTndVpL01/X+w7ofki96E25zUfonn+5Jtz602bD9D8Qyo7n9Z8wKb0DI+lp6d/S6+eW0sCt8zOS/enZ8z1/Uc6o7iWDDwhTefGS+CM5sNCpftL35jnKetx7ZYAyXK3zpPdtAjcki5r3ngvaxkx33Vpene6Zu/P5zuayGRafkMuDu4I/vXe1R0jxum+fe/niwu9fXpZesPs9mJfLXh1uiRdOblhrnuaDlXX+tDkwvTmyTvm5sh/2aX2hfW/m/6u+AlWSXq1/czd4FjgjZPPpjdOygZjnmft/sS3V4B/ht3es+PJEUAAAQRWJECyXBE0t0EAAQQQ2F4BkuX2nh1PjgACCCCwIgGS5YqguQ0CCCCAwPYKkCy39+x4cgQQQACBFQnwadgVQUe5zcPplPQ90/tH2+5D6XtHW2tVC70r/Vx6y+SmudtNWr6U9OXTv0lfShfPzXlh+uf0r3u/MBeXwJnTz6ZvF77o/eL0F+kje1cU59SCV03+Kl2Rbqx1F+O/OXtb8azbvnr18tlH01sLX/5+JA3//+13pJ8u3r/4sMeCr03vTzfsXdk2hD4EigIkyyILwcUFJumhdOri03dg5smTR4tf4t22tUea3yMsuT1a+P1CXeeR9KzinEea/97G0OukyRPppOZ3LYdc09nTivdvW6NtP23zSn3TdOIC9396aSliCHQKDP+/c51LMgABBBBAAIHdEiBZ7tZ5shsEEEAAgSUIkCyXgMqSCCCAAAK7JUCy3K3zZDcIIIAAAksQ4AM+S0CNsOQF6Zbms52TtW31/HTH4HufmW5PP5T+qTjvI+m3i/Hb04+kP5o9UOz72fSHxfgLmy8LH+v6dnpuc/+fKS73RPPl46Xr3nROdc5vTT5ampI+M3te+lQ6r9hXC345nVvrGjV+YfpgemZ6cNCaH0u/kZ5sPrKUX19NL6ra5GNpI2AF2t7tan02rnVb5nVp60t+ks3rEtO41rU81PQdbl6nzWazTzYl1xIEJnpihbVne3IU23WdMH0kPXX0r83B535Teme6fu+qg8FjrUW+RHtMmx+Y/mP1v7pRfOAFg7Vnli9Svyb92YKrLnfabZNz0ismdw+6ifz6UunTxYMWOTZ41va7MIssyJwDApPJ5JVN4L7m9VjzOtK8ptlLTkBjWpcyr2tMSrm0rXVb5nVp66XztX203L53wgOPTwMBBBBAAIHlC5Asl2/MHRBAAAEEtlyAZLnlB8jjI4AAAggsX4BkuXxj7oAAAgggsOUCJMstP0AeHwEEEEBg+QItn4Os/l6AnaN1W+Z1aetLknNel5jGta4ln4Zd/t+B1PZp2BXcnlsgsNECfBp2ucfDp2GX68vqCCCAAAIIrExAfoLjQgABBBBAAIEWAZJlCw5dCCCAAAIIiADJkr8HCCCAAAIIdAiQLDuA6EYAAQQQQIBkyd8BBBBAAAEEOgT4r450AEXo5qPxEU6ZPSKAgEeAnyw9esxFAAEEEAghQLIMccxsEgEEEEDAI0Cy9OgxFwEEEEAghADJMsQxs0kEEEAAAY8AydKjx1wEEEAAgRACJMsQx8wmEUAAAQQ8AiRLjx5zEUAAAQRCCJAsQxwzm0QAAQQQ8AiQLD16zEUAAQQQCCFAsgxxzGwSAQQQQMAjQLL06DEXAQQQQCCEAMkyxDGzSQQQQAABjwDJ0qPHXAQQQACBEAIkyxDHzCYRQAABBDwCJEuPHnMRQAABBEIIkCxDHDObRAABBBDwCJAsPXrMRQABBBAIIUCyDHHMbBIBBBBAwCNAsvToMRcBBBBAIIQAyTLEMbNJBBBAAAGPAMnSo8dcBBBAAIEQAiTLEMfMJhFAAAEEPAIkS48ecxFAAAEEQgiQLEMcM5tEAAEEEPAIkCw9esxFAAEEEAghQLIMccxsEgEEEEDAI0Cy9OgxFwEEEEAghADJMsQxs0kEEEAAAY8AydKjx1wEEEAAgRACJMsQx8wmEUAAAQQ8AiRLjx5zEUAAAQRCCJAsQxwzm0QAAQQQ8AiQLD16zEUAAQQQCCFAsgxxzGwSAQQQQMAjQLL06DEXAQQQQCCEAMkyxDGzSQQQQAABjwDJ0qPHXAQQQACBEAIkyxDHzCYRQAABBDwCJEuPHnMRQAABBEIIkCxDHDObRAABBBDwCJAsPXrMRQABBBAIIUCyDHHMbBIBBBBAwCNAsvToMRcBBBBAIIQAyTLEMbNJBBBAAAGPAMnSo8dcBBBAAIEQAiTLEMfMJhFAAAEEPAIkS48ecxFAAAEEQgiQLEMcM5tEAAEEEPAIkCw9esxFAAEEEAghQLIMccxsEgEEEEDAI0Cy9OgxFwEEEEAghADJMsQxs0kEEEAAAY8AydKjx1wEEEAAgRACJMsQx8wmEUAAAQQ8AiRLjx5zEUAAAQRCCJAsQxwzm0QAAQQQ8AiQLD16zEUAAQQQCCFAsgxxzGwSAQQQQMAjQLL06DEXAQQQQCCEAMkyxDGzSQQQQAABjwDJ0qPHXAQQQACBEAIkyxDHzCYRQAABBDwCJEuPHnMRQAABBEIIkCxDHDObRAABBBDwCJAsPXrMRQABBBAIIUCyDHHMbBIBBBBAwCNAsvToMRcBBBBAIIQAyTLEMbNJBBBAAAGPAMnSo8dcBBBAAIEQAiTLEMfMJhFAAAEEPAIkS48ecxFAAAEEQgiQLEMcM5tEAAEEEPAIkCw9esxFAAEEEAghQLIMccxsEgEEEEDAI0Cy9OgxFwEEEEAghADJMsQxs0kEEEAAAY8AydKjx1wEEEAAgRACJMsQx8wmEUAAAQQ8AiRLjx5zEUAAAQRCCJAsQxwzm0QAAQQQ8AiQLD16zEUAAQQQCCFAsgxxzGwSAQQQQMAjQLL06DEXAQQQQCCEAMkyxDGzSQQQQAABjwDJ0qPHXAQQQACBEAIkyxDHzCYRQAABBDwCJEuPHnMRQAABBEIIkCxDHDObRAABBBDwCJAsPXrMRQABBBAIIUCyDHHMbBIBBBBAwCNAsvToMRcBBBBAIIQAyTLEMbNJBBBAAAGPAMnSo8dcBBBAAIEQAiTLEMfMJhFAAAEEPAIkS48ecxFAAAEEQgiQLEMcM5tEAAEEEPAIkCw9esxFAAEEEAghQLIMccxsEgEEEEDAI0Cy9OgxFwEEEEAghADJMsQxs0kEEEAAAY8AydKjx1wEEEAAgRACJMsQx8wmEUAAAQQ8AiRLjx5zEUAAAQRCCJAsQxwzm0QAAQQQ8AiQLD16zEUAAQQQCCFAsgxxzGwSAQQQQMAjQLL06DEXAQQQQCCEAMkyxDGzSQQQQAABjwDJ0qPHXAQQQACBEAIkyxDHzCYRQAABBDwCJEuPHnMRQAABBEIIkCxDHDObRAABBBDwCJAsPXrMRQABBBAIIUCyDHHMbBIBBBBAwCNAsvToMRcBBBBAIIQAyTLEMbNJBBBAAAGPAMnSo8dcBBBAAIEQAiTLEMfMJhFAAAEEPAIkS48ecxFAAAEEQgiQLEMcM5tEAAEEEPAIkCw9esxFAAEEEAghQLIMccxsEgEEEEDAI0Cy9OgxFwEEEEAghADJMsQxs0kEEEAAAY8AydKjx1wEEEAAgRACJMsQx8wmEUAAAQQ8AiRLjx5zEUAAAQRCCJAsQxwzm0QAAQQQ8AiQLD16zEUAAQQQCCFAsgxxzGwSAQQQQMAjQLL06DEXAQQQQCCEAMkyxDGzSQQQQAABjwDJ0qPHXAQQQACBEAIkyxDHzCYRQAABBDwCJEuPHnMRQAABBEIIkCxDHDObRAABBBDwCJAsPXrMRQABBBAIIUCyDHHMbBIBBBBAwCNAsvToMRcBBBBAIIQAyTLEMbNJBBBAAAGPAMnSo8dcBBBAAIEQAiTLEMfMJhFAAAEEPAIkS48ecxFAAAEEQgiQLEMcM5tEAAEEEPAIkCw9esxFAAEEEAghQLIMccxsEgEEEEDAI0Cy9OgxFwEEEEAghADJMsQxs0kEEEAAAY8AydKjx1wEEEAAgRACJMsQx8wmEUAAAQQ8AiRLjx5zEUAAAQRCCJAsQxwzm0QAAQQQ8AiQLD16zEUAAQQQCCFAsgxxzGwSAQQQQMAjQLL06DEXAQQQQCCEAMkyxDGzSQQQQAABjwDJ0qPHXAQQQACBEAIkyxDHzCYRQAABBDwCJEuPHnMRQAABBEIIkCxDHDObRAABBBDwCJAsPXrMRQABBBAIIUCyDHHMbBIBBBBAwCNAsvToMRcBBBBAIIQAyTLEMbNJBBBAAAGPAMnSo8dcBBBAAIEQAiTLEMfMJhFAAAEEPAIkS48ecxFAAAEEQgiQLEMcM5tEAAEEEPAIkCw9esxFAAEEEAghQLIMccxsEgEEEEDAI0Cy9OgxFwEEEEAghADJMsQxs0kEEEAAAY8AydKjx1wEEEAAgRACJMsQx8wmEUAAAQQ8AiRLjx5zEUAAAQRCCJAsQxwzm0QAAQQQ8AiQLD16zEUAAQQQCCFAsgxxzGwSAQQQQMAjQLL06DEXAQQQQCCEAMkyxDGzSQQQQAABjwDJ0qPHXAQQQACBEAIkyxDHzCYRQAABBDwCJEuPHnMRQAABBEIIkCxDHDObRAABBBDwCJAsPXrMRQABBBAIIUCyDHHMbBIBBBBAwCNAsvToMRcBBBBAIIQAyTLEMbNJBBBAAAGPAMnSo8dcBBBAAIEQAiTLEMfMJhFAAAEEPAIkS48ecxFAAAEEQgiQLEMcM5tEAAEEEPAIkCw9esxFAAEEEAghQLIMccxsEgEEEEDAI0Cy9OgxFwEEEEAghADJMsQxs0kEEEAAAY8AydKjx1wEEEAAgRACJMsQx8wmEUAAAQQ8AiRLjx5zEUAAAQRCCJAsQxwzm0QAAQQQ8AiQLD16zEUAAQQQCCFAsgxxzGwSAQQQQMAjQLL06DEXAQQQQCCEAMkyxDGzSQQQQAABj8A2JMuZZ4PMRQABBBDYeIGNf59fdbLceJCN/yvFAyKAAAIIiMBK88mqkyVHjAACCCCAwNYJkCy37sh4YAQQQACBVQtserLUH7O1XLUP90MAAQQQWK6Avr9rudy7Lbj6OpOlhbH1BbfCNAQQQACBHRSw+cHWV7rVdSbLto0KyNpQ2h6MPgQQQACBpQls7Hv/pibLpZ0ECyOAAAIIIDBUYBnJcuhPhPn4vD10T4xHAAEEENhugTwP5O2u3Q0d37VeWkay7LxpZUBtc7V4ZRnCCCCAAAJbJlB7n6/FV769dSRLu3lbl83X2nl85VDcEAEEEEBgKQL6/q6l3qStnffpnKWV60iWspmVb3RpgiyMAAIIILBKgbXkj3Ulyy5YwVgLSNeD0Y8AAgggsDSBjX3vX1Wy7Ep8tt/W5UTy9tJOiYURQAABBNYikL/P27atlx6uq780Z3DMmyy7HtL227o8aN4uPbyO0bI0hhgCCCCAwPYK6Pu7lm07ycfYtq2X1ujqL805HvMmy+MLtVTsA9q6TtGYlFqXPlvXsZQIIIAAArsrYN/3bU6wcd29jdm69o9ajpUsSw9aiuUPXxtj41K37XwN2ggggAAC2yuQv8fX3u9rcbvz0phSzM7pVR8rWerN+jxUaYyN1ep6D0oEEEAAgd0TqL3327juuhTTPi37jNGxneXYyVJv2PWQpX6JabxW1/UpEUAAAQR2Q6D2fm/jdqeaJ2zM1rv67dje9WUlyz4PoBvSUufYtq1rPyUCCCCAwO4J2Pd7W5edalvLle++LVnWHqoWX+ThdS0t7Roak1Lrtp86AggggMD2C9j3+NJ7vca0HGPHtbVq8c7vhq1OLDxt21jp01dh6tGQ7de1tKzNIY4AAgggsBsC+n5vS62Xdih9+ir1S6xtfj6ndWzbT5b5Qou28wfIN1fql3tpXMrpojdnHgIIIIDARgvI+7t9v5eH1bY+uG1L3bZL43XeaOUykqXdhK3nD203rONKpUAeySfTRgABBBDYCQF5f29LmDYvaL20cdtn66Wxg2PLSJZDH0I3ZUup60sQnxi6KOMRQAABBLZCQN7fNVnq+77NB7IJba9tQ2Mky9omSnGNaakb17aUeV0QH9eBlAgggAACOyUg7+82Wcrm8lxgN2xzhI3rvDzWFi+NLcbGSJbFhbNgaeM2JsMVwNYlRrIUES4EEEBgNwVsspQdlnKBxrXPllpfqs6iybLr4br67aZkrI7P6zJOkiX/DCsSXAgggMDuCeg/w8rOarlA43123zW2q794j0kxejBYG2PjpbrGpMxfcgeNScLWupS2rXUpDzWvE5vX4WMvqT+tedkxdp1SvRl+/F5aL5USk0vWqF1tfbU5xBFAAIF1C7Qli7xP26XSxqRee+k/sUr5VPOS5PjYsZfU7Qd8dKysZet5u+ku3k/jtmyrS59eco/qJclmVZd9EJto8ri2ZYzWpRRQ+XFdsB9tXpI8hyRKvaeUtt40j7fzeqktsfzS9fI4bQQQQGATBPS9tO1Z8jG2rXVb5nVp116a+KSU93J9aVznyfOV6hKzl47J43bMqHVPspSH1CRh66UH7OrXOXbjpbrAyqXgmvg0aWo7L2WOjWnblm116bOXrMWFAAIIbKuAfX/N92D7SnWNSakvWUPrpdImRa1rWRqvsfzZSm0Z23bZfltvmzPX50mWc4sdC8jDSDLRsjSu9sA2Cdkxti7Akhyl1AQo99C6LfO4bWvdlnld2nLZ59qP8CcCCCCwOwL2PVZ3ZWNat2VeL7UlJq88MeZtHadr2GewfVrX/rzU+Vrm/Qu3x0yW8nClpGLjuoHSONmE9tsNydg8nrdt4pTx9iVryXiNaV3iEpNLy7x+tDPr1xglAgggsCsC+Xuq7MvGtF4qbUzqi7z0fvlciZcuHad90i5dtXhpbGusT7LUm9mEootKX1vc9ud1XaOtlLX1/nacJEf56bLt0vvJGrpOXte1Ja6XrbfFtI8SAQQQ2HYBfS+0+7CxUl1iGtd6qW37pF77qVLunY+ttWWsXNKvl9a11LiWQ+M672jZJ1kemLBgQx5Sk5Ct2+Xyjcj4PGbHt/00KXN1vtZtW9aRtl61eqlfY5QIIIDArgiU3mttrFTXmJT6Eg+tL1KW5kssv2RtvWxdY6OXq0qW+uCyKU1M+QY1bsdqfWip99E1tS3raMyW+iwS07q9p461MeoIIIDArgiU3vdkbzau9bZS+my/toeUuWk+V/v1Ptpeajl2spSH18Si9byUDWlMNydt76Vryv3zZ5C1Na7j9J46VsdImV92TN5HGwEEENh2AX0/zPdh46W6xDRuS43XYhHBzFsAAAdmSURBVLa/T90+l64pMa3npe2zcxeuj5Es5SGHJBM7Xjeo87Xdd0O6lszXNWSujWtdS+m3Y2t1GaeXHaMxSgQQQGBXBOT9sXTZeKmuMVvmdWnrS+6h9T6lPpOOtW2t9yllvusakizlZn2Shh2n9VIpDy7rSZ9eur6NaZ+WupaM1fHSl8e1LX06VtfVeVJqTMdJmV86Po/TRgABBHZBwL4P2v3kcW1rKWOlrm1b5nFta2nnakxL6ZNL21LKpW2tl0obk3rbpeu2jTnaNyRZti0mN7QJJW/L3K6Yfeg8ibXdO19b76Nr2FLGalvrUspl4/uR/T9rcTuGOgIIILDtAvY92O7Fxkt1jdmyrS59eb/GSnF9Fu3TtpR9YqUxdo1e9bGSZdvN5EEl4eilbVtKX56U8raM0TlS18vGSnWNSSmXPku+vsb3R33nz1r8OyOoIYAAAtsvoO+R+U7yuLa1lPFat2VbXfry/q526T4Sk0vn7reW8OfQRNA1Pu/XtpayBa3b0tZ1jMRsPK/nbZ2npe2XmFylmI0fHWT+0PEmRBUBBBDYWYFa0snj2tZSQLQupa1rn43lY9r6SvM1JqVcdv5+ZP9PjduYrXf1Hx+7SDJom5P32XaprjEpbV0eMI/Z/lq9NE9ictk5+5H9PzXeFbP91BFAAIFdFiglkTymbS3FQ+tS2rr22VifemmexqSUS9fJ66W2xPSy8zRWLUuJojr4WEfXnLzftrWupSwpdW2XSk/s2CPPrZ/HtS2l3s/GuuqLzOlak34EEEBgLIFBieHYTUtz8pi2tZSpWrelreuYvrF8vLZtmddLbYnZS+9vY9X6om/ybfPyvlpb41rKQ0pd26WyFNN5baXty+vSlkvX3m/V/+w7rr4CPQgggMD6Bfomi9I4GyvVNdanbBujfaKl9bxUSY3X2hqXMh9r+4r1Rd/4u+bl/bZdqrfFpE/7+5ay2XysAmi81ta4lPlY20cdAQQQ2DWBtiSS99XaNq71PmVtjBjnfTaW10ttidlL17Ox1ronGXTNzfttu6uu/UNL2Ww+x8YUQ8doW8taXPspEUAAgUgCtaSSx21b61qKl9YXLe0abfW8T9r5pc+Qx1vb3uTQNr/UZ2Ndde3XUjai9bws9dmY1OXSefut+bbGbZnPsX3UEUAAgV0R6JNE8jFtbe3TUpy0npd9++y4vC5tuXTt/dbBP9v6Do7MWt5E0DW/1G9jQ+qlsV0x2a4dU2orST5O45QIIIBAZIFagsnjtbaNa11LcdW6ljbWty7j5LJr7EcO/tnVf3C0aY2RILrWKPXbmK3Lo2lbSxur1e3Y2hiJ65WP17gt+4yx46kjgAACuyDQJ6GUxtiYrYuJtrW0sVrdjq2Nkbhe+XiNa9nVr+OK5RgJoc8apTF5zLY9ddmonV9q12IS77rytbvG048AAghsosCiyaM0L4+1tW3f0Lo42jnqWoppn5Z9xujYuXKsN/4+65TG5LG2tu2zddmUbdu6brgU69OnYygRQACB6AJtyabUZ2O2Lo62Xavn40rtWkzi9rL3sPHe9UO9R3YPbEtIOrs0Jo9523ovSgQQQACB8QTaEk6pL4+N3Zad5WuWdttnTGnegdiYyVIWzhPdgZsda5TG9InlY/J27f6lcaXnIoYAAgggUBfoSjql/j6xfEzelifqG8ufvjQvH9OrvYxE0mfN2phSvE+sNEYAanHF6erXcZQIIIAAAuWkZV1qySmP521Zo2+sNtY+R98x+Zxqe+yfLOVGfRNQ27hSX99Yn2corVVFogMBBBBA4IBAKbHZAbX+UrxvTNcvjde+pZXLTBp9166NGxoXpNocBezq13GUCCCAAALdAl2Jq62/1jc0nj9lbX4+blB72cmj7/pt4xbtE4i2uX2gvPP73IMxCCCAwKYIeBNN1/y2/kX7rF3bGnbc4PoqksGQe3SN9fZboK617FjqCCCAAAL7AkMSUtdYb789k6617NjB9VUljKH36TO+zxgB6TtuMB4TEEAAAQSOC/RNVn3G9Rlz/MZNZeh4O7dXfZWJZJF79Z3Td1wNxTu/ti5xBBBAYBcEvMmo7/y+46zpInPs/F71dSSJRe65qjm90BiEAAIIIFAVWCR5rWpO9aG7OhZJQl1r9un33Ncz1z7bWOvYNakjgAACuy6wSGIrmXjW8cwtPUtnbN0JY4z7j7FGJxQDEEAAAQRcAmMkuDHWWGgTm5JoxnyOMddaCJVJCCCAAAKjfuhmbUlSz3HTEssqnmcV91BfSgQQQGBXBVaRwFZxj17ns6mJY1OfqxcqgxBAAAEEXAIbkyR1F9uQlLbhGdWTEgEEEEBgMYGNS5B2G9uWiLbtea01dQQQQACBgwIbnSDto+5C8tmFPdgzoY4AAgjsosDWJMYS/i4nml3eW+ksiSGAAAKbILDVSbEGSEKpyRyM43TQgxYCCOyWwE4muN06InaDAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIDAogL/DycQL0/xYOc/AAAAAElFTkSuQmCC" alt="" />

ps:此列比较简单,写得比较简陋,后续有需求会逐渐完善,大家有什么好的代码也可以贴上来,一起交流。

iOS中二维码的生成与使用(入门篇)的更多相关文章

  1. iOS 二维码的生成 QREncoder

    生成二维码: 在生成二维码的库中QREncoder最为常见,但是由于中文字符的特殊性,生成中文的时候有时会出现一定的错误,所以建议使用libqrencode,是一个纯C编写的类库. 以libqrenc ...

  2. ios中二维码的使用之一: 二维码的生成

    iOS在7之后,具备了原生的二维码生成API; 生成二维码的准备:  #import <CoreImage/CoreImage.h> 导入框架: 开始生成: //1- 创建过滤器 CIFi ...

  3. iOS:二维码的生成

    所谓的二维码就是一个图片,只不过在iOS需要借用<CoreImage/CoreImage.h>来实现,  并且二维码图片是通过CIImage来转成UIImage的.具体步骤如下: // 1 ...

  4. ios中二维码的使用之二: 二维码的扫描

    二维码的扫描: 1,导入支持框架,<AVFoundation/AVFoundation.h> 2 ,扫描:

  5. iOS 中二维码扫描

    随着微信的大量推广,越来越多的人会在生活中用到二维码这一个方便大家的功能. 因此,很多的app中也逐渐的都加入了二维码这个元素,今天先给大家介绍一下iOS7后系统自带自己可以手动设计的二维码扫描. Q ...

  6. iOS 中二维码扫描(zxingObjc和原生)

    对于网上的第三方 ZXingObjC,自我感觉是对原生的AVFoundation中关于二维码部分的一个封装,大致看看ZXingObjC的内部实现其事和原生的实现相似的,里面都用到了AVFoundati ...

  7. ios中二维码的用法

    网上的例子 zbar 下载地址 http://pan.baidu.com/share/link?shareid=2652605686&uk=9237761871.新建一个工程A:view-ba ...

  8. iOS维码的生成和扫描

    iOS生成二维码(彩色 + 阴影) http://www.jianshu.com/p/85e131155b79?plg_nld=1&plg_uin=1&plg_auth=1&p ...

  9. iOS系统原生 二维码的生成、扫描和读取(高清、彩色)

    由于近期工作中遇到了个需求:需要将一些固定的字段 在多个移动端进行相互传输,所以就想到了 二维码 这个神奇的东东! 现在的大街上.连个摊煎饼的大妈 都有自己的二维码来让大家进行扫码支付.可见现在的二维 ...

随机推荐

  1. python学习笔记enumerate()与range(len)运用及赋值小计

    #!/uer/bin/env python # _*_ coding: utf-8 _*_ #格式1 a = 'abc' for i in range(len(a)): print a[i],'(%d ...

  2. 在ADS上由于volatile惹得祸

    C语言关键字volatile是一个危险的东东,笔者再用ADS做S3C2440定时器中断实验就因为这个关键字出了错.出现错误情况的准确描述是:定义一个变量时没有用volatile关键字,而且紧接着whi ...

  3. ASP.NET MVC轻教程 Step By Step 1 ——入门

    使用ASP.NET MVC有一段时间了,本人还是非常喜欢ASP.NET MVC这个框架模式的.在经历了WebForm复杂粗暴的做法后,自然感觉简洁优雅的MVC清新可人,只不过WebForm和MVC的设 ...

  4. 从xib加载文件

    一般自定义View, 如果从xib加载文件, 定义一个类方法, 返回xib + (instancetype)dropdown { return [[[NSBundle mainBundle] load ...

  5. bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形 容斥

    1914: [Usaco2010 OPen]Triangle Counting 数三角形 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 272  Sol ...

  6. Eclipse右键New菜单项的自定义设置

    大家都知道一般在Eclipse中新建一个项目或者文件都是通过菜单项的File-New来创建,然而有些右键出来的选项可能从来都不会使用到,而有些可能会常用到但是右键中又没有,这个时候就可以自定义New中 ...

  7. UITableView.m:8042 crash 崩溃

     CRASH : /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.6.21/UITableView.m:804 ...

  8. Android 联系人信息的读取注意判断是否为NULL Android联系人的删除实质

    在Android系统联系人界面删除一条短信实际上并不是真正的删除,而是在数据库中标记raw_contacts表中Contact_id为null以及data表中raw_contact_id为空,这是为了 ...

  9. 【BZOJ 3473】 字符串 (后缀数组+RMQ+二分 | 广义SAM)

    3473: 字符串 Description 给定n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串? Input 第一行两个整数n,k. 接下来n行每行一个字符串 ...

  10. [wikioi]拦截导弹

    http://wikioi.com/problem/1044/ 这道题是DP.前一问很自然可以规约成最长不升(含等号下降)子序列.难点在后一问为何能规约成最长上升子序列.后来看了网上的回答,仍然没有简 ...