define(function(require) {
	'use strict'
	var Class = require("class").Class
	return Class({
		constructor: function() {
			this._db = null
			this.lock = false
			this.strs = {
				connFailed: "请先打开数据库连接"
			}
		},
		connect: function(db) {
			this._db = openDatabase(db, '2.0', db, 2 * 1024 * 1024)
		},
		setItem: function(key, value, success, error) {
			if(this.lock){	
				setTimeout(function(){	
					this.setItem(key, value, success, error)
				}.bind(this),10)
				return false
			}
			this.lock = true
			if (!this._db && error) return error(new Error(this.strs.connFailed))
			this._isItemExist(key, function(result) {
				this.lock = false
				if(result > 0)
					this._updateItem(key, value, success, error)
				else
					this._addItem(key, value, success, error)
			}.bind(this), function(err) {
				this.lock = false
				throw(err)
			}.bind(this))
		},
		_addItem: function(key, value, success, error) {
			this._db.transaction(function(db) {
				db.executeSql("insert into zdMap (name,score) values(?,?)", [key, value])
			}, error, success)
		},
		_updateItem: function(key, value, success, error) {
			this._db.transaction(function(db) {
				db.executeSql("update zdMap set score=? where name=?", [value, key])
			}, error, success)
		},
		_isItemExist : function(key,success,error){	
			this._db.transaction(function(db) {
				db.executeSql("select count(*) from zdMap where name=?", [key], function(db, results) {
					var count = results.rows[0]["count(*)"]
					success && success(count)
				})
			}, error)
		},
		getItem: function(key, success, error) {
			if (!this._db && error) return error(new Error(this.strs.connFailed))
			this._db.transaction(function(db) {
				db.executeSql("create table if not EXISTS zdMap(name,score)")
				db.executeSql("select * from zdMap where name=?", [key], function(db, results) {
					if (results.rows && results.rows.length) {
						success && success(results.rows[0].score)
					} else {
						success && success(undefined)
					}
				})
			}, error)
		},
		removeItem: function(key, success, error) {
			if (!this._db && error) return error(new Error(this.strs.connFailed))
			this._db.transaction(function(db) {
				db.executeSql("delete from zdMap where name=?", [key])
			}, error, success)
		},
		getAllItem: function(success, error) {
			if (!this._db && error) return error(new Error(this.strs.connFailed))
			this._db.transaction(function(db) {
				db.executeSql("select * from zdMap", [], function(db, results) {
					if (results.rows && results.rows.length) {
						var rows = Array.prototype.slice.call(results.rows)
						success && success(rows.map(function(row) {
							return {
								name: row.name,
								score: row.score
							}
						}))
					} else {
						success && success([])
					}
				})
			}, error, success)
		},
		clear: function(success, error) {
			if (!this._db && error) return error(new Error(this.strs.connFailed))
			this._db.transaction(function(db) {
				db.executeSql("delete from zdMap")
			}, error, success)
		}
	})
})
Exemple #2
0
define(function(require){
	'use strict'
	var Promise = require("Promise")
	var Class = require("class").Class
	var store = require("store")
	var Db = require("SqliteStore")
	var db = new Db()
	/*
	照片持久化存储类
	原格式的isSave和count属性仍存放在localStorage
	原格式的照片实际内容放到sqliteStore

	如果平台暂不支持,仍沿用以前逻辑
	*/
	return Class({	
		constructor : function(orginKey){
			this.storeKey = orginKey
			this.localStore = store.get(orginKey) || {isSave:false,count:0,remark:""}
			this.exist = !!store.get(orginKey)
			this.isOldVersion = this._checkVersion()
			this.dbStore = []
		},
		//检测是否旧版存储格式
		_checkVersion : function(){	
			return !!this.localStore.format
		},
		//转换为新版格式
		convertVersion : function(){
			this.dbStore = this.localStore.format
			this.localStore.format = ""
			delete this.localStore.format
			return this._save()
		},
		//__开头为旧版存储api
		//当新版api不支持时沿用旧方式储存
		__getPhotos : function(){	
			return store.get(this.storeKey)?store.get(this.storeKey).format : []
		},
		__save : function(){
			var data = {	
				isSave : this.localStore.isSave,
				count : this.localStore.count,
				remark : this.localStore.remark,
				format : this.dbStore
			}
			store.set(this.storeKey,data)
		},
		__clean : function(){	
			store.remove(this.storeKey)
			this.localStore = {isSave:false,count:0,remark:""}
			this.dbStore = []
		},
		getPhotos : function(){	
			return new Promise(function(resolve,reject){	
				db.load()
					.then(function(){	
						return db.getItem(this.storeKey)
					}.bind(this))
					.then(function(result){	
						if(!result)resolve([])
						resolve(JSON.parse(result))
					})
					.catch(function(error){	
						if(error==="not support"){
							resolve(this.__getPhotos())
						}else{	
							reject(error)
						}
					}.bind(this))
			}.bind(this))
		},
		setStore : function(data){	
			this.dbStore = data
			this._save()
		},
		//清除缓存
		clean : function(){	
			return new Promise(function(resolve,reject){	
				db.load()
					.then(function(){	
						return db.removeItem(this.storeKey)
					}.bind(this))
					.then(function(){	
						store.remove(this.storeKey)
						this.dbStore = []
						resolve()
					}.bind(this))
					.catch(function(error){	
						if(error==="not support"){
							this.__clean()
							resolve()
						}else{	
							reject(error)
						}
					}.bind(this))
			}.bind(this))
		},
		// 保存
		save : function(data){	
			this.localStore = {isSave:data.isSave,count:data.count,remark:data.remark}
			this.dbStore = data.format
			this._save()
		},
		//同步到存储层
		_save : function(){	
			return new Promise(function(resolve,reject){	
				db.load()
					.then(function(){	
						var photos = JSON.stringify(this.dbStore)
						return db.setItem(this.storeKey,photos)
					}.bind(this))
					.then(function(){	
						store.set(this.storeKey,this.localStore)
						resolve()
					}.bind(this))
					.catch(function(error){	
						if(error==="not support"){
							this.__save()
							resolve()
						}else{	
							reject(error)
						}
					}.bind(this))
			}.bind(this))
		}
	})
})
Exemple #3
0
define(function(require){
	var Promise = require("Promise")
	var Class = require("class").Class
	var utils = require("utils")
	var isInWebview = utils.isInWebview
	var isInWeixin = utils.isInWeixin
	var isInYWT = utils.isInYWT
	var cordova
	return Class({
		constructor : function(){
			this.env = (isInWebview || isInYWT)?"product":"develop"
			this.ready = false
			this.readyText = "设备API正在初始化"
			if(this.env=== "develop"){
				this.init()
			}else{
				require(["cordova"],function(co){
					cordova = co
					this.init()
				}.bind(this))
			}
		},
		init: function() {
			if(this.env === "develop"){
				console.log("您目前调用的是测试接口")
				this.ready = true
				this.onDeviceReady()
			}
			var self = this
	        document.addEventListener('deviceready', function(event){
	        	self.ready = true
	        	self.onDeviceReady(this,event)
	        }, false);
            document.addEventListener("pause", function(event){
	        	self.onPause(this,event)
	        }, false);
            document.addEventListener("resume", function(event){
	        	self.onResume(this,event)
	        }, false);
            document.addEventListener("menubutton", function(event){
	        	self.onMenuKeyDown(this,event)
	        }, false);
	    },
		onDeviceReady : function(){},
		onPause : function(){},
		onResume : function(){},
		onMenuKeyDown : function(){},
		info : function(){
			return new Promise(function(resolve,reject){
			})
		},
		//system:目标系统
		/*
		AYW:爱运维
		*/
		openWebview : function(url,system){
			return new Promise(function(resolve,reject){
				if(this.env === "develop"){
					alert("测试环境:打开窗口")
					window.open(url)
					return resolve()
				}
				if(!this.ready)return reject(this.readyText)
				if(isInYWT)return cordova.exec(resolve,reject,'ChangeUrl', 'openWebView', [url,system])
				reject("您的平台不支持此功能")
			}.bind(this))
		},
		closeWebview : function(){
			return new Promise(function(resolve,reject){
				if(this.env === "develop"){
					alert("测试环境:关闭当前窗口")
					window.close()
					return resolve()
				}
				if(!this.ready)return reject(this.readyText)
				if(isInYWT)return cordova.exec(resolve,reject,'ChangeUrl', 'closeWebView', [true])
				reject("您的平台不支持此功能")
			}.bind(this))
		},
		locate : function(){
			return new Promise(function(resolve,reject){
				if(this.env === "develop")return resolve({
					coords : {
						latitude : "32.035456",
						longitude : "118.735547",
						Altitude : "",
						altitudeAccuracy : "",
						heading : "",
						speed : ""
					},
					timestamp : new Date-0,
					remark : "测试环境"
				})
				if(!this.ready)return reject(this.readyText)
				if(isInYWT)return navigator.Location.getCurrentPosition(function(result){
					result = JSON.parse(result)
					resolve(result)	
				},reject)
				if(isInWebview)return navigator.geolocation.getCurrentPosition(resolve,reject)
				//微信暂时调用HTML5定位API
				if(isInWeixin){
					if(!navigator.geolocation)return reject("您的浏览环境不支持定位功能")
					return navigator.geolocation.getCurrentPosition(resolve,function(error){
						var errs = ",位置服务被拒绝,无法获取位置信息,获取信息超时,未知错误".split(",")
						errs = errs[error.code] || "未知错误"
						reject(error)
					},{
						enableHighAccuracy:true, 
						maximumAge:1000
					})
				}
				reject("您的平台不支持此功能")
			}.bind(this))
		},
		telephone : function(num){
			return new Promise(function(resolve,reject){
				//state:
				/*
					-1:没有权限
					0:失败
					1:开始拨打
					2:打完电话
				*/
				if(this.env === "develop"){
					alert("测试环境拨打电话"+num)
					return resolve({
						number : "10086,1,1",
						startTime : "2016/04/30 15:38:00.8",
						duration : 0,
						state : 0,
						message : "",
						remark : "测试环境"
					})
				}
				if(this.env === "develop")return resolve(alert("打开拨号面板"))
				if(!this.ready)return reject(this.readyText)
				if(isInYWT)return window.plugins.CallNumber.callNumber(resolve,reject,num,false)
				if(isInWebview)return ccssoft.plugins.telephone.call(resolve,function(err){
					reject(err.message || err)
				},num)
				reject("您的平台不支持此功能")
			}.bind(this))
		},
		scan : function(){
			return new Promise(function(resolve,reject){
				if(this.env === "develop")return resolve({
					text : "6924187828544",
					format : "EAN_13",
					cancelled : false,
					remark : "测试环境"
				})
				if(!this.ready)return reject(this.readyText)
				if(isInYWT || isInWebview)return cordova.plugins.barcodeScanner.scan(resolve,reject)
				reject("您的平台不支持此功能")
			}.bind(this))
		},
		camera : function(){
			return new Promise(function(resolve,reject){
				if(this.env === "develop")return resolve("/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCQoKCg4LCw4UDQsNFBcRDg4RFxsVFRUVFRsbFRcXFxcVGxoeICEgHhonJyoqJyc1NTU1NTY2NjY2NjY2Njb/2wBDAQ4NDRERERcRERcXExQTFx0ZGhoZHSYdHR4dHSYsJCAgICAkLCgrJiYmKygvLywsLy82NjY2NjY2NjY2NjY2Njb/wAARCAH0ARkDAREAAhEBAxEB/8QAGwAAAwEBAQEBAAAAAAAAAAAAAAECAwQFBgf/xABKEAACAQIDAwcIBgcHBAIDAAAAAQIDEQQSIQUxQRMiMlFhcZEGFEJSgaGx0RUjM2KSwTRDU3KC4fAWJFRzorLxNUTC0mNkhJPi/8QAGgEBAQEBAQEBAAAAAAAAAAAAAAECAwQFBv/EACoRAQACAQIGAgICAwEBAAAAAAABEQIDEgQTFCExQTJRImEFUhWB8CNC/9oADAMBAAIRAxEAPwDsMBgCAAKRQCA0SgxYoBoBoCkUCAdgBAUihoAAYDACAAChgBAzQCAAAEAECAViBFAEAVwEAAwABlgNCQ0QMUGA0BSAaKGAwACkUNAADALgMgAGUADACAKAAAAFYgAEQKxQgAqPPMqAGihlDRA/gA0AywGiBoCkA0UMBgCFCkKAhAYkADAaAAGAIBkAAFAAAAAQIBABQrAAHnIyBAMBlDQDQDIGiwKAAKKGAwBAMWGhYaEBoSBANAMAAEAwGAAAAAwEAEAArFCAAADzTIAGUMBoBoBgNAMBlFANAMgEA0UNAMBgCAYDAEA0AAMAQAAWAYAAgAAAVgEyAFjzCBoB2AYDKACgGgGA0UNAUAyhoAIGgGAwABoAQDQAAwBAMAAdgAAAQAAAAE2IAUPNACBooYDQsNANED1KGiigBAMCkUCAaIACkAANACAaAaIABlAAwABgCAAAAAQAAgADyyBogZQ0AIgoWBANFFFDQDAaACCvgAIoaAaAaAAGiAApFAAAMBoAAYAAAAAAgAAAQHlksADRRQASQyBooYDAdwGiikA0A0AAMBgMgEAyhkAUMAAaAaACAKGAABAFAAgAAuB5SMgFhooZQzIaLAaKGQNCQxAZQwGgGA0QNFAgKRAAMoAGAyARQAMgdyAKGUFwAgChAAAAAeSQNAADRRRAAUiAQDKKuUADQFIAAaIGA0UMgaEBuXo0/bL8kUZSpT9GpLN4rwIIp4iUZ8lWVp8HwYHSQMoEAwAgaKAoAGAAIAACBWA8kCgAoZA0AyhogYDAZQwGgGgGA0A0A0AyDOpUyyyrfw7yjSKsu4kiiDGsqU2oT3vVPcB2ZE6fN4GhmiC1Tl3ItBSjl+YoSZFIoCgAAAAAAAoAPIMhgNBDAEUUAyBoBooYDIpooAKQABQAAwOPM5Y5x6rfAg7kAXAxxNPPG66UNUQdeHnaHO48OJsUpJdFe3iA7lD5vpbnpcDOUcr/ADMBEDKAAAEUAAAAGgHkIgEBSCABlDIGiBgNGg0AyKZoNEDAaAYDAZBwy5m0V1TV/dYg70ApVIwV5Mow86zdHTtKNKcrmh0xAtAOUVOLi9zA5oyqxllkr8L8O8yNUQNFAiAACgAAAAA8gyBANFQwABgUgpoBlQIBhTQDAYDAaAaIGQce0OZydbjCVn3Cx2r4ix5OJnU5aSnw3LhbgWxdORbHbR1+ZR2ZcltU09zQFIooAkrokjIyGAwAAKC4CALkAB5FyBgBUNAMBgNFU0AwhgMKAKAEA7gMC1GT4AU6coq7IOPHqc6XJ04uUpW3IlDqjaEUpSWlk9RQ5cVTwtWSk6yjbR6XLQmEtnU/WqPwXuKNHtSlDmU6aV93EgiOMzzVKL43ZoehCVyjVAUBnJa9jMyJuQMBgIoAAAICxoeRcyABkQFDAaAYU7gNFRSAEFNAVZkoc2OxMsKo83WV9/YaoefLaleXpKPcBzSx3O+sm5Lirge7U2paneG/Swscf0piar6SjwJY6YYevVipVKz11svmQWsDS9Jyl3v5Aa+a0LWyLXS+9+JB5EoulUcHvWgGVTWQV2YGOV36zQ9Wmyo6YgXcoJRuiDEwAoChgIAALkAUeQQMAIh3KACgAKYFIIpalDcqUOnLXqKrKW0cPDooDN7SrT+zg2uuwHDj6WMxEM7i7R1tpcWOOns3GT9B9l9DI6qew6vpSivj7gOunsiMYKMqstNOG7qA6oYDCx9C/a7sg6VotPYAwGB5+0qO6qu5/kBwLeFduH0NDupsqOuAGkedpHnNb/5lHRGj6z9i3FBLDwl2GaHPOhOPaShkAAFyAALkCKPIuZQzQaAAGgACkAwD+mBhVxM5Pk6W80ohg761ZOb6tyIN4UaUOjBd/EDUAAaIGgGiB/ABgADuQTUgpwcXx0A8TK4TcXw3lHVRZR20W5O0FmfHq9rNDvpYdv7R/wAMdF7XvZodsbRVo8OAF3KEAiDOpRjPv6zI5ZU5Q3+IEmQAIAA8gygNB3AYAAwHcBgYV6jtljveiKNaNJUo9r1bCtSBgMoCBkDAaAaAdwGAXIC4HnY+l9YqkV0tH3osDTC4fN9pu6jcD1qajBWivYBvFmhrFgWUMBAAEtX9pBzVKOXWO7qMjAwA0GKHjoyh3KABgMAAaIFJ2XeWBnTWarmfDcVXQiCgABlDACBgO5AwGAXALkCuaGFd5pJdWoG9E0OuLKNosDSIFplFFDuArgK4CIOerR9KPtRkYGQAeOiIZQXIHcBlAAwJk9e4sB0eL6wrUgAKuAXAAKALgMgYDuAXAVyBXNDnfOm/ADrpGh0RKNYgapgWmBRoO4BcBABAmBz1qXpR9qMjADyDCAAKGENANBQgIlvfYaGlPorxIqwAgYAUMBkDuQFwGAXAYBcgm4GEN/ebHXTNDaLA1TA0iwNEBaAooLlCAVwC4CZERlj1EHzpzDACgCGA7hQBm/iaGy3EUwHcgYAA7gBQ7kDIC4DuAXACCJPRgY02bHVBmhtFgaxA1QFpgWmBRQyguArgFwFcMkQfOI5KAGAABQ7gHAQI4pFGyIoALkDKGAwABgADALkDuArkVE+iwMYG0dEDQ3iBtFlFpgaJkFpgXcAuaDuArhAArhDtLqA+cOKgAAAGUABLcICj0+4o0IouAEDRQwGA0AAADALkBcBBUT6LAwgzSOiDNDeLA1iyjSLAtSINEwLuUO5QXALhBuWaTyrrIOeeJvpS3cZP8iWrPPU9d+4WPJOaC4AA0AIoaAUiwFDe/ASNLkBcACqQAA7gFyh3ACB3ALgACIInuYHPFmhvBlG0ZFGsZAaxYFpgWmaFpgPMBe5Xk8q6wMJYuK0pLM/We4zYwk5Teao83w8CAuZAB5aIgAAGgC5Q0BL+BoOnu79TMirgFwBBVICgAARQwAgAAAuAAQwOXj3FGsJFG8WUaxkBpFgaKRRal4lF3UFmqNQXvIM5YzhRj/HL8jNjFylN3qPN2cPAm4O5LDKGZCA824QABQAMgAIlxNjSO7uMh3CEGgiCkA0UMBlAAAMAALgICGQcs9JvxEC4SNDaMhA1UijWClLd47kBTq0afSlml6sS7hLxlR/ZpU0+O9mdwy3u8nmfWzNtLuRFJlFXCGUVcAuB5pEAAAAABcCOrtNDUyEEJhp008HVnGnKFpKo7Jrg+p9QGv0fW1tKDa1spK+gEU8NOWbNzbU+VXatwClQnGlGt0oS4rg+pgQld2KOitg3T5S0lJUnaS3PvsBNLCVKsOUTio3y3k7a7wNPo+tbNmhZccyAmeCqxhKpeEox35ZJgNYNuEZyq04Z1dKTafwAJYG2+vSV9Vzn8gIngnGnOoqtOahq1Ftvq6gOHzeVdzcf1cM70326hAmhQqVJxj0czS17TQ2qQpYepOnUqZnB25qAPObfZ0/bIkhOpUn05vu3IzaiOhBVwirhpSYRSZRSZUWAyAuB5yIgAZAGgIAe4sCPSXYJGhAmEAaelg1BVKDo1XlnJZ6T35kt/agjXDwiuRklzpKvd9dtxQ/R/wDw/wAyKxyZKUZYeo5qdRQcGrJyWq4gbWx8edLDwstXzYlE47FzhiKlPLC3XlV/ECaXJPZ/1rajy3oq+uUDSEcJ5nUtOeTMruyvfxAmmsOsLieRlKWkb5lbiASVO2Hc4yqNUubTj6Tu94HTKEqlTPNQy2vycoJ1berYDjlmccXJ0uRTjG0LW4oDmwCh/ec98vJPNl3203XCsoPZkJxmlXbi01dx4ewbhVars6rOdTLVU5tvfG12ZHLcBpgVcCrkDuaFJkFIC0VFoopEBco84ygACB3NAuApbu8sBQ6T8BIu5AXCJDT0aGTD0cPXyZqsqja/dWlvEI6ZKdCFNpZ+RjPlYJ6xdTXUozpVY1FLL6GFyPvTClh6Kq4HnyyQjVbk/wCFLQBeb16mDoxjBt5p8O4AxFF4ivCSdlVpqd/3Y6/ACo1FQwFPNBT5SbklLs0uBdPEQeDqS5GFlNLLrZ+8CadaNTC4m1ONOyj0eOvaApzcY4ePKujCVPnSV+t9QF8yW6WGqdsk4SA54yqcjiozlmcIpb7+lwAzwcuQw2IxDSasqcVLVNt6oiuf6Rf+Hof/AK0A9qRjDFyUIqKtHSKstyIOQC0UUBRkBoWmQUgLRUWvcUWAAefczLIQAFFwABPeagFPd3kFEQigQV2U8dWhltlvCOSDt0e1dpRnDEVadTlYyanxfeFa+e1OSdNRhG6yyko85rtYGUatRKKUnaDzRXU+sBzxFafTnKXe2QaUsbVp0nSVnF3s2tY332NCK2InWyZt0IqMUuwgI15xpOkrZZNSfsKNJ46pOm6ajCEZdLLG17dZBS2hiIwhCDUVBW3J/G5QvpLF+uvwx+QEVNo4idKdObUozVtyVuPCxBy1sTUnRhRf2dPcl8WBygbYjEyxNXlJJJ2SsuxWIMwKAoCiKYFIIpFFoC0UWgGKR56MwgEh3CgAAiTNQKj0UQMiEUNBVIqKDQAAC5A7mgAFyAuAXKEBLMjGRRlcBkDAal7uIFAUFUgKREUii0BUSjQgdy2jgIBAMgVyjn5ZT9K3YePPV7u2OIy07fafEzOs6HCpFNRi278Tenl3c8obnqnw4TCSiolVZEAaO5UAARTuaBcgLgFyguBIEsDKRBmwAgaAooYFAUQNEFIotFFoC0QUUcBEMAIF+W8o81dJ6nhzju7xLbKrdNd2tzMw0nMoNN8P63GtOO7GUu093pwlIGiKqwguVoEQXALkUXKC5Q7gK4BcAAgDORBkAANAMCgGBSAogtMopAUgLRWV3A4CKAGQIDjlQp53l5tuC0RnYtnGh35XoWNKF3NY0oQei16+JKZtobQgq0QWIHFOWevN36NoprTvNwDl8RDo5ZxXCV0/FfIUgjtbD6xq/VSXDNFr3DaNY7RwclpXj42+JNqq8+wr/XQ/EhsF+dYb9rD8S+Zaks/OKP7SPihUlny1P1l4odyzzx60Kkssy6xtUrk2jOQoZsUEKDuAyBgUBQoUBSApAUgLQRQHEQK5QyAuBzy4iIGlNPk1LruaRUnmu/bYgV7oFEgrRAVey7hA4IJxi5T0zXcvazcDzdqYxr6qm9N8n+Rtl5eZmg8wBc1SWMzLRYzv+rCoLVGrLs8EKgtfK/dj8CTEFjlvur3/ADG1bLln1f7vmTaWHWn2r2v5jYWfnM/Xl+JjYWXnlf8AaT/EzO1bbLEYn9tPxM7Q/O8V+2kXaWfn2M/bS9w2ln9IY79s7d0fkTaH9KY79r/piNopbWxvrr8KG0tS21jFxj+Eu0tX09jPueD+Zjatq/tBilwh4P5jaWteUeJ9WH+r5l2lq/tJiPUh/q+Y2lvWucQXKhXKJnLQKykyjqiv7nTfbIIy/MgkKcSi0EehsfDQxOK+sV6VOMpyXDRaLxZcSnPiMLh5zlCzUY6Jp2dzU44yr5Ha1KFLG1KdN5orLZ7vRVy4+CXGdauWPBmtiXB2NbTsVhQVhtktSJ3Qy1KxtMndLSZWCkXsd0k7L3VTWaRSadBhqdtFYREoQmxUZWTXB6GVhTq3jlyrv4miWNiTEoB3CM1Kgdwh2LA7Jb6487QKgKM3qwqJFHduwdKPe/eEczIJkFESiwj0cLN0MHKS6VeSiv3Yav3mNTKnTTi3BUxFTlZvrbPJOrk9HJfL7Tk5Y2rJ8Xq+O5H0dDvhDyakVLPCU3VrKKV+LW7Q+hw+nebz6+W2H0NXAxnCHJ0Y3tztErPq3H1OXpvlY8RI+is1O3IRz8XZbicvTdefLmrbLjkUY0Hyier4W7jzzoRbvjr9lS2XRlQ5tJqrxfadp4eKc8eI7ueOzqUbZ4SzXWZa5bGY4eHXLWd9fZ2Ayy5Oko2Wjzyb3d5uOHh551cnNiMFgeSUqUZcrreHO0Wut7mJ4V0x1nJ5hT5OMszzOVnCzTt1nPpXbmtq2z8Jf6uNS267a/8AU7dHg5c/Iqmy8DkzU5y6WW0nG/fa24xPB4Nxr5Cps3CwV6NWUm9y0fiZ6JY18lz2ZSXRrPq3K9+646FmOKyvwqWx4ZFKNfR3SbjZXW/icuij+zrz3P8AR3VVWvZb8zM8FH9m+ccdluUftY5tyQjgSddEtl1o+lG25ky4GSNdP0bX4OL9r+QjgM0nXKWzcRBejbvfyE/x2ZGuxeFqx9XxOc8Jm3zU+b1OzxMdLm1zS5GfZ4mOmld5clP+mXppXc+qPntlcAk9AjMrSePYUp3TqQ83pR4pO/4mEpz9K+VbtX3Clpmn4Cigt5EaFKdOKqZJQo8KMdV956s8nEZvRpQ5Lnmh3fN7Q/S6v7zPtcPFYw8GpPd3eTtFVsa42TtBtXva911H0eFmpl4eMy/F9jTw0kudGL323/M9M5vgzn3TToNT+tjTsrbrrV9+hJzWc1eaqcujD+Fu9hzP2vNkeaWbUaXM682u75jmfs5zDE4bD0XmnHLB2vN1ElrfTVGsdWf+h0x1Jyy7MJvZzSy1oa7/AK6CsbjVn/odazvwcaeA38tHThni9OvRjm5SxM6g83ws1m5RRstFeLd+reXmZQROoqOFwlTS7T9bS3HtHOzJzZeYUt2af4NOPaa52X6dOd29s6mxryUuWcYu+mVrxMzqzLWGv+lx2I5axqrTR5sy/IxzZh0nX/SXsHEejOHjL5DmnVY/RPYWJstaena7/AvMxOpx+h9B1+qPii8zD7Xnx9l9D4y2iWnC8TUa2H2vPj7YvZO0E+bTSvwzR+Zrn4sxr4/YWz9prSVHNF/ej8y8/Febj9uWvsfaEujQfivmccs7dsdfD7ZLZG0Lc6hLs4mIlZ18PtnLZWOX/bT8JEqGuo0/7I+jcd/hp+DJsOp0/wCz1z8++gLgRN2RVZrX5FDuC1qXuChTavbjoyoQVHKWqW9bSxCnZgoqVdZuhDny7lqVm2c555TqPfNt+LPmas93t047JUVb4G9PFMnzm0o5MbXh6s2n3pn19P08Wfl6fkmv7/L/AC38Ue/Rjy+dx/h9skbl8POU+k9/DW1y+ltcN/8AKxJRZn/TDyPKbTZ/fOK+J20O8vVwcfm+OyykmrKy3u2trt3O0w+z+MS6KeIhCOXLfq4HXHLGHKcBKvTkmrW95cssZIwFOph4xyyhd9enyMxlilNPqmrxpPvtp8DpuxXLFpnpQXMzRfgc7iCNP9H5xVUrqrOMd1s0l+ZiZiVnT/TXzyf+Iq6fel/7GqwZ5WP0yqY/E5ebXqXX3pP4s4544tcnH6Uto4nL+mTvo7c7f1DbCcjD6RLa2OV8uJk96/nqjMxC8jD6XT2rjLa4rv0T/wDE9GOGDlPD4/SntjGx/wC4zfwx/wDUThgsaGP0VLbW0HfPVWm7mxWngYxwOnj6W9uY2N+fFtdiaLOEJ08fRU9u7QmtXTTW9Wt+ZnHBMuF0l/TGO66f9fxHTlsdNptbn5d9orgZVuhvs9NfaGsWGecXZxvbjHVFdNquU67+DQSj5ekuOq7xbUaVpli4cLiZajh0OtVn0Vl43FusaQopcouMtW3x3Ec9Tw9ijHksDUq+lWkqcevKtZfImpl2cNPHu5N0rdWh8/KHs9O+WBqU9mLFTikqk/q5ap2S17Ldp6ow/Byt8Xim5Ymq5PNJybb363ep9LTj8Hlz8va8j1/fqnZB/FHu0vi+Xx/h9qivjSlrnTsr7tL24FIFn1P8V+sK2S0MsPG8qP0GP+YvhI78P8v9PTwnzfJR3T3dnvPTEdpfV9s7HNoBQRYdGGqTjUjHM7NpNXtp3lsmHVWo1GnKKlpfO5Si+BExk8PK8VTi6l1a8YuPik9eJlZVmt0nO1O8fQ4qz+JblmJYSqU2ubKV3pzkre4jrGbKOKnFLSNlueVX8d5IzYnEqmIzxy5Irtircd/uE5kYuK2pm2wLC1M2tDWxLKK7BQzPrG5KezSxsZ0s/veisfDexD2jTUrXT6ktQKq1+bZ8bL3hcWtNldLbwqO3N/r3FoceK+2d43k7a6dXaZenSRHdZxsIbTJ9b5u5LcgNaOWNrK2a7b3vu7i08Wvl3evjrUo0aEf1ELy/fnqzz67Wl4cK50u88rv6e5tbGZ9l4bCSWtFtX+6kj2xl+Dh7fn9d5q9R8czu/afS0/g82Xl73kbH+91eyH5nq0/i+X/I+H2sSvjyyla7vltdWv3FICy/c7d60Ct1Zr495lh4vlR+hQ/zV8JHo4f5f6erhPk+Vp9Ge/3du89keJfTnyxsclAUxRLfknDJOKz3s2rO25Mu0jJry+b9VHjdJNcP6ZmhFSpm3QUO7+uwi2fL3WsdVud3v7DU5QtsDlMNdiJS2QotlLeSlSSgiUtkSiwRLBKW0cpCK9aW923eJ8R64Eajle3MS1b3v2FJXTtnXOk3daiVxezT9zsIdXTHd+ZUlzY7pZuOnw7yS9Gk57Sb8GZdRKO/M93HsDLowkc1ak/RVvizd9ni1Y7u3E1Hrm6VTVvsPLnNy64+E7Py1sRFdWr9n8zGOFNTLbHVuUq5Y9GnzV38X4iSHx1TWpLtb+J9jT+LxZeZfTeRcfr8R2Rivez24fB8v+Q8Q+yRl8dlqr9Lf1X/AKRoUn2v8JBpZEZeJ5UfodP/ADF8JHo4b5PVwj5aFsk919LX3+w9seJfSmWVjCgKCUN6WIqwa58si3pN7uosJMOmlXqVG8kqkrb75W+L499zcbPTlOGXtpWeIa52fK466Q6+PgYyifTeNeyzV29c3ST6CWnF2t2mYhcnLLG14y52W/VlXHUsrSPPKjlmcYaaWyqxlaRWxEqtubGNt2VW/wCSNsXqYpUEpSZmlIlKGSYBqSlctSDpzcHw0Z8J7IXQ3SXcUlpFZVp2a+0SmL26L5vxEOrqp03bS2vsNMTLnxKy1bcXFP26mZejSlh/VyOqW7J9XAqKhUjCEJylqnaKvd3vvJn4cNSO7XEVpVedOXUl3Hk9temmHxXm0HGmlylTRz36dSOto3wuEyy+s1m9VDX/AFfI1GNs7nycuk+0+nh8Xky8y+q8iVz8S/3F/uPXj8XzP5DxD6/h3GXyWXs32b51tfzNDWHR7uG8yirEHi+U36LS7ai+DPVwvyl6uFh8xFNU6lr8L7re09keH0Moc5lVWCgg1o2jVi5brptcLFiEmTdOF+bNWe7eajCPTnvy9m6Tt9rHxfW9Pcc8oy9OuEY+yca0FpV3X6LfBLq7ywkx3c752rGUNkYoKxKLIUqSUpEpE2JSgkwpEoZYt5pqXWlc/PPfDOnfndtrlJOUtOlrwRUh24XadNc2qt1k2g6Rk9WjjsN6Nb2NMsGUQyxWIpTlfOpaLXVcWTJ20qhzPFUo9KXdwJTpM4uSttCHRgWnKdVjh5zrYiF9yd7diJqeHHdcvTlO7UergefDHu6z4ers/DTjR5aa/cctyjvzHSmHbs+pCdSfJ6QhFuU3q5b7dy0ubgy8PhT6GLye5fW+Q/8A3P8AD/5Hq9Pmcf6fWS6LMvlMnr1cN6b0saVtG66rcLe8yKDEvF8pv0aj+/8Akz08J8pezhHzMbZJ7r6W6/Ye71L3yxMICtGZFRSjNcp0dL232evwKp069Sj9nK196Ikwt42u98r34WVipSXiqklaWXXjZLhbgQpiZbSAgJIFYijKRSsRSsZE2ZBzVndR7ND8697IrTXCxz16ceuSuETjqXJYmol13S7HqaRgip3LM+si7pGZsqfkPz4mh37O+0fcctaW9KHdHWRydXdWxtessjnzOpaIbkmHr4HDZdmTvpysJNyT1tZ2XgdcGc5fCHvxeWfb6zyNnKEK9oOSzR138GeyI7Pmcd6fTyxMsr+rfvv8CbP2+ftEcT13W7R/8F2JSvPKZOWzQ88p+I5ZTyPKGtGtRpKPCTb7rfzPTwmP5S9HDPn4/ZT38Oqx6/UvaysZUU45tPB+0qLzNU+Ty7+PHh8iFsyrYsKWJIzSgikCxwAmwCIJIoIERpLMhCkcGbm9x+afRIquvZqzYpdl3+QST2vH65S642fsNI84AjvNCnFAJFHbgt0+3Q46zeD0Fu7VvOEy7tlw637BEpLqw/KZ3v0jK/Dm5Xc66c92c/D5g+ni8j7TyI/R6/76+B6fT5PHPp59FmYfOpnpfhw9K25GlppHu9t7mWZhdgjxPKSyo07cW/yPZwXmXp4afL5tfZy3cLa6+B7I9vbfhBGgm4u8XYMtY1sy+scnfuG1rGNNaUor0lB3tuNMzOmqGePO51r6Oy16g5TimWHztzkp67+a7E7LjlMM/N423y7eazLW+T81Vs2bveVpb7fmZdcZZ8hr012rVPwJ3N8FLDr1463uNysqkMsst1K1tVu3CCJQVbSQJmVIyEB5yeZSfaj8w+kCq7tlL699kfzQSV7XjdRl2teK/kaR5IEx+BoXLeAIqOvCStf2NnLUbwehRqwb37zjli7vWwuDzQdSpNRtfLld3fhdLNoZiEmXd5vyGDxLrNZuTdndPg9Drpx3Zzns+FPp4vK+28if0St+/wD+KPT6fJ459LU0g/8AkzD56L671+FmlaRULKyWnVpqZZlZEp4flL9nS/i/I9vBeZejho8vnV9m/f1eJ7Y9vb9MyADRWLZCoyyvs6twYp1RqUqieWmqdvvyWvXr1HOpNq80W7QS678pLuHdex2l6KavbWNXjpwevEi7oGVRjmcanVfNFq178V7xSM3KnFb6tlaztFo2zsZSrRzq1R5NbvKr/wAyU3CnWoXf1js1rzEterRmYHNKnQy8yo3Lqcbdu+5VhjOKi9Hfc7+wjSDKlYgAPLp/ZS7GvzPy76YA9DY9nVn2JAlttaK83zffXwZUeIUCNBsgaKOjCrNPK+OqMZNYu2NGC4vQ526tY1Zw3PQzSnUxj5Kafqv4M64YMTLyUfQxeafk+48iv0Gr/mP/AGxPV6fJ435PoqnQe/2aMzDwwWt/S79GiktF7+sywoDwvKR2VH+L/wAT28D5yejh4eEpQyPm+z+R7XqpjxIpBoNAIMunCLR+y/MzdZnJWspTUXlSeu7k+GpkTWnkjHmQcna6y2e7q6i0lOWdTM75IxtbRKyNU2WdZWrWvxTfvKIe7sMCAEFIgRlUmSCsVp5VOX1U13P3n5Z9JrhsHVxM8sdOLfCwHvYPBUaCyw3rfLe2VJcm3LRpU4LjJu/cn8yo8IKaNAZA0Ua0ZZaiYyWHs0sO5cfC7+Bz2t7l1sLydKU2+F13ljFne4MRCrS5tSMoZoJpSVnx1s+49GMJMuJHfHy5f/T7nyL/AOn1P81/7Ynq9Pk8b8nv1WsrjprweitxJDxQI5U82nfcpLYwwAPC8pf1X7svij38F7enh3g/qvb/AFqet6WYDCnYCQjow9+TqaP2StwejXExkS6ufrpPX7695khhiYtJSWfS1nJp6lxLKtQqTinklddaT38LosyW5uQq2vkfY7N8bEtbLkau5wd+KswWz5OfU+uxRLVnqg0RlUmVSQgBp5+zYcpUcevgfln0X0VGjGlHLEsDWnGUeHtCPH2/L6yFPqi2/b/wFh4vA0BAAABaKPq8BGVWhTm3vitCSOjEYfPSlG+/gB8/i8O4wVlwu+47Ysy4UdY8s+33fkerbN75v8j2+nyeL+b2pS+sXc9bXI8hrV2uvwsI1IydyMvA8pPtaPZGT+B7uD8S9Wg8X9V7d9/yPZ7h6GYDIDgFOMc0vH4BJVCcqaayKSdtZK5KZ34ny/8A8cfAlLE4n5xB9KknZO29cSLSY1oRk707xeuXM118QUrzqCfQlG3DPLd/yRaNYuHXU3prW707xSUUsTTfOvUzJb9Fv3lRFWpQqTWaU5Wvd6X4BYZ5cL68rLRq2t/kRphOyk8rulufYZaQZUiDl2N+k+xn5d9N9DG5YG0Qj5rbn6XLtUbeAWHmGgAAABcfcUfX7N5uDpfurQkjolJtW0s9+9/kEeLil9VX+6rL8X8zpiS8U64+WPb77yT/AOlw/ek/efQ9Pk8V83ryvn46Jh5gnL7+l+pkRpHNvzO3VpcjK7kR8/5Rfb0/3G/ee/g/Eu+g8j9V39nfxPV7h6EAIBhRe272MJLWlys75bvh2/1qS2NuK4xrxu1mtxem/q/kZtYjESjXs9JX4XiuJCmLrVN0kurckVqILl/ux8BTbOpLPLNa1+C3BEMhSQsEyKkyERSIObZStiu66aPy1vpvoqaEI14FR89t2n9cpdaCvHCpKNLAPJfuNDWMLtIo+rwMUqSje2iW4I6pJeswy8XHaUcV1afFFaeEdomoZ9vs/J7aWHo7Op05N5le+l1rJs+npaU54Pl8Rjeb0vpbCvVvXX0ZbvYma5Obz7G1PaGBdufqv3l8UTlan0mxusfhP20PxIxys/qWOWrz7C/tYfiROXn9SbHh7eqxqV4ZJKSyb078We3hI2xNw6aONPM/VLf38OJ6Li3dnx7S9yiJ3FDuqoWzd91cd2ZHJ/fj4lZ3ScYTd7TXVvsZmV3SMtW3T9mbqJa2UqFW99Nd+q3+JNzUJdGok210bN7uOhbapiLAZVJESLCJapIFqRW2Ho04VuUtr1n5LGX1Ze3RhodWJEohHj7YptxUvV+AV4U4qV9Cqxy6gbRiBpmW5d1zQ6cDRlUqqyCPq6NHJBR8QipRRUeLtPSjiv4X70Vp88jcd09vf2bCbw0HbT/+mfoOE7ab52t83oZYXdo6cL2O9y4Ky09N/R52ifO7N2hm8gsPTjOtGM+bDW/DTXiNSZiOyPQ+j8HwqP8AGmebmZ/9DMktj4ab+1d312f5muflHpImj+gaLVlV9tlcdTl9JGaf7O9VUdV+l5iP7O1f2q95eq/RzEPYGI9aJeqhY1k/QOJ7H7Uh1MLzCjsjaFLopa9q7PkajX0kjUgPZ+0Y3+rT48GObpN8yGE8FjXHK6O/jls9/cOZj9pGbF4HFr9WzW6GuajzfEpNZJdqL2N7LkavqvwYatOSfqsG5LUuolNWglKklKRBNgrWfKXzbqcdX16H4/CH1Jl7uBxVPE0Iyjv3tHdiWziEc2Iw6mrNaPgVbeTW2bCN8sSjyKtCcJ2tu3AXh8LVrStFPtYHtYfZMMtpRuUenhsFSoLmRSvxDLqsAnEo8vbkYxwNRpatxu/aVXyVzUdlp20NqYnDw5OEll4KyZ7NPi5xcctG2307jPu6dh165jpoX/aDE+rT8H8zfXs9NDSPlBV40odXFD/IR/VOmUtuX3wWv3v5HSP5CP6sdK0W2Y+qvxR/M11+l9M9IuO2oer/AKoP8y9bpHSNI7ah1T935MdTo/bM8Nk1jtyPr1I/iLztH9MdNmr6eX7af+r5F36KdNLSPlDH/Ebuv+aF6JyJaR2//wDYj/pNbdJnkS0W3p/tYPwHL0jkStbbqPjH+vaOTh9scr9KW2qnFR96LyMftOV+lfTL9SPiTkfs5eQ+lovpUvei9P8AtOXkX0jhn0qPwY5GX2bMi88wT/Ve5Dl5/bNZFy2zpb6fuLs1V/NGXZUvRV/aX/2X80PDbKl1D/0+mryT5lsz1l4ofn/VN2TxI/Wwya3elj8fEv0FL5Kvgpcph7uG+VPt60dYlKelg9q0cSrN89b1x9qNJTt0n0dSpSXRTKifNKT3xA0jQhHooo0USirEQ7ATLRahXh7fxlDzfkIyvUbTsupFV8yipQLcLBXKncCypFy7pB2l3SAyAtgM/wCzudzV/s7jM+sbl7Hyk+tjelQOVn1sbzbBcpLr0HNk2wOUf9WHMy+zb+j5aSLzs/tNv6X51VW6UvF/M31WqnKhXn1f9pLxZes1U5UH9JYn9pK/sNddr/aciFfSuKXp+5fI3/kdb7Tp8V/TGJ614fzNR/JajPS4KW2q/VH3/M6f5XJOmxUttVOMV7y/5Wf6s9Hir6al6nv/AJF/ys/1To8XVhcRhd7qLO+G74nwNr6DujOnJaST8GWhz1sDSrPNHmT9aOjNMsr7Rw3RarQW7hItlNY7eqw0r05Q9695bSnRT8oMM97t3plSm8dt4R+nH3oFH9NYT14+LZSmcvKHDR3Sv3KTJY5peUEp/ZQnN8Fol7hY5a2M2hUi5OKpQWrlLV+/5Gh49acpzzSbk3xKMwoKEAABEACKpgFwAoCICKQQBQQOOrt7wN3Gll+91Xt+cig5GH533gc7tfmmRIAFFwESwZhY1RkUpSjuYoaxx2Kp9Go9OG/4gtvDbWJj0lGfss/cNo66O1cPVeWtTydu9E2jv8xwtRXyxd9U9CKX0ThfVG4o/orDL0EXcU0jgqUejCK9iJaL5PLwQseTjpSxWKWFjpCOs38TYxx1D6q1ONo09xUeV+RoUUSAXACAAAAAANPaUGhAaAAAAiAARJAIAUACIoAAAg1IACSgAoD0tk4+VKoqM39XLd2PgSYH0KZzhVGgaGVYYytyOGqVOqOj7dyNQzLwdm5nXk/u6+1m5FbTrPlORi+bG1+80kvPZQ+TuAWKDKuoCckSA5OIBycSA5MoXJ+AByfaAuT7QDk2AskgDJMCcsuoyo1AWoAAXIhXALhTuAXKFdEGxAgEUAD3AdmzcPy1dSb0g02vgiTI+pW45KdywpXRB5m26iWHVP15LwR0xZlx7HdOM6jk9dHrpoakcFapylSdT1m2aSWdrlCygUEAUAAAQBQAADAQAAAAQAFyBWAmyIoyx6gJyx6iKMiAWRALJEDTgQSA0AuIBa8rFHtbDpxlKTZmSHtpW4sw0HckqWZ6geHtiTliIRe5Rv7zrgxLz5RWVs6IhagdWCoQq1cstxrBnJ1TwNFdfiT6HJiqMKXR7d5JHLcQphS4AUiJIsUIKAguAwSRAcAoIFxNA6yAAkgZQiARAuFwJzMK/9k=")
				if(!this.ready)return reject(this.readyText)
				if(isInWebview){
					require(["cordova-camera"],function(camera){
						getPicture(camera)
					})
					return false
				}
				if(isInYWT)return getPicture(navigator.camera)
				reject("您的平台不支持此功能")
				function getPicture(camera){
					camera.getPicture(cameraSuccess, cameraError, {
						correctOrientation:true,
						saveToPhotoAlbum : false,
						quality: 75,
						targetWidth: 500,
						targetHeight: 500,
						encodingType: Camera.EncodingType.JPEG,
						destinationType: Camera.DestinationType.DATA_URL
					})
					function cameraSuccess(result){
						//ios cleanUp
						resolve(result)
					}
					function cameraError(error){
						reject(error)
					}
					function cleanUp(){
						return new Promise(function(resolve,reject){
							camera.cleanup(resolve,reject)
						})
					}
				}
			}.bind(this))
		},
		getPicture : function(){
			return new Promise(function(resolve,reject){
				if(this.env === "develop")return resolve("/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCQoKCg4LCw4UDQsNFBcRDg4RFxsVFRUVFRsbFRcXFxcVGxoeICEgHhonJyoqJyc1NTU1NTY2NjY2NjY2Njb/2wBDAQ4NDRERERcRERcXExQTFx0ZGhoZHSYdHR4dHSYsJCAgICAkLCgrJiYmKygvLywsLy82NjY2NjY2NjY2NjY2Njb/wAARCAH0ARkDAREAAhEBAxEB/8QAGwAAAwEBAQEBAAAAAAAAAAAAAAECAwQFBgf/xABKEAACAQIDAwcIBgcHBAIDAAAAAQIDEQQSIQUxQRMiMlFhcZEGFEJSgaGx0RUjM2KSwTRDU3KC4fAWJFRzorLxNUTC0mNkhJPi/8QAGgEBAQEBAQEBAAAAAAAAAAAAAAECAwQFBv/EACoRAQACAQIGAgICAwEBAAAAAAABEQIDEgQTFCExQTJRImEFUhWB8CNC/9oADAMBAAIRAxEAPwDsMBgCAAKRQCA0SgxYoBoBoCkUCAdgBAUihoAAYDACAAChgBAzQCAAAEAECAViBFAEAVwEAAwABlgNCQ0QMUGA0BSAaKGAwACkUNAADALgMgAGUADACAKAAAAFYgAEQKxQgAqPPMqAGihlDRA/gA0AywGiBoCkA0UMBgCFCkKAhAYkADAaAAGAIBkAAFAAAAAQIBABQrAAHnIyBAMBlDQDQDIGiwKAAKKGAwBAMWGhYaEBoSBANAMAAEAwGAAAAAwEAEAArFCAAADzTIAGUMBoBoBgNAMBlFANAMgEA0UNAMBgCAYDAEA0AAMAQAAWAYAAgAAAVgEyAFjzCBoB2AYDKACgGgGA0UNAUAyhoAIGgGAwABoAQDQAAwBAMAAdgAAAQAAAAE2IAUPNACBooYDQsNANED1KGiigBAMCkUCAaIACkAANACAaAaIABlAAwABgCAAAAAQAAgADyyBogZQ0AIgoWBANFFFDQDAaACCvgAIoaAaAaAAGiAApFAAAMBoAAYAAAAAAgAAAQHlksADRRQASQyBooYDAdwGiikA0A0AAMBgMgEAyhkAUMAAaAaACAKGAABAFAAgAAuB5SMgFhooZQzIaLAaKGQNCQxAZQwGgGA0QNFAgKRAAMoAGAyARQAMgdyAKGUFwAgChAAAAAeSQNAADRRRAAUiAQDKKuUADQFIAAaIGA0UMgaEBuXo0/bL8kUZSpT9GpLN4rwIIp4iUZ8lWVp8HwYHSQMoEAwAgaKAoAGAAIAACBWA8kCgAoZA0AyhogYDAZQwGgGgGA0A0A0AyDOpUyyyrfw7yjSKsu4kiiDGsqU2oT3vVPcB2ZE6fN4GhmiC1Tl3ItBSjl+YoSZFIoCgAAAAAAAoAPIMhgNBDAEUUAyBoBooYDIpooAKQABQAAwOPM5Y5x6rfAg7kAXAxxNPPG66UNUQdeHnaHO48OJsUpJdFe3iA7lD5vpbnpcDOUcr/ADMBEDKAAAEUAAAAGgHkIgEBSCABlDIGiBgNGg0AyKZoNEDAaAYDAZBwy5m0V1TV/dYg70ApVIwV5Mow86zdHTtKNKcrmh0xAtAOUVOLi9zA5oyqxllkr8L8O8yNUQNFAiAACgAAAAA8gyBANFQwABgUgpoBlQIBhTQDAYDAaAaIGQce0OZydbjCVn3Cx2r4ix5OJnU5aSnw3LhbgWxdORbHbR1+ZR2ZcltU09zQFIooAkrokjIyGAwAAKC4CALkAB5FyBgBUNAMBgNFU0AwhgMKAKAEA7gMC1GT4AU6coq7IOPHqc6XJ04uUpW3IlDqjaEUpSWlk9RQ5cVTwtWSk6yjbR6XLQmEtnU/WqPwXuKNHtSlDmU6aV93EgiOMzzVKL43ZoehCVyjVAUBnJa9jMyJuQMBgIoAAAICxoeRcyABkQFDAaAYU7gNFRSAEFNAVZkoc2OxMsKo83WV9/YaoefLaleXpKPcBzSx3O+sm5Lirge7U2paneG/Swscf0piar6SjwJY6YYevVipVKz11svmQWsDS9Jyl3v5Aa+a0LWyLXS+9+JB5EoulUcHvWgGVTWQV2YGOV36zQ9Wmyo6YgXcoJRuiDEwAoChgIAALkAUeQQMAIh3KACgAKYFIIpalDcqUOnLXqKrKW0cPDooDN7SrT+zg2uuwHDj6WMxEM7i7R1tpcWOOns3GT9B9l9DI6qew6vpSivj7gOunsiMYKMqstNOG7qA6oYDCx9C/a7sg6VotPYAwGB5+0qO6qu5/kBwLeFduH0NDupsqOuAGkedpHnNb/5lHRGj6z9i3FBLDwl2GaHPOhOPaShkAAFyAALkCKPIuZQzQaAAGgACkAwD+mBhVxM5Pk6W80ohg761ZOb6tyIN4UaUOjBd/EDUAAaIGgGiB/ABgADuQTUgpwcXx0A8TK4TcXw3lHVRZR20W5O0FmfHq9rNDvpYdv7R/wAMdF7XvZodsbRVo8OAF3KEAiDOpRjPv6zI5ZU5Q3+IEmQAIAA8gygNB3AYAAwHcBgYV6jtljveiKNaNJUo9r1bCtSBgMoCBkDAaAaAdwGAXIC4HnY+l9YqkV0tH3osDTC4fN9pu6jcD1qajBWivYBvFmhrFgWUMBAAEtX9pBzVKOXWO7qMjAwA0GKHjoyh3KABgMAAaIFJ2XeWBnTWarmfDcVXQiCgABlDACBgO5AwGAXALkCuaGFd5pJdWoG9E0OuLKNosDSIFplFFDuArgK4CIOerR9KPtRkYGQAeOiIZQXIHcBlAAwJk9e4sB0eL6wrUgAKuAXAAKALgMgYDuAXAVyBXNDnfOm/ADrpGh0RKNYgapgWmBRoO4BcBABAmBz1qXpR9qMjADyDCAAKGENANBQgIlvfYaGlPorxIqwAgYAUMBkDuQFwGAXAYBcgm4GEN/ebHXTNDaLA1TA0iwNEBaAooLlCAVwC4CZERlj1EHzpzDACgCGA7hQBm/iaGy3EUwHcgYAA7gBQ7kDIC4DuAXACCJPRgY02bHVBmhtFgaxA1QFpgWmBRQyguArgFwFcMkQfOI5KAGAABQ7gHAQI4pFGyIoALkDKGAwABgADALkDuArkVE+iwMYG0dEDQ3iBtFlFpgaJkFpgXcAuaDuArhAArhDtLqA+cOKgAAAGUABLcICj0+4o0IouAEDRQwGA0AAADALkBcBBUT6LAwgzSOiDNDeLA1iyjSLAtSINEwLuUO5QXALhBuWaTyrrIOeeJvpS3cZP8iWrPPU9d+4WPJOaC4AA0AIoaAUiwFDe/ASNLkBcACqQAA7gFyh3ACB3ALgACIInuYHPFmhvBlG0ZFGsZAaxYFpgWmaFpgPMBe5Xk8q6wMJYuK0pLM/We4zYwk5Teao83w8CAuZAB5aIgAAGgC5Q0BL+BoOnu79TMirgFwBBVICgAARQwAgAAAuAAQwOXj3FGsJFG8WUaxkBpFgaKRRal4lF3UFmqNQXvIM5YzhRj/HL8jNjFylN3qPN2cPAm4O5LDKGZCA824QABQAMgAIlxNjSO7uMh3CEGgiCkA0UMBlAAAMAALgICGQcs9JvxEC4SNDaMhA1UijWClLd47kBTq0afSlml6sS7hLxlR/ZpU0+O9mdwy3u8nmfWzNtLuRFJlFXCGUVcAuB5pEAAAAABcCOrtNDUyEEJhp008HVnGnKFpKo7Jrg+p9QGv0fW1tKDa1spK+gEU8NOWbNzbU+VXatwClQnGlGt0oS4rg+pgQld2KOitg3T5S0lJUnaS3PvsBNLCVKsOUTio3y3k7a7wNPo+tbNmhZccyAmeCqxhKpeEox35ZJgNYNuEZyq04Z1dKTafwAJYG2+vSV9Vzn8gIngnGnOoqtOahq1Ftvq6gOHzeVdzcf1cM70326hAmhQqVJxj0czS17TQ2qQpYepOnUqZnB25qAPObfZ0/bIkhOpUn05vu3IzaiOhBVwirhpSYRSZRSZUWAyAuB5yIgAZAGgIAe4sCPSXYJGhAmEAaelg1BVKDo1XlnJZ6T35kt/agjXDwiuRklzpKvd9dtxQ/R/wDw/wAyKxyZKUZYeo5qdRQcGrJyWq4gbWx8edLDwstXzYlE47FzhiKlPLC3XlV/ECaXJPZ/1rajy3oq+uUDSEcJ5nUtOeTMruyvfxAmmsOsLieRlKWkb5lbiASVO2Hc4yqNUubTj6Tu94HTKEqlTPNQy2vycoJ1berYDjlmccXJ0uRTjG0LW4oDmwCh/ec98vJPNl3203XCsoPZkJxmlXbi01dx4ewbhVars6rOdTLVU5tvfG12ZHLcBpgVcCrkDuaFJkFIC0VFoopEBco84ygACB3NAuApbu8sBQ6T8BIu5AXCJDT0aGTD0cPXyZqsqja/dWlvEI6ZKdCFNpZ+RjPlYJ6xdTXUozpVY1FLL6GFyPvTClh6Kq4HnyyQjVbk/wCFLQBeb16mDoxjBt5p8O4AxFF4ivCSdlVpqd/3Y6/ACo1FQwFPNBT5SbklLs0uBdPEQeDqS5GFlNLLrZ+8CadaNTC4m1ONOyj0eOvaApzcY4ePKujCVPnSV+t9QF8yW6WGqdsk4SA54yqcjiozlmcIpb7+lwAzwcuQw2IxDSasqcVLVNt6oiuf6Rf+Hof/AK0A9qRjDFyUIqKtHSKstyIOQC0UUBRkBoWmQUgLRUWvcUWAAefczLIQAFFwABPeagFPd3kFEQigQV2U8dWhltlvCOSDt0e1dpRnDEVadTlYyanxfeFa+e1OSdNRhG6yyko85rtYGUatRKKUnaDzRXU+sBzxFafTnKXe2QaUsbVp0nSVnF3s2tY332NCK2InWyZt0IqMUuwgI15xpOkrZZNSfsKNJ46pOm6ajCEZdLLG17dZBS2hiIwhCDUVBW3J/G5QvpLF+uvwx+QEVNo4idKdObUozVtyVuPCxBy1sTUnRhRf2dPcl8WBygbYjEyxNXlJJJ2SsuxWIMwKAoCiKYFIIpFFoC0UWgGKR56MwgEh3CgAAiTNQKj0UQMiEUNBVIqKDQAAC5A7mgAFyAuAXKEBLMjGRRlcBkDAal7uIFAUFUgKREUii0BUSjQgdy2jgIBAMgVyjn5ZT9K3YePPV7u2OIy07fafEzOs6HCpFNRi278Tenl3c8obnqnw4TCSiolVZEAaO5UAARTuaBcgLgFyguBIEsDKRBmwAgaAooYFAUQNEFIotFFoC0QUUcBEMAIF+W8o81dJ6nhzju7xLbKrdNd2tzMw0nMoNN8P63GtOO7GUu093pwlIGiKqwguVoEQXALkUXKC5Q7gK4BcAAgDORBkAANAMCgGBSAogtMopAUgLRWV3A4CKAGQIDjlQp53l5tuC0RnYtnGh35XoWNKF3NY0oQei16+JKZtobQgq0QWIHFOWevN36NoprTvNwDl8RDo5ZxXCV0/FfIUgjtbD6xq/VSXDNFr3DaNY7RwclpXj42+JNqq8+wr/XQ/EhsF+dYb9rD8S+Zaks/OKP7SPihUlny1P1l4odyzzx60Kkssy6xtUrk2jOQoZsUEKDuAyBgUBQoUBSApAUgLQRQHEQK5QyAuBzy4iIGlNPk1LruaRUnmu/bYgV7oFEgrRAVey7hA4IJxi5T0zXcvazcDzdqYxr6qm9N8n+Rtl5eZmg8wBc1SWMzLRYzv+rCoLVGrLs8EKgtfK/dj8CTEFjlvur3/ADG1bLln1f7vmTaWHWn2r2v5jYWfnM/Xl+JjYWXnlf8AaT/EzO1bbLEYn9tPxM7Q/O8V+2kXaWfn2M/bS9w2ln9IY79s7d0fkTaH9KY79r/piNopbWxvrr8KG0tS21jFxj+Eu0tX09jPueD+Zjatq/tBilwh4P5jaWteUeJ9WH+r5l2lq/tJiPUh/q+Y2lvWucQXKhXKJnLQKykyjqiv7nTfbIIy/MgkKcSi0EehsfDQxOK+sV6VOMpyXDRaLxZcSnPiMLh5zlCzUY6Jp2dzU44yr5Ha1KFLG1KdN5orLZ7vRVy4+CXGdauWPBmtiXB2NbTsVhQVhtktSJ3Qy1KxtMndLSZWCkXsd0k7L3VTWaRSadBhqdtFYREoQmxUZWTXB6GVhTq3jlyrv4miWNiTEoB3CM1Kgdwh2LA7Jb6487QKgKM3qwqJFHduwdKPe/eEczIJkFESiwj0cLN0MHKS6VeSiv3Yav3mNTKnTTi3BUxFTlZvrbPJOrk9HJfL7Tk5Y2rJ8Xq+O5H0dDvhDyakVLPCU3VrKKV+LW7Q+hw+nebz6+W2H0NXAxnCHJ0Y3tztErPq3H1OXpvlY8RI+is1O3IRz8XZbicvTdefLmrbLjkUY0Hyier4W7jzzoRbvjr9lS2XRlQ5tJqrxfadp4eKc8eI7ueOzqUbZ4SzXWZa5bGY4eHXLWd9fZ2Ayy5Oko2Wjzyb3d5uOHh551cnNiMFgeSUqUZcrreHO0Wut7mJ4V0x1nJ5hT5OMszzOVnCzTt1nPpXbmtq2z8Jf6uNS267a/8AU7dHg5c/Iqmy8DkzU5y6WW0nG/fa24xPB4Nxr5Cps3CwV6NWUm9y0fiZ6JY18lz2ZSXRrPq3K9+646FmOKyvwqWx4ZFKNfR3SbjZXW/icuij+zrz3P8AR3VVWvZb8zM8FH9m+ccdluUftY5tyQjgSddEtl1o+lG25ky4GSNdP0bX4OL9r+QjgM0nXKWzcRBejbvfyE/x2ZGuxeFqx9XxOc8Jm3zU+b1OzxMdLm1zS5GfZ4mOmld5clP+mXppXc+qPntlcAk9AjMrSePYUp3TqQ83pR4pO/4mEpz9K+VbtX3Clpmn4Cigt5EaFKdOKqZJQo8KMdV956s8nEZvRpQ5Lnmh3fN7Q/S6v7zPtcPFYw8GpPd3eTtFVsa42TtBtXva911H0eFmpl4eMy/F9jTw0kudGL323/M9M5vgzn3TToNT+tjTsrbrrV9+hJzWc1eaqcujD+Fu9hzP2vNkeaWbUaXM682u75jmfs5zDE4bD0XmnHLB2vN1ElrfTVGsdWf+h0x1Jyy7MJvZzSy1oa7/AK6CsbjVn/odazvwcaeA38tHThni9OvRjm5SxM6g83ws1m5RRstFeLd+reXmZQROoqOFwlTS7T9bS3HtHOzJzZeYUt2af4NOPaa52X6dOd29s6mxryUuWcYu+mVrxMzqzLWGv+lx2I5axqrTR5sy/IxzZh0nX/SXsHEejOHjL5DmnVY/RPYWJstaena7/AvMxOpx+h9B1+qPii8zD7Xnx9l9D4y2iWnC8TUa2H2vPj7YvZO0E+bTSvwzR+Zrn4sxr4/YWz9prSVHNF/ej8y8/Febj9uWvsfaEujQfivmccs7dsdfD7ZLZG0Lc6hLs4mIlZ18PtnLZWOX/bT8JEqGuo0/7I+jcd/hp+DJsOp0/wCz1z8++gLgRN2RVZrX5FDuC1qXuChTavbjoyoQVHKWqW9bSxCnZgoqVdZuhDny7lqVm2c555TqPfNt+LPmas93t047JUVb4G9PFMnzm0o5MbXh6s2n3pn19P08Wfl6fkmv7/L/AC38Ue/Rjy+dx/h9skbl8POU+k9/DW1y+ltcN/8AKxJRZn/TDyPKbTZ/fOK+J20O8vVwcfm+OyykmrKy3u2trt3O0w+z+MS6KeIhCOXLfq4HXHLGHKcBKvTkmrW95cssZIwFOph4xyyhd9enyMxlilNPqmrxpPvtp8DpuxXLFpnpQXMzRfgc7iCNP9H5xVUrqrOMd1s0l+ZiZiVnT/TXzyf+Iq6fel/7GqwZ5WP0yqY/E5ebXqXX3pP4s4544tcnH6Uto4nL+mTvo7c7f1DbCcjD6RLa2OV8uJk96/nqjMxC8jD6XT2rjLa4rv0T/wDE9GOGDlPD4/SntjGx/wC4zfwx/wDUThgsaGP0VLbW0HfPVWm7mxWngYxwOnj6W9uY2N+fFtdiaLOEJ08fRU9u7QmtXTTW9Wt+ZnHBMuF0l/TGO66f9fxHTlsdNptbn5d9orgZVuhvs9NfaGsWGecXZxvbjHVFdNquU67+DQSj5ekuOq7xbUaVpli4cLiZajh0OtVn0Vl43FusaQopcouMtW3x3Ec9Tw9ijHksDUq+lWkqcevKtZfImpl2cNPHu5N0rdWh8/KHs9O+WBqU9mLFTikqk/q5ap2S17Ldp6ow/Byt8Xim5Ymq5PNJybb363ep9LTj8Hlz8va8j1/fqnZB/FHu0vi+Xx/h9qivjSlrnTsr7tL24FIFn1P8V+sK2S0MsPG8qP0GP+YvhI78P8v9PTwnzfJR3T3dnvPTEdpfV9s7HNoBQRYdGGqTjUjHM7NpNXtp3lsmHVWo1GnKKlpfO5Si+BExk8PK8VTi6l1a8YuPik9eJlZVmt0nO1O8fQ4qz+JblmJYSqU2ubKV3pzkre4jrGbKOKnFLSNlueVX8d5IzYnEqmIzxy5Irtircd/uE5kYuK2pm2wLC1M2tDWxLKK7BQzPrG5KezSxsZ0s/veisfDexD2jTUrXT6ktQKq1+bZ8bL3hcWtNldLbwqO3N/r3FoceK+2d43k7a6dXaZenSRHdZxsIbTJ9b5u5LcgNaOWNrK2a7b3vu7i08Wvl3evjrUo0aEf1ELy/fnqzz67Wl4cK50u88rv6e5tbGZ9l4bCSWtFtX+6kj2xl+Dh7fn9d5q9R8czu/afS0/g82Xl73kbH+91eyH5nq0/i+X/I+H2sSvjyyla7vltdWv3FICy/c7d60Ct1Zr495lh4vlR+hQ/zV8JHo4f5f6erhPk+Vp9Ge/3du89keJfTnyxsclAUxRLfknDJOKz3s2rO25Mu0jJry+b9VHjdJNcP6ZmhFSpm3QUO7+uwi2fL3WsdVud3v7DU5QtsDlMNdiJS2QotlLeSlSSgiUtkSiwRLBKW0cpCK9aW923eJ8R64Eajle3MS1b3v2FJXTtnXOk3daiVxezT9zsIdXTHd+ZUlzY7pZuOnw7yS9Gk57Sb8GZdRKO/M93HsDLowkc1ak/RVvizd9ni1Y7u3E1Hrm6VTVvsPLnNy64+E7Py1sRFdWr9n8zGOFNTLbHVuUq5Y9GnzV38X4iSHx1TWpLtb+J9jT+LxZeZfTeRcfr8R2Rivez24fB8v+Q8Q+yRl8dlqr9Lf1X/AKRoUn2v8JBpZEZeJ5UfodP/ADF8JHo4b5PVwj5aFsk919LX3+w9seJfSmWVjCgKCUN6WIqwa58si3pN7uosJMOmlXqVG8kqkrb75W+L499zcbPTlOGXtpWeIa52fK466Q6+PgYyifTeNeyzV29c3ST6CWnF2t2mYhcnLLG14y52W/VlXHUsrSPPKjlmcYaaWyqxlaRWxEqtubGNt2VW/wCSNsXqYpUEpSZmlIlKGSYBqSlctSDpzcHw0Z8J7IXQ3SXcUlpFZVp2a+0SmL26L5vxEOrqp03bS2vsNMTLnxKy1bcXFP26mZejSlh/VyOqW7J9XAqKhUjCEJylqnaKvd3vvJn4cNSO7XEVpVedOXUl3Hk9temmHxXm0HGmlylTRz36dSOto3wuEyy+s1m9VDX/AFfI1GNs7nycuk+0+nh8Xky8y+q8iVz8S/3F/uPXj8XzP5DxD6/h3GXyWXs32b51tfzNDWHR7uG8yirEHi+U36LS7ai+DPVwvyl6uFh8xFNU6lr8L7re09keH0Moc5lVWCgg1o2jVi5brptcLFiEmTdOF+bNWe7eajCPTnvy9m6Tt9rHxfW9Pcc8oy9OuEY+yca0FpV3X6LfBLq7ywkx3c752rGUNkYoKxKLIUqSUpEpE2JSgkwpEoZYt5pqXWlc/PPfDOnfndtrlJOUtOlrwRUh24XadNc2qt1k2g6Rk9WjjsN6Nb2NMsGUQyxWIpTlfOpaLXVcWTJ20qhzPFUo9KXdwJTpM4uSttCHRgWnKdVjh5zrYiF9yd7diJqeHHdcvTlO7UergefDHu6z4ers/DTjR5aa/cctyjvzHSmHbs+pCdSfJ6QhFuU3q5b7dy0ubgy8PhT6GLye5fW+Q/8A3P8AD/5Hq9Pmcf6fWS6LMvlMnr1cN6b0saVtG66rcLe8yKDEvF8pv0aj+/8Akz08J8pezhHzMbZJ7r6W6/Ye71L3yxMICtGZFRSjNcp0dL232evwKp069Sj9nK196Ikwt42u98r34WVipSXiqklaWXXjZLhbgQpiZbSAgJIFYijKRSsRSsZE2ZBzVndR7ND8697IrTXCxz16ceuSuETjqXJYmol13S7HqaRgip3LM+si7pGZsqfkPz4mh37O+0fcctaW9KHdHWRydXdWxtessjnzOpaIbkmHr4HDZdmTvpysJNyT1tZ2XgdcGc5fCHvxeWfb6zyNnKEK9oOSzR138GeyI7Pmcd6fTyxMsr+rfvv8CbP2+ftEcT13W7R/8F2JSvPKZOWzQ88p+I5ZTyPKGtGtRpKPCTb7rfzPTwmP5S9HDPn4/ZT38Oqx6/UvaysZUU45tPB+0qLzNU+Ty7+PHh8iFsyrYsKWJIzSgikCxwAmwCIJIoIERpLMhCkcGbm9x+afRIquvZqzYpdl3+QST2vH65S642fsNI84AjvNCnFAJFHbgt0+3Q46zeD0Fu7VvOEy7tlw637BEpLqw/KZ3v0jK/Dm5Xc66c92c/D5g+ni8j7TyI/R6/76+B6fT5PHPp59FmYfOpnpfhw9K25GlppHu9t7mWZhdgjxPKSyo07cW/yPZwXmXp4afL5tfZy3cLa6+B7I9vbfhBGgm4u8XYMtY1sy+scnfuG1rGNNaUor0lB3tuNMzOmqGePO51r6Oy16g5TimWHztzkp67+a7E7LjlMM/N423y7eazLW+T81Vs2bveVpb7fmZdcZZ8hr012rVPwJ3N8FLDr1463uNysqkMsst1K1tVu3CCJQVbSQJmVIyEB5yeZSfaj8w+kCq7tlL699kfzQSV7XjdRl2teK/kaR5IEx+BoXLeAIqOvCStf2NnLUbwehRqwb37zjli7vWwuDzQdSpNRtfLld3fhdLNoZiEmXd5vyGDxLrNZuTdndPg9Drpx3Zzns+FPp4vK+28if0St+/wD+KPT6fJ459LU0g/8AkzD56L671+FmlaRULKyWnVpqZZlZEp4flL9nS/i/I9vBeZejho8vnV9m/f1eJ7Y9vb9MyADRWLZCoyyvs6twYp1RqUqieWmqdvvyWvXr1HOpNq80W7QS678pLuHdex2l6KavbWNXjpwevEi7oGVRjmcanVfNFq178V7xSM3KnFb6tlaztFo2zsZSrRzq1R5NbvKr/wAyU3CnWoXf1js1rzEterRmYHNKnQy8yo3Lqcbdu+5VhjOKi9Hfc7+wjSDKlYgAPLp/ZS7GvzPy76YA9DY9nVn2JAlttaK83zffXwZUeIUCNBsgaKOjCrNPK+OqMZNYu2NGC4vQ526tY1Zw3PQzSnUxj5Kafqv4M64YMTLyUfQxeafk+48iv0Gr/mP/AGxPV6fJ435PoqnQe/2aMzDwwWt/S79GiktF7+sywoDwvKR2VH+L/wAT28D5yejh4eEpQyPm+z+R7XqpjxIpBoNAIMunCLR+y/MzdZnJWspTUXlSeu7k+GpkTWnkjHmQcna6y2e7q6i0lOWdTM75IxtbRKyNU2WdZWrWvxTfvKIe7sMCAEFIgRlUmSCsVp5VOX1U13P3n5Z9JrhsHVxM8sdOLfCwHvYPBUaCyw3rfLe2VJcm3LRpU4LjJu/cn8yo8IKaNAZA0Ua0ZZaiYyWHs0sO5cfC7+Bz2t7l1sLydKU2+F13ljFne4MRCrS5tSMoZoJpSVnx1s+49GMJMuJHfHy5f/T7nyL/AOn1P81/7Ynq9Pk8b8nv1WsrjprweitxJDxQI5U82nfcpLYwwAPC8pf1X7svij38F7enh3g/qvb/AFqet6WYDCnYCQjow9+TqaP2StwejXExkS6ufrpPX7695khhiYtJSWfS1nJp6lxLKtQqTinklddaT38LosyW5uQq2vkfY7N8bEtbLkau5wd+KswWz5OfU+uxRLVnqg0RlUmVSQgBp5+zYcpUcevgfln0X0VGjGlHLEsDWnGUeHtCPH2/L6yFPqi2/b/wFh4vA0BAAABaKPq8BGVWhTm3vitCSOjEYfPSlG+/gB8/i8O4wVlwu+47Ysy4UdY8s+33fkerbN75v8j2+nyeL+b2pS+sXc9bXI8hrV2uvwsI1IydyMvA8pPtaPZGT+B7uD8S9Wg8X9V7d9/yPZ7h6GYDIDgFOMc0vH4BJVCcqaayKSdtZK5KZ34ny/8A8cfAlLE4n5xB9KknZO29cSLSY1oRk707xeuXM118QUrzqCfQlG3DPLd/yRaNYuHXU3prW707xSUUsTTfOvUzJb9Fv3lRFWpQqTWaU5Wvd6X4BYZ5cL68rLRq2t/kRphOyk8rulufYZaQZUiDl2N+k+xn5d9N9DG5YG0Qj5rbn6XLtUbeAWHmGgAAABcfcUfX7N5uDpfurQkjolJtW0s9+9/kEeLil9VX+6rL8X8zpiS8U64+WPb77yT/AOlw/ek/efQ9Pk8V83ryvn46Jh5gnL7+l+pkRpHNvzO3VpcjK7kR8/5Rfb0/3G/ee/g/Eu+g8j9V39nfxPV7h6EAIBhRe272MJLWlys75bvh2/1qS2NuK4xrxu1mtxem/q/kZtYjESjXs9JX4XiuJCmLrVN0kurckVqILl/ux8BTbOpLPLNa1+C3BEMhSQsEyKkyERSIObZStiu66aPy1vpvoqaEI14FR89t2n9cpdaCvHCpKNLAPJfuNDWMLtIo+rwMUqSje2iW4I6pJeswy8XHaUcV1afFFaeEdomoZ9vs/J7aWHo7Op05N5le+l1rJs+npaU54Pl8Rjeb0vpbCvVvXX0ZbvYma5Obz7G1PaGBdufqv3l8UTlan0mxusfhP20PxIxys/qWOWrz7C/tYfiROXn9SbHh7eqxqV4ZJKSyb078We3hI2xNw6aONPM/VLf38OJ6Li3dnx7S9yiJ3FDuqoWzd91cd2ZHJ/fj4lZ3ScYTd7TXVvsZmV3SMtW3T9mbqJa2UqFW99Nd+q3+JNzUJdGok210bN7uOhbapiLAZVJESLCJapIFqRW2Ho04VuUtr1n5LGX1Ze3RhodWJEohHj7YptxUvV+AV4U4qV9Cqxy6gbRiBpmW5d1zQ6cDRlUqqyCPq6NHJBR8QipRRUeLtPSjiv4X70Vp88jcd09vf2bCbw0HbT/+mfoOE7ab52t83oZYXdo6cL2O9y4Ky09N/R52ifO7N2hm8gsPTjOtGM+bDW/DTXiNSZiOyPQ+j8HwqP8AGmebmZ/9DMktj4ab+1d312f5muflHpImj+gaLVlV9tlcdTl9JGaf7O9VUdV+l5iP7O1f2q95eq/RzEPYGI9aJeqhY1k/QOJ7H7Uh1MLzCjsjaFLopa9q7PkajX0kjUgPZ+0Y3+rT48GObpN8yGE8FjXHK6O/jls9/cOZj9pGbF4HFr9WzW6GuajzfEpNZJdqL2N7LkavqvwYatOSfqsG5LUuolNWglKklKRBNgrWfKXzbqcdX16H4/CH1Jl7uBxVPE0Iyjv3tHdiWziEc2Iw6mrNaPgVbeTW2bCN8sSjyKtCcJ2tu3AXh8LVrStFPtYHtYfZMMtpRuUenhsFSoLmRSvxDLqsAnEo8vbkYxwNRpatxu/aVXyVzUdlp20NqYnDw5OEll4KyZ7NPi5xcctG2307jPu6dh165jpoX/aDE+rT8H8zfXs9NDSPlBV40odXFD/IR/VOmUtuX3wWv3v5HSP5CP6sdK0W2Y+qvxR/M11+l9M9IuO2oer/AKoP8y9bpHSNI7ah1T935MdTo/bM8Nk1jtyPr1I/iLztH9MdNmr6eX7af+r5F36KdNLSPlDH/Ebuv+aF6JyJaR2//wDYj/pNbdJnkS0W3p/tYPwHL0jkStbbqPjH+vaOTh9scr9KW2qnFR96LyMftOV+lfTL9SPiTkfs5eQ+lovpUvei9P8AtOXkX0jhn0qPwY5GX2bMi88wT/Ve5Dl5/bNZFy2zpb6fuLs1V/NGXZUvRV/aX/2X80PDbKl1D/0+mryT5lsz1l4ofn/VN2TxI/Wwya3elj8fEv0FL5Kvgpcph7uG+VPt60dYlKelg9q0cSrN89b1x9qNJTt0n0dSpSXRTKifNKT3xA0jQhHooo0USirEQ7ATLRahXh7fxlDzfkIyvUbTsupFV8yipQLcLBXKncCypFy7pB2l3SAyAtgM/wCzudzV/s7jM+sbl7Hyk+tjelQOVn1sbzbBcpLr0HNk2wOUf9WHMy+zb+j5aSLzs/tNv6X51VW6UvF/M31WqnKhXn1f9pLxZes1U5UH9JYn9pK/sNddr/aciFfSuKXp+5fI3/kdb7Tp8V/TGJ614fzNR/JajPS4KW2q/VH3/M6f5XJOmxUttVOMV7y/5Wf6s9Hir6al6nv/AJF/ys/1To8XVhcRhd7qLO+G74nwNr6DujOnJaST8GWhz1sDSrPNHmT9aOjNMsr7Rw3RarQW7hItlNY7eqw0r05Q9695bSnRT8oMM97t3plSm8dt4R+nH3oFH9NYT14+LZSmcvKHDR3Sv3KTJY5peUEp/ZQnN8Fol7hY5a2M2hUi5OKpQWrlLV+/5Gh49acpzzSbk3xKMwoKEAABEACKpgFwAoCICKQQBQQOOrt7wN3Gll+91Xt+cig5GH533gc7tfmmRIAFFwESwZhY1RkUpSjuYoaxx2Kp9Go9OG/4gtvDbWJj0lGfss/cNo66O1cPVeWtTydu9E2jv8xwtRXyxd9U9CKX0ThfVG4o/orDL0EXcU0jgqUejCK9iJaL5PLwQseTjpSxWKWFjpCOs38TYxx1D6q1ONo09xUeV+RoUUSAXACAAAAAANPaUGhAaAAAAiAARJAIAUACIoAAAg1IACSgAoD0tk4+VKoqM39XLd2PgSYH0KZzhVGgaGVYYytyOGqVOqOj7dyNQzLwdm5nXk/u6+1m5FbTrPlORi+bG1+80kvPZQ+TuAWKDKuoCckSA5OIBycSA5MoXJ+AByfaAuT7QDk2AskgDJMCcsuoyo1AWoAAXIhXALhTuAXKFdEGxAgEUAD3AdmzcPy1dSb0g02vgiTI+pW45KdywpXRB5m26iWHVP15LwR0xZlx7HdOM6jk9dHrpoakcFapylSdT1m2aSWdrlCygUEAUAAAQBQAADAQAAAAQAFyBWAmyIoyx6gJyx6iKMiAWRALJEDTgQSA0AuIBa8rFHtbDpxlKTZmSHtpW4sw0HckqWZ6geHtiTliIRe5Rv7zrgxLz5RWVs6IhagdWCoQq1cstxrBnJ1TwNFdfiT6HJiqMKXR7d5JHLcQphS4AUiJIsUIKAguAwSRAcAoIFxNA6yAAkgZQiARAuFwJzMK/9k=")
				if(!this.ready)return reject(this.readyText)
				if(isInWebview){
					require(["cordova-camera"],function(camera){
						camera.getPicture(onLoadImageLocalSuccess, onLoadImageFail, {
							quality: 75,
							targetWidth: 500,
							targetHeight: 500,
							destinationType: Camera.DestinationType.DATA_URL,
							//destinationType: Camera.DestinationType.FILE_URI,
							sourceType: Camera.PictureSourceType.PHOTOLIBRARY
						})
						function onLoadImageLocalSuccess(result){
							resolve(result)
						}
						function onLoadImageFail(error){
							reject(error)
						}
						function cleanUp(){
							camera.cleanup(function() {
								alert("Camera cleanup success.")
							}, function(message) {
								alert('Failed because: ' + message);
							})
						}
					})
					return false
				}
				reject("您的平台不支持此功能")
			}.bind(this))
		},
		
		
		//录音功能
		//lzdtest
		
		
		
		
		//网优插件调用
		netgather : function(city,address,gridName,billId,linkPhone){
			return new Promise(function(resolve,reject){
				if(this.env === "develop"){
					alert("调用网优插件")
					return resolve()
				}
				if(!this.ready)return reject(this.readyText)
				if(isInYWT){
					return navigator.Cpslite.netgather(
						resolve,
						reject,
						[city,address,gridName,billId,linkPhone]
					)
				}
				alert("网优插件只能在营维通应用内使用")
			}.bind(this))
		},
		//配置sn
		configSN : function(args){
			return new Promise(function(resolve,reject){
				if(this.env === "develop"){
					alert("调用E8CSN配置")
					return resolve()
				}
				if(!this.ready)return reject(this.readyText)
				if(isInYWT){
					return ccssoft.plugin.configsn.config(resolve,reject,args)
				}
				alert("配置SN功能只能在营维通应用内使用")
			}.bind(this))
		}
	})
})