mxcad 1.0.147 → 1.0.149

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mxcad.d.ts CHANGED
@@ -2848,6 +2848,15 @@ export declare class McObject {
2848
2848
  */
2849
2849
  zoomScale(scale: number): void;
2850
2850
  /**
2851
+ * 把对象添加当前选择中
2852
+ * @param id 对象id
2853
+ * @returns void
2854
+ * @example
2855
+ * ```typescript
2856
+ * ```
2857
+ */
2858
+ addCurrentSelect(id: McObjectId): void;
2859
+ /**
2851
2860
  * 把当前显示范围移到指定的显示范围
2852
2861
  * @param minPt 坐标1 McGePoint3d
2853
2862
  * @param maxPt 坐标2 McGePoint3d
package/dist/mxcad.es.js CHANGED
@@ -135,7 +135,7 @@ class MxG2312 {
135
135
  }
136
136
  }
137
137
  let MxG2312Obj = new MxG2312();
138
- const version$1 = "1.0.147", isSharedArrayBuffer = "SharedArrayBuffer" in window, isCdn = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), get2DFileURL = (fileName, base = self.location.href) => isCdn ? `https://unpkg.com/mxcad@${version$1}/dist/wasm/2d-st/${fileName}` : base + fileName, get2DSTFileURL = (fileName, base = self.location.href) => isCdn ? `https://unpkg.com/mxcad@${version$1}/dist/wasm/2d/${fileName}` : base + fileName, get3DFileURL = (fileName, base = self.location.href) => isCdn ? `https://unpkg.com/mxcad@${version$1}/dist/wasm/3d/${fileName}` : base + fileName, loadScript = (url) => new Promise((resolve, reject) => {
138
+ const version$1 = "1.0.149", isSharedArrayBuffer = "SharedArrayBuffer" in window, isCdn = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), get2DFileURL = (fileName, base = self.location.href) => isCdn ? `https://unpkg.com/mxcad@${version$1}/dist/wasm/2d-st/${fileName}` : base + fileName, get2DSTFileURL = (fileName, base = self.location.href) => isCdn ? `https://unpkg.com/mxcad@${version$1}/dist/wasm/2d/${fileName}` : base + fileName, get3DFileURL = (fileName, base = self.location.href) => isCdn ? `https://unpkg.com/mxcad@${version$1}/dist/wasm/3d/${fileName}` : base + fileName, loadScript = (url) => new Promise((resolve, reject) => {
139
139
  const script = document.createElement("script");
140
140
  script.src = url, script.type = "text/javascript", script.crossOrigin = "anonymous", document.body.appendChild(script), script.onload = () => {
141
141
  resolve();
@@ -2401,6 +2401,9 @@ class McObject {
2401
2401
  zoomScale(scale) {
2402
2402
  this.getMxDrawObject().zoomScale(scale);
2403
2403
  }
2404
+ addCurrentSelect(id) {
2405
+ id.type == McObjectIdType.kMxDraw ? this.getMxDrawObject().addMxCurrentSelect(id.id) : id.type == McObjectIdType.kMxCAD && this.getMxDrawObject().addMxCADCurrentSelect(id.id);
2406
+ }
2404
2407
  zoomW(minPt, maxPt) {
2405
2408
  this.getMxDrawObject().zoomW(minPt.toVector3(), maxPt.toVector3());
2406
2409
  }
package/dist/mxcad.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("mxdraw")):typeof define=="function"&&define.amd?define(["exports","mxdraw"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.mxcad={},global.Mx))})(this,function(exports2,mxdraw){"use strict";function b64Encode(str){return btoa(unescape(encodeURIComponent(str)))}function b64Decode(str){return decodeURIComponent(escape(atob(str)))}async function saveAsFileDialog({blob,filename="",types=[{description:"mxweb File",accept:{"application/octet-stream":[".mxweb"]}}]}){try{if(window.showSaveFilePicker)if(window.navigator?.userActivation?.isActive)try{if(!window.showSaveFilePicker)return;const handle=await window.showSaveFilePicker({suggestedName:filename,types}),writable=await handle.createWritable();return await writable.write(blob),await writable.close(),handle}catch(err){if(err?.name==="AbortError")return;console.error(err)}else console.warn("\u975E\u7528\u6237\u4EA4\u4E92 \u65E0\u6CD5\u8C03\u7528showSaveFilePicker \u5DF2\u9009\u62E9\u517C\u5BB9\u65B9\u6848");if(window.navigator?.msSaveOrOpenBlob){window.navigator.msSaveOrOpenBlob(blob,filename);return}const link=document.createElement("a");link.href=window.URL.createObjectURL(blob),link.download=filename,link.style.display="none",document.body.appendChild(link),link.click(),document.body.removeChild(link),typeof window.URL.revokeObjectURL=="function"?window.URL.revokeObjectURL(link.href):typeof window.webkitURL<"u"&&typeof window.webkitURL.revokeObjectURL=="function"?window.webkitURL.revokeObjectURL(link.href):window.URL.revokeObjectURL(link.href)}catch(err){console.error(err.name,err.message)}}function downloadFile(blob,filename){const link=document.createElement("a");link.href=window.URL.createObjectURL(blob),link.download=filename,link.click()}function downloadFileFromUrl(url,filename){fetch(url).then(response=>response.blob()).then(blob=>{const link=document.createElement("a");link.href=window.URL.createObjectURL(blob),link.download=filename,link.click()})}const getJsonFromUrl=async url=>{try{return await(await fetch(url)).json()}catch{console.error("MxTip:error getJsonFromurl:"+url)}},getFileFromUrl=async url=>{try{return await fetch(url)}catch{console.error("MxTip:error getFileFromUrl:"+url)}};function _ML_String(strId,str){return mxdraw.MxFun.getLanguageString(strId,str)}function IsZero(val){return Math.abs(val)<1e-7}const MxTools={b64Encode,b64Decode,saveAsFileDialog,downloadFile,downloadFileFromUrl,getJsonFromUrl,getFileFromUrl,_ML_String,IsZero};class MxG2312{z="D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";encodeToGb2312(str){for(var strOut="",i=0;i<str.length;i++){var c=str.charAt(i),code=str.charCodeAt(i);if(c==" ")strOut+="+";else if(code>=19968&&code<=40869){let index=code-19968;strOut+="%"+this.z.substr(index*4,2)+"%"+this.z.substr(index*4+2,2)}else strOut+="%"+str.charCodeAt(i).toString(16)}return strOut}decodeFromGb2312(str){for(var strOut="",i=0;i<str.length;i++){var c=str.charAt(i);if(c=="+")strOut+=" ";else if(c!="%")strOut+=c;else{i++;var nextC=str.charAt(i);if(isNaN(parseInt(nextC)))try{var code=str.substr(i,2)+str.substr(i+3,2);i=i+4;for(var index=-1;(index=this.z.indexOf(code,index+1))!=-1;)if(index%4==0){strOut+=String.fromCharCode(index/4+19968);break}}catch{}else{i++;try{strOut+=decodeURIComponent(c+nextC+str.charAt(i))}catch{console.log("decodeURIComponent error"),console.log(c+nextC+str.charAt(i))}}}}return strOut}}let MxG2312Obj=new MxG2312;const version$1="1.0.147",isSharedArrayBuffer="SharedArrayBuffer"in window,isCdn=document.currentScript&&/unpkg\.com\/mxcad/.test(document.currentScript.src),get2DFileURL=(fileName,base=self.location.href)=>isCdn?`https://unpkg.com/mxcad@${version$1}/dist/wasm/2d-st/${fileName}`:base+fileName,get2DSTFileURL=(fileName,base=self.location.href)=>isCdn?`https://unpkg.com/mxcad@${version$1}/dist/wasm/2d/${fileName}`:base+fileName,get3DFileURL=(fileName,base=self.location.href)=>isCdn?`https://unpkg.com/mxcad@${version$1}/dist/wasm/3d/${fileName}`:base+fileName,loadScript=url=>new Promise((resolve,reject)=>{const script=document.createElement("script");script.src=url,script.type="text/javascript",script.crossOrigin="anonymous",document.body.appendChild(script),script.onload=()=>{resolve()},script.onerror=e=>{reject(e)}}),loadWams$1=async(baseFileName,namespace,config)=>{const{locateFile}=config,jsPath=locateFile(baseFileName+".js");return await loadScript(jsPath),await globalThis[namespace](config)},_mxFinalizationRegistry$1=new FinalizationRegistry(key=>{exports2.MxCpp.App.destroyObject(key)}),_mxFinalizationRegistry_token$1={};class McRxObject{imp=0;constructor(imp){this.imp=imp,this.imp&&(this.imp.isNull()&&console.log("Mx:error null constructor object "),_mxFinalizationRegistry$1.register(this,imp,_mxFinalizationRegistry_token$1))}getImp(){return this.imp}initTempObject(imp){this.imp=imp}get objectName(){return this.imp.getObjectName()}get dxf0(){return this.imp.getDxf0()}getJson(){let hexGb=this.imp.getJson();return MxG2312Obj.decodeFromGb2312(hexGb)}setJson(str){let sHex=MxG2312Obj.encodeToGb2312(str);return this.imp.setJson(sHex)}isKindOf(sObjectName){return this.imp.isKindOf(sObjectName)}isNull(){return this.imp.isNull()}}function getFilterImp(filter=null){let filetImp;return filter?filetImp=filter.getImp():filetImp=new exports2.MxCpp.mxcadassemblyimp.McDrawResbuf,filetImp}var MxCADResbufDataType=(MxCADResbufDataType2=>(MxCADResbufDataType2[MxCADResbufDataType2.kLong=1071]="kLong",MxCADResbufDataType2[MxCADResbufDataType2.kDouble=1040]="kDouble",MxCADResbufDataType2[MxCADResbufDataType2.kString=1e3]="kString",MxCADResbufDataType2[MxCADResbufDataType2.kPoint=1010]="kPoint",MxCADResbufDataType2[MxCADResbufDataType2.kEntityType=5020]="kEntityType",MxCADResbufDataType2[MxCADResbufDataType2.kEntityId=-8e3]="kEntityId",MxCADResbufDataType2[MxCADResbufDataType2.kEntity=-8500]="kEntity",MxCADResbufDataType2[MxCADResbufDataType2.kExDataName=1001]="kExDataName",MxCADResbufDataType2))(MxCADResbufDataType||{});class MxCADResbuf extends McRxObject{constructor(imp){imp?imp instanceof Array?(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.McDrawResbuf),this.setJson(JSON.stringify(imp))):super(imp):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.McDrawResbuf))}Clear(){this.imp.Clear()}forEach(call){let str=this.getJson();try{let ary=JSON.parse(str),len=ary.length;for(let i=0;i<len;i++)call(ary[i].val,ary[i].type,ary[i].dxf)}catch{console.log("Mx: json data error")}}GetCount(){return this.imp.GetCount()}AtDouble(lItem){return{val:this.imp.AtDouble(lItem),ret:exports2.MxCpp.getCallResult()==0}}AtLong(lItem){return{val:this.imp.Atlong(lItem),ret:exports2.MxCpp.getCallResult()==0}}AtObject(lItem){if(lItem>=this.imp.GetCount())return{val:void 0,ret:!1};let impobj=this.imp.AtObject(lItem),obj=exports2.MxCpp.App.createCloneObject(impobj);return obj===null?{val:void 0,ret:!1}:{val:obj,ret:!0}}AddObject(pObj){this.imp.AddObject(pObj.getImp())}AtObjectId(lItem){return{val:new McObjectId(this.imp.AtObjectId(lItem),McObjectIdType.kMxCAD),ret:exports2.MxCpp.getCallResult()==0}}AtString(lItem,decodeFromGb2312=!0){return decodeFromGb2312?{val:MxG2312Obj.decodeFromGb2312(this.imp.AtString(lItem)),ret:exports2.MxCpp.getCallResult()==0}:{val:this.imp.AtString(lItem),ret:exports2.MxCpp.getCallResult()==0}}AtPoint(lItem){return{val:new McGePoint3d(this.imp.AtPoint(lItem)),ret:exports2.MxCpp.getCallResult()==0}}ItemDataType(){return this.imp.ItemDataType()}AddDouble(val,lDataType=-10){return this.imp.AddDouble(val,lDataType)}AddLong(val,lDataType=-10){return this.imp.Addlong(val,lDataType)}AddObjectId(val,lDataType=-10){return this.imp.AddObjectId(val,lDataType)}AddString(str,lDataType=-10,decodeFromGb2312=!0){return decodeFromGb2312?this.imp.AddString(MxG2312Obj.encodeToGb2312(str),lDataType):this.imp.AddString(str,lDataType)}AddMcDbEntityTypes(str){return this.imp.AddString(str,5020)}AddPoint(pt,lDataType=-10){return this.imp.AddPoint(pt.imp,lDataType)}RemoveAll(){this.imp.RemoveAll()}Remove(lItem){this.imp.Remove(lItem)}PrintData(){this.imp.PrintData()}}class MxCADUtilityClass{imp;constructor(){}eraseObject(lId,isErase=!0){return this.init(),this.imp.eraseObject(lId,isErase)}highlightEntity(lId,isHighlight=!0){return this.init(),this.imp.highlightEntity(lId,isHighlight)}findEntAtPoint(dX,dY,dZ,dSearhRange=-1,filter=null){this.init();let retId=this.imp.findEntAtPoint(dX,dY,dZ,dSearhRange,getFilterImp(filter));return new McObjectId(retId,McObjectIdType.kMxCAD)}selectEnt(strPrompt,filter=null,isSelectMxDraw=!0){return this.init(),new Promise(async resolve=>{let mxcad2=exports2.MxCpp.getCurrentMxCAD();const getPoint=new mxdraw.MrxDbgUiPrPoint;strPrompt&&getPoint.setMessage(strPrompt),getPoint.setCursorType(mxdraw.MxCursorType.kRect),getPoint.disableAllTrace(),getPoint.setDynamicInputType(mxdraw.DynamicInputType.kDynTip);let pt=await getPoint.go();if(!pt){resolve([]);return}if(getPoint.clearLastInputPoint(),isSelectMxDraw)mxdraw.MrxDbgUtils.findEntAtPoint(pt).then(aryId=>{let aryRetId=[];aryId.forEach(val=>{aryRetId.push(new McObjectId(val,McObjectIdType.kMxDraw))});let ptcad=mxcad2.doc2cad1(pt),mxCADObjectId=this.findEntAtPoint(ptcad.x,ptcad.y,ptcad.z,-1,filter);mxCADObjectId.isValid()&&aryRetId.push(mxCADObjectId),resolve(aryRetId)});else{let aryRetId=[],ptcad=mxcad2.doc2cad1(pt),mxCADObjectId=this.findEntAtPoint(ptcad.x,ptcad.y,ptcad.z,-1,filter);mxCADObjectId.isValid()&&aryRetId.push(mxCADObjectId),resolve(aryRetId)}})}getCurrentSelect(filter=null){let aryRetId=[];mxdraw.MxFun.getCurrentDraw().getMxCurrentSelect().forEach(val=>{aryRetId.push(new McObjectId(val,McObjectIdType.kMxDraw))});let aryMxCADId=mxdraw.MxFun.getCurrentDraw().getMxCADCurrentSelect();if(aryMxCADId.length<=0)return aryRetId;if(filter){let aryId2=new McGeLongArray;aryMxCADId.forEach(val=>{aryId2.append(val)});let ssimp=new exports2.MxCpp.mxcadassemblyimp.McDrawSelSet,aryOutId=ssimp.getFilterEntity(aryId2.imp,getFilterImp(filter));exports2.MxCpp.App.destroyObject(ssimp),aryMxCADId=[];let len=aryOutId.length();for(let k=0;k<len;k++)aryMxCADId.push(aryOutId.at(k))}return aryMxCADId.forEach(val=>{aryRetId.push(new McObjectId(val,McObjectIdType.kMxCAD))}),aryRetId}async userSelect(strPrompt,filter=null){let aryRetId=this.getCurrentSelect(filter);if(aryRetId.length==0){let ss=new MxCADSelectionSet;await ss.userSelect(strPrompt,filter)&&ss.forEach(val=>{aryRetId.push(val)})}return new Promise(resolve=>{resolve(aryRetId)})}init(){this.imp||(this.imp=new exports2.MxCpp.mxcadassemblyimp.McDrawUtility)}async getCorner(strPrompt,pt1,detailedResult,drawSelectCroner=!1,isDisableAllTrace=!1){let retcode=0,retPt2;for(;;){if(!pt1){let getPoint=new MxCADUiPrPoint;strPrompt&&getPoint.setMessage(strPrompt),getPoint.setDynamicInputType(mxdraw.DynamicInputType.kDynTip),pt1=await getPoint.go(),retcode=getPoint.getDetailedResult()}if(!pt1)break;let mxcad2=exports2.MxCpp.getCurrentMxCAD(),pt1Doc=mxcad2.cad2doc1(pt1),pt2=await mxdraw.MrxDbgUtils.getCorner(pt1Doc,strPrompt,drawSelectCroner,ret=>{retcode=ret.detailedResult},isDisableAllTrace);pt2&&(retPt2=mxcad2.doc2cad1(pt2));break}return detailedResult&&detailedResult(retcode),new Promise(resolve=>{retcode==mxdraw.DetailedResult.kEcsIn||retcode==mxdraw.DetailedResult.kNewCommadIn||retcode==mxdraw.DetailedResult.kUnknown?resolve(null):resolve(pt1&&retPt2?{pt1,pt2:retPt2}:null)})}getMcDbEntitysBoundingBox(aryId){let minPt,maxPt;if(aryId.forEach(val=>{let ent=val.getMcDbEntity();if(ent==null)return;let bound=ent.getBoundingBox();!bound.ret||(!minPt||!maxPt?(minPt=new THREE.Vector3(bound.minPt.x,bound.minPt.y,0),maxPt=new THREE.Vector3(bound.maxPt.x,bound.maxPt.y,0)):(minPt.x>bound.minPt.x&&(minPt.x=bound.minPt.x),minPt.y>bound.minPt.y&&(minPt.y=bound.minPt.y),maxPt.x<bound.maxPt.x&&(maxPt.x=bound.maxPt.x),maxPt.y<bound.maxPt.y&&(maxPt.y=bound.maxPt.y)))}),minPt&&maxPt)return{minPt:new McGePoint3d(minPt),maxPt:new McGePoint3d(maxPt)}}calcBulge(pt1,pt2,pt3){return{val:this.imp.calcBulge(pt1.imp,pt2.imp,pt3.imp),ret:exports2.MxCpp.getCallResult()==0}}builderHatchFromPoint(pt){let imphatch=this.imp.builderHatchFromPoint(pt.x,pt.y);return imphatch.isNull()?(exports2.MxCpp.App.destroyObject(imphatch),null):new McDbHatch(imphatch)}}let MxCADUtility=new MxCADUtilityClass;var MxCADSelectionSetStatus=(MxCADSelectionSetStatus2=>(MxCADSelectionSetStatus2[MxCADSelectionSetStatus2.kSelected=0]="kSelected",MxCADSelectionSetStatus2[MxCADSelectionSetStatus2.kNone=1]="kNone",MxCADSelectionSetStatus2[MxCADSelectionSetStatus2.kCanceled=2]="kCanceled",MxCADSelectionSetStatus2[MxCADSelectionSetStatus2.kRejected=3]="kRejected",MxCADSelectionSetStatus2[MxCADSelectionSetStatus2.kKeyword=4]="kKeyword",MxCADSelectionSetStatus2))(MxCADSelectionSetStatus||{});class MxCADSelectionSet extends McRxObject{isWhileSelect=!0;isSelectHighlight=!0;selectPt1=new McGePoint3d;selectPt2=new McGePoint3d;constructor(){super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.McDrawSelSet)}getSelectPoint(){return{pt1:this.selectPt1,pt2:this.selectPt2}}allSelect(filter=null){return this.imp.allSelect(getFilterImp(filter))}pointSelect(dX,dY,filter=null,dTol=-1){return this.imp.pointSelect(dX,dY,getFilterImp(filter),dTol)}crossingSelect(dX1,dY1,dX2,dY2,filter=null){return this.imp.crossingSelect(dX1,dY1,dX2,dY2,getFilterImp(filter))}count(){return this.imp.count()}item(lItem){return new McObjectId(this.imp.item(lItem),McObjectIdType.kMxCAD)}forEach(call){let iCount=this.imp.count();for(let i=0;i<iCount;i++)call(this.item(i))}getIds(){let ret=[],iCount=this.imp.count();for(let i=0;i<iCount;i++)ret.push(this.item(i));return ret}async userSelect(strPrompt,filter=null){this.selectPt1=new McGePoint3d,this.selectPt2=new McGePoint3d;let getPoint=new mxdraw.MrxDbgUiPrPoint;strPrompt&&getPoint.setMessage(strPrompt),getPoint.setCursorType(mxdraw.MxCursorType.kRect),getPoint.setDynamicInputType(mxdraw.DynamicInputType.kDynTip),getPoint.disableAllTrace();let retcode=0,filterImp=getFilterImp(filter),mxcad2=exports2.MxCpp.getCurrentMxCAD();for(;;){getPoint.setDynamicInputType(mxdraw.DynamicInputType.kDynTip);let pt1=await getPoint.go();if(getPoint.clearLastInputPoint(),retcode=getPoint.getDetailedResult(),!pt1)break;let pt1CAD=mxcad2.doc2cad1(pt1);if(this.imp.userPointSelect(pt1CAD.x,pt1CAD.y,filterImp,this.isSelectHighlight)==0){if(this.selectPt1.copy(pt1CAD),this.selectPt2.copy(pt1CAD),this.isWhileSelect)continue;break}let pt2=await mxdraw.MrxDbgUtils.getCorner(pt1,strPrompt,!0,ret=>{retcode=ret.detailedResult});if(!pt2)break;let pt2CAD=mxcad2.doc2cad1(pt2);if(this.imp.userSelect(pt1CAD.x,pt1CAD.y,pt2CAD.x,pt2CAD.y,filterImp,this.isSelectHighlight),this.selectPt1.copy(pt1CAD),this.selectPt2.copy(pt2CAD),!this.isWhileSelect)break}return this.isSelectHighlight&&this.imp.highlightEntity(!1),retcode==mxdraw.DetailedResult.kEcsIn||retcode==mxdraw.DetailedResult.kNewCommadIn||retcode==mxdraw.DetailedResult.kUnknown?new Promise(resolve=>{resolve(!1)}):new Promise(resolve=>{resolve(!0)})}}class MxCADUiPrBase{imp;mxobj;constructor(imp){this.imp=imp,this.mxobj=mxdraw.MxFun.getCurrentDraw()}doc2cad1(pt){return new McGePoint3d(pt.x,pt.y,pt.z)}doc2cad2(x,y,z){return new McGePoint3d(x,y,z)}cad2doc1(pt){return new THREE.Vector3(pt.x,pt.y,pt.z)}cad2doc2(x,y,z){return new THREE.Vector3(x,y,z)}keyWords(){return this.imp.keyWords()}setKeyWords(keyWordList){this.imp.setKeyWords(keyWordList)}clearLastInputPoint(){this.imp.clearLastInputPoint()}setLastInputPoint(pt){this.imp.setLastInputPoint(this.cad2doc1(pt))}message(){return this.imp.message()}setMessage(message){this.imp.setMessage(message)}keyWordPicked(){return this.imp.keyWordPicked()}isKeyWordPicked(matchKeyWord){return this.imp.isKeyWordPicked(matchKeyWord)}setUserDraw(pDraw){let myThis=this;this.imp.setUserDraw((pt,pWorldDraw)=>{pDraw(myThis.doc2cad1(pt),pWorldDraw)})}getDetailedResult(){return this.imp.getDetailedResult()}getStatus(){return this.imp.getStatus()}drawReserve(callAddEntity){this.imp.drawReserve(callAddEntity)}setInputToucheType(toucheType){this.imp.setInputToucheType(toucheType)}getInputToucheType(){return this.imp.getInputToucheType()}setCursorType(type){this.imp.setCursorType(type)}getCursorType(){return this.imp.getCursorType()}setDynamicInputType(type){this.imp.setDynamicInputType(type)}getDynamicInputType(){return this.imp.getDynamicInputType()}isDisableDynInput(){return this.imp.isDisableDynInput()}setDisableDynInput(isDisable){this.imp.setDisableDynInput(isDisable)}setDisableOsnap(isDisable){this.imp.setDisableOsnap(isDisable)}isDisableOsnap(){return this.imp.isDisableOsnap()}setDisableDynamicTrace(isDisable){this.imp.setDisableDynamicTrace(isDisable)}isDisableDynamicTrace(){return this.imp.isDisableDynamicTrace()}setDisablePolarAxisTrace(isDisable){this.imp.setDisablePolarAxisTrace(isDisable)}isDisablePolarAxisTrace(){return this.imp.isDisablePolarAxisTrace()}setDisableGridTrace(isDisable){this.imp.setDisableGridTrace(isDisable)}isDisableGridTrace(){return this.imp.isDisableGridTrace()}setDisableOrthoTrace(isDisable){this.imp.setDisableOrthoTrace(isDisable)}isDisableOrthoTrace(){return this.imp.isDisableOrtho()}disableAllTrace(isDisable=!0){this.imp.disableAllTrace(isDisable)}userInputControls(){return this.imp.userInputControls()}setUserInputControls(contros){this.imp.setUserInputControls(contros)}}class MxCADUiPrPoint extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrPoint)}go(){return new Promise(resolve=>{this.imp.go(status=>{status!=0?resolve(null):resolve(this.doc2cad1(this.imp.value()))})})}value(){return this.doc2cad1(this.imp.value())}getDocValue(){return new McGePoint3d(this.imp.value())}basePt(){return this.doc2cad1(this.imp.basePt())}setBasePt(basePt){this.imp.setBasePt(this.cad2doc1(basePt)),this.imp.setUseBasePt(!0)}setUseBasePt(useIt){this.imp.setUseBasePt(useIt)}}class MxCADUiPrDist extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrDist)}value(){return this.imp.value()}basePt(){return this.doc2cad1(this.imp.basePt())}setBasePt(basePt){this.imp.setBasePt(this.cad2doc1(basePt)),this.imp.setUseBasePt(!0)}setUseBasePt(useIt){return this.imp.setUseBasePt(useIt)}go(){return this.imp.go()}}class MxCADUiPrAngle extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrAngle)}value(){return this.imp.value()}basePt(){return this.doc2cad1(this.imp.basePt())}setBasePt(basePt){this.imp.setBasePt(this.cad2doc1(basePt)),this.imp.setUseBasePt(!0)}setUseBasePt(useIt){return this.imp.setUseBasePt(useIt)}go(){return this.imp.go()}}class MxCADUiPrInt extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrInt)}value(){return this.imp.value()}go(){return this.imp.go()}}class MxCADUiPrKeyWord extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrKeyWord)}go(){return this.imp.go()}}class MxCADUiPrString extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrString),this.setDynamicInputType(mxdraw.DynamicInputType.kNoInput),this.disableAllTrace()}value(){return this.imp.value()}go(){return this.imp.go()}}class MxCADUiPrEntity extends MxCADUiPrBase{filter;id=new McObjectId;constructor(){super(new mxdraw.MrxDbgUiPrPoint),this.setCursorType(mxdraw.MxCursorType.kRect),this.setDynamicInputType(mxdraw.DynamicInputType.kDynTip),this.disableAllTrace()}setFilter(filter){this.filter=filter}getFilter(){return this.filter}go(){return new Promise(resolve=>{let myThis=this;this.imp.go(status=>{if(myThis.clearLastInputPoint(),status!=0)resolve(new McObjectId);else{let pt=myThis.imp.value(),ptCAD=myThis.doc2cad1(pt);myThis.id=MxCADUtility.findEntAtPoint(ptCAD.x,ptCAD.y,ptCAD.z,-1,myThis.filter),resolve(myThis.id)}})})}pickPoint(){return this.doc2cad1(this.imp.value())}value(){return this.id}getDocPickPoint(){return new McGePoint3d(this.imp.value())}}var McObjectIdType=(McObjectIdType2=>(McObjectIdType2[McObjectIdType2.kMxCAD=0]="kMxCAD",McObjectIdType2[McObjectIdType2.kMxDraw=1]="kMxDraw",McObjectIdType2[McObjectIdType2.kInvalid=2]="kInvalid",McObjectIdType2))(McObjectIdType||{});class McObjectId{id;type;constructor(id=0,type=2){this.id=id,id?type==2?this.type=0:this.type=type:this.type=2}isValid(){return this.type!=2&&this.id!=0}isNull(){return this.type==2||this.id==0}isErase(){return this.isValid()&&this.type==0&&this.id!=0?exports2.MxCpp.App.getImp().isObjectEraseSataus(this.id):!1}erase(isErase=!0){!this.isValid()||(this.type==1?mxdraw.MxFun.getCurrentDraw().eraseMxEntity(this.id):this.type==0&&MxCADUtility.eraseObject(this.id,isErase))}getMcDbObject(){return this.isValid()&&this.type==0?exports2.MxCpp.App.objectIdToObject(this.id):null}isKindOf(className){return this.isValid()&&this.type==0?exports2.MxCpp.App.objectIdIsKindOf(this.id,className):!1}getMcDbEntity(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbEntity")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbCurve(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbCurve")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbBlockTableRecord(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbBlockTableRecord")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbLayerTableRecord(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbLayerTableRecord")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbLinetypeTableRecord(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbLinetypeTableRecord")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbTextStyleTableRecord(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbTextStyleTableRecord")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbDimension(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbDimension")?exports2.MxCpp.App.objectIdToObject(this.id):null}clone(){if(!this.isValid())return null;if(this.type==0){let imp=exports2.MxCpp.App.getImp().ObjectIdToMdObject(this.id);if(!imp)return null;let clonobjImp=imp.Clone();return exports2.MxCpp.App.destroyObject(imp),exports2.MxCpp.App.createCloneObject(clonobjImp)}return null}getObjectName(){if(this.type==0)return exports2.MxCpp.App.getImp().ObjectIdToObjectName(this.id);if(this.type==1){let ent=mxdraw.MxFun.getCurrentDraw().getMxEntity(this.id);if(ent)return ent.getTypeName()}return""}getMxDbEntity(){return this.isValid()&&this.type==1?mxdraw.MxFun.getCurrentDraw().getMxEntity(this.id):null}getMcDbRasterImageDef(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbRasterImageDef")?exports2.MxCpp.App.objectIdToObject(this.id):null}}class McDbObject extends McRxObject{constructor(imp){super(imp)}getObjectID(){return new McObjectId(this.imp.GetObjectID(),0)}erase(){return this.imp.Erase()}isErased(){return this.imp.isErased()}unErase(){return this.imp.unErase()}clone(){let clonobjImp=this.imp.Clone();return exports2.MxCpp.App.createCloneObject(clonobjImp)}getHandle(){return this.imp.GetHandle()}getDatabase(){return new McDbDatabase(this.imp.GetDatabase())}getOwnerID(){return this.imp.GetOwnerID()}}class McDbObjectArray{aryVal=[];constructor(imp){if(imp){let i=0,len=imp.length();for(;i<len;i++){let objimp=imp.release(i),obj=exports2.MxCpp.App.createCloneObject(objimp);obj!=null&&this.aryVal.push(obj)}exports2.MxCpp.App.destroyObject(imp)}}forEach(call){let iCount=this.aryVal.length;for(let i=0;i<iCount;i++)call(this.aryVal[i],i)}length(){return this.aryVal.length}empty(){return this.aryVal.length==0}}exports2.McDb=void 0,(McDb2=>{(TextHorzMode2=>{TextHorzMode2[TextHorzMode2.kTextLeft=0]="kTextLeft",TextHorzMode2[TextHorzMode2.kTextCenter=1]="kTextCenter",TextHorzMode2[TextHorzMode2.kTextRight=2]="kTextRight",TextHorzMode2[TextHorzMode2.kTextAlign=3]="kTextAlign",TextHorzMode2[TextHorzMode2.kTextMid=4]="kTextMid",TextHorzMode2[TextHorzMode2.kTextFit=5]="kTextFit"})(McDb2.TextHorzMode||(McDb2.TextHorzMode={})),(Intersect2=>{Intersect2[Intersect2.kOnBothOperands=0]="kOnBothOperands",Intersect2[Intersect2.kExtendThis=1]="kExtendThis",Intersect2[Intersect2.kExtendArg=2]="kExtendArg",Intersect2[Intersect2.kExtendBoth=3]="kExtendBoth"})(McDb2.Intersect||(McDb2.Intersect={})),(TextVertMode2=>{TextVertMode2[TextVertMode2.kTextBase=0]="kTextBase",TextVertMode2[TextVertMode2.kTextBottom=1]="kTextBottom",TextVertMode2[TextVertMode2.kTextVertMid=2]="kTextVertMid",TextVertMode2[TextVertMode2.kTextTop=3]="kTextTop"})(McDb2.TextVertMode||(McDb2.TextVertMode={})),(AttachmentPoint2=>{AttachmentPoint2[AttachmentPoint2.kTopLeft=1]="kTopLeft",AttachmentPoint2[AttachmentPoint2.kTopCenter=2]="kTopCenter",AttachmentPoint2[AttachmentPoint2.kTopRight=3]="kTopRight",AttachmentPoint2[AttachmentPoint2.kMiddleLeft=4]="kMiddleLeft",AttachmentPoint2[AttachmentPoint2.kMiddleCenter=5]="kMiddleCenter",AttachmentPoint2[AttachmentPoint2.kMiddleRight=6]="kMiddleRight",AttachmentPoint2[AttachmentPoint2.kBottomLeft=7]="kBottomLeft",AttachmentPoint2[AttachmentPoint2.kBottomCenter=8]="kBottomCenter",AttachmentPoint2[AttachmentPoint2.kBottomRight=9]="kBottomRight",AttachmentPoint2[AttachmentPoint2.kBaseLeft=10]="kBaseLeft",AttachmentPoint2[AttachmentPoint2.kBaseCenter=11]="kBaseCenter",AttachmentPoint2[AttachmentPoint2.kBaseRight=12]="kBaseRight",AttachmentPoint2[AttachmentPoint2.kBaseAlign=13]="kBaseAlign",AttachmentPoint2[AttachmentPoint2.kBottomAlign=14]="kBottomAlign",AttachmentPoint2[AttachmentPoint2.kMiddleAlign=15]="kMiddleAlign",AttachmentPoint2[AttachmentPoint2.kTopAlign=16]="kTopAlign",AttachmentPoint2[AttachmentPoint2.kBaseFit=17]="kBaseFit",AttachmentPoint2[AttachmentPoint2.kBottomFit=18]="kBottomFit",AttachmentPoint2[AttachmentPoint2.kMiddleFit=19]="kMiddleFit",AttachmentPoint2[AttachmentPoint2.kTopFit=20]="kTopFit",AttachmentPoint2[AttachmentPoint2.kBaseMid=21]="kBaseMid",AttachmentPoint2[AttachmentPoint2.kBottomMid=22]="kBottomMid",AttachmentPoint2[AttachmentPoint2.kMiddleMid=23]="kMiddleMid",AttachmentPoint2[AttachmentPoint2.kTopMid=24]="kTopMid"})(McDb2.AttachmentPoint||(McDb2.AttachmentPoint={})),(LineWeight2=>{LineWeight2[LineWeight2.kLnWt000=0]="kLnWt000",LineWeight2[LineWeight2.kLnWt005=5]="kLnWt005",LineWeight2[LineWeight2.kLnWt009=9]="kLnWt009",LineWeight2[LineWeight2.kLnWt013=13]="kLnWt013",LineWeight2[LineWeight2.kLnWt015=15]="kLnWt015",LineWeight2[LineWeight2.kLnWt018=18]="kLnWt018",LineWeight2[LineWeight2.kLnWt020=20]="kLnWt020",LineWeight2[LineWeight2.kLnWt025=25]="kLnWt025",LineWeight2[LineWeight2.kLnWt030=30]="kLnWt030",LineWeight2[LineWeight2.kLnWt035=35]="kLnWt035",LineWeight2[LineWeight2.kLnWt040=40]="kLnWt040",LineWeight2[LineWeight2.kLnWt050=50]="kLnWt050",LineWeight2[LineWeight2.kLnWt053=53]="kLnWt053",LineWeight2[LineWeight2.kLnWt060=60]="kLnWt060",LineWeight2[LineWeight2.kLnWt070=70]="kLnWt070",LineWeight2[LineWeight2.kLnWt080=80]="kLnWt080",LineWeight2[LineWeight2.kLnWt090=90]="kLnWt090",LineWeight2[LineWeight2.kLnWt100=100]="kLnWt100",LineWeight2[LineWeight2.kLnWt106=106]="kLnWt106",LineWeight2[LineWeight2.kLnWt120=120]="kLnWt120",LineWeight2[LineWeight2.kLnWt140=140]="kLnWt140",LineWeight2[LineWeight2.kLnWt158=158]="kLnWt158",LineWeight2[LineWeight2.kLnWt200=200]="kLnWt200",LineWeight2[LineWeight2.kLnWt211=211]="kLnWt211",LineWeight2[LineWeight2.kLnWtByLayer=-1]="kLnWtByLayer",LineWeight2[LineWeight2.kLnWtByBlock=-2]="kLnWtByBlock",LineWeight2[LineWeight2.kLnWtByLwDefault=-3]="kLnWtByLwDefault"})(McDb2.LineWeight||(McDb2.LineWeight={})),(HatchLoopType2=>{HatchLoopType2[HatchLoopType2.kDefault=0]="kDefault",HatchLoopType2[HatchLoopType2.kExternal=1]="kExternal",HatchLoopType2[HatchLoopType2.kPolyline=2]="kPolyline",HatchLoopType2[HatchLoopType2.kDerived=4]="kDerived",HatchLoopType2[HatchLoopType2.kTextbox=8]="kTextbox",HatchLoopType2[HatchLoopType2.kOutermost=16]="kOutermost",HatchLoopType2[HatchLoopType2.kNotClosed=32]="kNotClosed",HatchLoopType2[HatchLoopType2.kSelfIntersecting=64]="kSelfIntersecting",HatchLoopType2[HatchLoopType2.kTextIsland=128]="kTextIsland"})(McDb2.HatchLoopType||(McDb2.HatchLoopType={})),(HatchEdgeType2=>{HatchEdgeType2[HatchEdgeType2.kLine=1]="kLine",HatchEdgeType2[HatchEdgeType2.kCirArc=2]="kCirArc",HatchEdgeType2[HatchEdgeType2.kEllArc=3]="kEllArc",HatchEdgeType2[HatchEdgeType2.kSpline=4]="kSpline"})(McDb2.HatchEdgeType||(McDb2.HatchEdgeType={})),(HatchPatternType2=>{HatchPatternType2[HatchPatternType2.kUserDefined=0]="kUserDefined",HatchPatternType2[HatchPatternType2.kPreDefined=1]="kPreDefined",HatchPatternType2[HatchPatternType2.kCustomDefined=2]="kCustomDefined"})(McDb2.HatchPatternType||(McDb2.HatchPatternType={})),(HatchStyle2=>{HatchStyle2[HatchStyle2.kNormal=0]="kNormal",HatchStyle2[HatchStyle2.kOuter=1]="kOuter",HatchStyle2[HatchStyle2.kIgnore=2]="kIgnore"})(McDb2.HatchStyle||(McDb2.HatchStyle={})),(ClipBoundaryType2=>{ClipBoundaryType2[ClipBoundaryType2.kInvalid=0]="kInvalid",ClipBoundaryType2[ClipBoundaryType2.kRect=1]="kRect",ClipBoundaryType2[ClipBoundaryType2.kPoly=2]="kPoly"})(McDb2.ClipBoundaryType||(McDb2.ClipBoundaryType={}))})(exports2.McDb||(exports2.McDb={}));class McCmColor{imp;constructor(red,green,blue){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdCmColor,red instanceof Object?(this.imp.red=red.red,this.imp.green=red.green,this.imp.blue=red.blue,this.imp.method=red.method,this.imp.n=red.n,this.imp.colorIndex=red.colorIndex):typeof red=="number"&&typeof green=="number"&&typeof blue=="number"&&this.imp.setRGB(red,green,blue)}getImp(){return this.imp}copy(val){return this.imp.red=val.imp.red,this.imp.green=val.imp.green,this.imp.blue=val.imp.blue,this.imp.method=val.imp.method,this.imp.n=val.imp.n,this.imp.colorIndex=val.imp.colorIndex,this}clone(){return new McCmColor(this.imp)}setColorIndex(colorIndex){this.imp.setColorIndex(colorIndex)}setRGB(red,green,blue){this.imp.setRGB(red,green,blue)}get red(){return this.imp.red}set red(val){this.imp.red=val}get green(){return this.imp.green}set green(val){this.imp.green=val}get blue(){return this.imp.blue}set blue(val){this.imp.blue=val}get n(){return this.imp.n}set n(val){this.imp.n=val}get method(){return this.imp.method}set method(val){this.imp.method=val}get colorIndex(){return this.imp.colorIndex}set colorIndex(val){this.imp.colorIndex=val}getColorString(){return MxG2312Obj.decodeFromGb2312(this.imp.getColorString())}getColorValue(layerId,blkRefId){let lId1=0;layerId?.type==McObjectIdType.kMxCAD&&(lId1=layerId.id);let lId2=0;return blkRefId?.type==McObjectIdType.kMxCAD&&(lId2=blkRefId.id),this.imp.getColorValue(lId1,lId2)}}class McDbLinetypeTableRecord extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbLinetypeTableRecord)}get name(){return MxG2312Obj.decodeFromGb2312(this.imp.getName())}set name(val){this.imp.setName(MxG2312Obj.encodeToGb2312(val))}get numDashes(){return this.imp.numDashes()}set numDashes(val){this.imp.setNumDashes(val)}dashLengthAt(index){return this.imp.dashLengthAt(index)}setDashLengthAt(index,value){return this.imp.setDashLengthAt(index,value)}get comments(){return MxG2312Obj.decodeFromGb2312(this.imp.comments())}set comments(val){this.imp.setComments(MxG2312Obj.encodeToGb2312(val))}shapeStyleAt(index){return this.imp.shapeStyleAt(index)}setShapeStyleAt(index,value){return this.imp.setShapeStyleAt(index,value)}shapeNumberAt(index){return this.imp.shapeNumberAt(index)}setShapeNumberAt(index,shapeNumber){return this.imp.setShapeNumberAt(index,shapeNumber)}shapeOffsetAt(index){return new McGeVector3d(this.imp.shapeOffsetAt(index))}setShapeOffsetAt(index,offset){return this.imp.setShapeOffsetAt(index,offset.imp)}shapeScaleAt(index){return this.imp.shapeScaleAt(index)}setShapeScaleAt(index,scale){return this.imp.setShapeScaleAt(index,scale)}get isScaledToFit(){return this.imp.isScaledToFit()}set isScaledToFit(scaledToFit){this.imp.setIsScaledToFit(scaledToFit)}shapeIsUcsOrientedAt(index){return this.imp.shapeIsUcsOrientedAt(index)}setShapeIsUcsOrientedAt(index,isUcsOriented){return this.imp.setShapeScaleAt(index,isUcsOriented)}shapeRotationAt(index){return this.imp.shapeRotationAt(index)}setShapeRotationAt(index,rotation){return this.imp.setShapeRotationAt(index,rotation)}textAt(index){return MxG2312Obj.decodeFromGb2312(this.imp.textAt(index))}setTextAt(index,text){return this.imp.setTextAt(index,MxG2312Obj.encodeToGb2312(text))}}class McDbTextStyleTableRecord extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbTextStyleTableRecord)}get name(){return MxG2312Obj.decodeFromGb2312(this.imp.getName())}set name(val){this.imp.setName(MxG2312Obj.encodeToGb2312(val))}get isShapeFile(){return this.imp.isShapeFile()}set isShapeFile(val){this.imp.setIsShapeFile(val)}get isVertical(){return this.imp.isVertical()}set isVertical(val){this.imp.setIsVertical(val)}get textSize(){return this.imp.textSize()}set textSize(val){this.imp.setTextSize(val)}get xScale(){return this.imp.xScale()}set xScale(val){this.imp.setXScale(val)}get obliquingAngle(){return this.imp.obliquingAngle()}set obliquingAngle(val){this.imp.setObliquingAngle(val)}get flagBits(){return this.imp.flagBits()}set flagBits(val){this.imp.setFlagBits(val)}get fileName(){return MxG2312Obj.decodeFromGb2312(this.imp.fileName())}set fileName(val){this.imp.setFileName(MxG2312Obj.encodeToGb2312(val))}get bigFontFileName(){return MxG2312Obj.decodeFromGb2312(this.imp.bigFontFileName())}set bigFontFileName(val){this.imp.setBigFontFileName(MxG2312Obj.encodeToGb2312(val))}setFont(sTypeface,bold,italic,charset,pitchAndFamily){return this.imp.setFont(MxG2312Obj.encodeToGb2312(sTypeface),bold,italic,charset,pitchAndFamily)}font(){let ret=this.imp.font();if(!ret)return{sTypeface:"",bold:!1,italic:!1,charset:0,pitchAndFamily:0};let sTypeface=ret.AtString(0),bold=ret.Atlong(1)!=0,italic=ret.Atlong(2)!=0,charset=ret.Atlong(3),pitchAndFamily=ret.Atlong(4);return{sTypeface,bold,italic,charset,pitchAndFamily}}}class McDbLayerTableRecord extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbLayerTableRecord)}get name(){return MxG2312Obj.decodeFromGb2312(this.imp.getName())}set name(val){this.imp.setName(MxG2312Obj.encodeToGb2312(val))}get isFrozen(){return this.imp.isFrozen()}set isFrozen(val){this.imp.setIsFrozen(val)}get isOff(){return this.imp.isOff()}set isOff(val){this.imp.setIsOff(val)}get isLocked(){return this.imp.isLocked()}set isLocked(val){this.imp.setIsLocked(val)}get color(){return new McCmColor(this.imp.color())}set color(val){this.imp.setColor(val.getImp())}get linetypeObjectId(){return new McObjectId(this.imp.linetypeObjectId(),McObjectIdType.kMxCAD)}set linetypeObjectId(val){this.imp.setLinetypeObjectId(val.id)}get lineWeight(){return this.imp.lineWeight()}set lineWeight(val){this.imp.setLineWeight(val)}}class McDbLayerTable extends McDbObject{constructor(imp){super(imp)}getAllRecordId(skipDeleted=!0){let ret=[],aryId=this.imp.getAllRecordId(skipDeleted),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}add(rec){return new McObjectId(this.imp.add(rec.getImp()),McObjectIdType.kMxCAD)}get(sName,skipDeleted=!0){let sHex=MxG2312Obj.encodeToGb2312(sName);return new McObjectId(this.imp.get(sHex,skipDeleted))}has(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);return this.imp.get(sHex,!0)!=0}}class McDbLinetypeTable extends McDbObject{constructor(imp){super(imp)}getAllRecordId(skipDeleted=!0){let ret=[],aryId=this.imp.getAllRecordId(skipDeleted),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}add(rec){return new McObjectId(this.imp.add(rec.getImp()),McObjectIdType.kMxCAD)}get(sName,skipDeleted=!0){let sHex=MxG2312Obj.encodeToGb2312(sName);return new McObjectId(this.imp.get(sHex,skipDeleted))}has(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);return this.imp.get(sHex,!0)!=0}}class McDbTextStyleTable extends McDbObject{constructor(imp){super(imp)}getAllRecordId(skipDeleted=!0){let ret=[],aryId=this.imp.getAllRecordId(skipDeleted),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}add(rec){return new McObjectId(this.imp.add(rec.getImp()),McObjectIdType.kMxCAD)}get(sName,skipDeleted=!0){let sHex=MxG2312Obj.encodeToGb2312(sName);return new McObjectId(this.imp.get(sHex,skipDeleted))}has(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);return this.imp.get(sHex,!0)!=0}}class McDbDatabase extends McRxObject{constructor(imp){super(imp)}getLayerTable(){return new McDbLayerTable(this.imp.GetLayerTable())}get layerTable(){return new McDbLayerTable(this.imp.GetLayerTable())}getLinetypeTable(){return new McDbLinetypeTable(this.imp.GetLinetypeTable())}get linetypeTable(){return new McDbLinetypeTable(this.imp.GetLinetypeTable())}getTextStyleTable(){return new McDbTextStyleTable(this.imp.GetTextStyleTable())}get textStyleTable(){return new McDbTextStyleTable(this.imp.GetTextStyleTable())}getBlockTable(){return new McDbBlockTable(this.imp.GetBlockTable())}get blockTable(){return new McDbBlockTable(this.imp.GetBlockTable())}get currentSpace(){return new McDbBlockTableRecord(this.imp.CurrentSpace())}getCurrentlyLineTypeScale(){return this.imp.GetCurrentlyLineTypeScale()}setCurrentlyLineTypeScale(val){return this.imp.SetCurrentlyLineTypeScale(val)}getCurrentlyLineTypeName(){let hexGb=this.imp.GetCurrentlyLineTypeName();return MxG2312Obj.decodeFromGb2312(hexGb)}setCurrentlyLineTypeName(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);this.imp.SetCurrentlyLineTypeName(sHex)}getCurrentlyLayerName(){let hexGb=this.imp.GetCurrentlyLayerName();return MxG2312Obj.decodeFromGb2312(hexGb)}setCurrentlyLayerName(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);this.imp.SetCurrentlyLayerName(sHex)}getCurrentlyTrueColor(){return new McCmColor(this.imp.GetCurrentlyTrueColor())}getCurrentlyDrawColor(){let ary=this.imp.GetCurrentlyDrawColor(),ret=new THREE.Color;return ret.setRGB(ary.at(0)/255,ary.at(1)/255,ary.at(2)/255),ret}setCurrentlyTrueColor(color){return this.imp.SetCurrentlyTrueColor(color.getImp())}getCurrentlyColorIndex(){return this.imp.GetCurrentlyColorIndex()}setCurrentlyColorIndex(colorIndex){return this.imp.SetCurrentlyColorIndex(colorIndex)}getCurrentlyTextStyleName(){let hexGb=this.imp.GetCurrentlyTextStyleName();return MxG2312Obj.decodeFromGb2312(hexGb)}setCurrentlyTextStyle(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);this.imp.SetCurrentlyTextStyle(sHex)}handleToIdIndex(sHandle){let id=this.imp.HandleToIdIndex(sHandle);return new McObjectId(id,McObjectIdType.kMxCAD)}isModifyed(){return this.imp.IsModifyed()}resetModificationStatus(){return this.imp.SetModifyed(!1)}}class McDbBlockTableRecord extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbBlockTableRecord)}appendAcDbEntity(pEntity){return new McObjectId(this.imp.appendAcDbEntity(pEntity.getImp()),McObjectIdType.kMxCAD)}getAllEntityId(skipDeleted=!0){let ret=[],aryId=this.imp.getAllEntityId(skipDeleted),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}get origin(){return new McGePoint3d(this.imp.origin())}set origin(origin){this.imp.setOrigin(origin.imp)}getBoundingBox(){let ret=this.imp.getBoundingBox();return ret.length()<2?{minPt:new McGePoint3d,maxPt:new McGePoint3d,ret:!1}:{minPt:new McGePoint3d(ret.at(0)),maxPt:new McGePoint3d(ret.at(1)),ret:!0}}invalidBoundingBoxBuffer(){this.imp.invalidBoundingBoxBuffer()}get name(){return MxG2312Obj.decodeFromGb2312(this.imp.getName())}set name(val){this.imp.setName(MxG2312Obj.encodeToGb2312(val))}}class McDbBlockTable extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbBlockTable)}getAllRecordId(skipDeleted=!0){let ret=[],aryId=this.imp.getAllRecordId(skipDeleted),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}add(rec){if(typeof rec=="string"){if(rec.length>0){let ret=this.get(rec,!1);if(ret.isValid()){let recTmp=ret.getMcDbBlockTableRecord();return recTmp&&recTmp.isErased()&&recTmp.unErase(),ret}}let tmp=new McDbBlockTableRecord;return tmp.name=rec,new McObjectId(this.imp.add(tmp.getImp()),McObjectIdType.kMxCAD)}else return new McObjectId(this.imp.add(rec.getImp()),McObjectIdType.kMxCAD)}get(sName,skipDeleted=!0){let sHex=MxG2312Obj.encodeToGb2312(sName);return new McObjectId(this.imp.get(sHex,skipDeleted))}has(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);return this.imp.get(sHex,!0)!=0}}class McDbRasterImageDef extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbRasterImageDef)}set sourceFileName(sPathName){this.imp.setSourceFileName(MxG2312Obj.encodeToGb2312(sPathName))}get sourceFileName(){return MxG2312Obj.decodeFromGb2312(this.imp.sourceFileName())}}class McDbEntity extends McDbObject{constructor(imp){super(imp)}explode(){let retImp=this.imp.explode();return new MxCADResbuf(retImp)}get trueColor(){return new McCmColor(this.imp.TrueColor())}set trueColor(val){this.imp.SetTrueColor(val.getImp())}get colorIndex(){return this.imp.ColorIndex()}set colorIndex(val){this.imp.SetColorIndex(val)}get layer(){return MxG2312Obj.decodeFromGb2312(this.imp.Layer())}set layer(val){this.imp.SetLayer(MxG2312Obj.encodeToGb2312(val))}get linetype(){return MxG2312Obj.decodeFromGb2312(this.imp.Linetype())}set linetype(val){this.imp.SetLinetype(MxG2312Obj.encodeToGb2312(val))}get linetypeScale(){return this.imp.LinetypeScale()}set linetypeScale(val){this.imp.SetLinetypeScale(val)}get visible(){return this.imp.Visible()}set visible(val){this.imp.SetVisible(val)}get lineweight(){return this.imp.Lineweight()}set lineweight(val){this.imp.SetLineweight(val)}get textStyle(){return MxG2312Obj.decodeFromGb2312(this.imp.TextStyle())}set textStyle(val){this.imp.SetTextStyle(MxG2312Obj.encodeToGb2312(val))}highlight(isHighlight){this.imp.Highlight(isHighlight)}move(fromPoint,toPoint){return this.imp.Move(fromPoint.imp,toPoint.imp)}rotate(basePoint,dRotationAngle){return this.imp.Rotate(basePoint.imp,dRotationAngle)}mirror(point1,point2){return this.imp.Mirror(point1.imp,point2.imp)}scaleEntity(basePoint,dScaleFactor){return this.imp.ScaleEntity(basePoint.imp,dScaleFactor)}transformBy(transformationMatrix){return this.imp.TransformBy(transformationMatrix.imp)}getBoundingBox(){let ret=this.imp.GetBoundingBox();if(ret){let retval={minPt:new McGePoint3d(ret.AtPoint(0)),maxPt:new McGePoint3d(ret.AtPoint(1)),ret:!0};return exports2.MxCpp.App.destroyObject(ret),retval}else return{minPt:new McGePoint3d,maxPt:new McGePoint3d,ret:!1}}getxData(appName=""){return new MxCADResbuf(this.imp.GetXData(MxG2312Obj.encodeToGb2312(appName)))}setxData(xdata){return this.imp.SetXData(xdata.getImp())}getxDataString(appName){let str=this.imp.GetxDataString(MxG2312Obj.encodeToGb2312(appName),0);return{val:MxG2312Obj.decodeFromGb2312(str),ret:exports2.MxCpp.getCallResult()==0}}setxDataString(appName,val){return this.imp.SetxDataString(MxG2312Obj.encodeToGb2312(appName),0,MxG2312Obj.encodeToGb2312(val))}getxDataDouble(appName){return{val:this.imp.GetxDataDouble(MxG2312Obj.encodeToGb2312(appName),0),ret:exports2.MxCpp.getCallResult()==0}}setxDataDouble(appName,val){return this.imp.SetxDataDouble(MxG2312Obj.encodeToGb2312(appName),0,val)}getxDataLong(appName){return{val:this.imp.GetxDataLong(MxG2312Obj.encodeToGb2312(appName),0),ret:exports2.MxCpp.getCallResult()==0}}setxDataLong(appName,val){return this.imp.SetxDataLong(MxG2312Obj.encodeToGb2312(appName),0,val)}getxDataPoint(appName){let retpt=this.imp.GetxDataPoint(MxG2312Obj.encodeToGb2312(appName),0),pt=new McGePoint3d;if(exports2.MxCpp.getCallResult()==0){let ret=!1;return retpt&&(pt.x=retpt.x,pt.y=retpt.y,pt.z=retpt.z,exports2.MxCpp.App.getImp().DestroyMdGePoint3d(retpt),ret=!0),{val:pt,ret}}else return{val:pt,ret:!1}}setxDataPoint(appName,val){return this.imp.SetxDataPoint(MxG2312Obj.encodeToGb2312(appName),0,val.imp)}deleteXData(appName){return this.imp.DeleteXData(MxG2312Obj.encodeToGb2312(appName))}getAllAppName(){return new McGeStringArray(this.imp.GetAllAppName())}get layerId(){return new McObjectId(this.imp.LayerId(),McObjectIdType.kMxCAD)}set layerId(id){id.type==McObjectIdType.kMxCAD&&this.imp.SetLayerId(id.id)}get linetypeId(){return new McObjectId(this.imp.LinetypeId(),McObjectIdType.kMxCAD)}set linetypeId(id){id.type==McObjectIdType.kMxCAD&&this.imp.SetLinetypeId(id.id)}get textStyleId(){return new McObjectId(this.imp.TextStyleId(),McObjectIdType.kMxCAD)}set textStyleId(id){id.type==McObjectIdType.kMxCAD&&this.imp.SetTextStyleId(id.id)}IntersectWith(intersectObject,exOption){return new McGePoint3dArray(this.imp.IntersectWith(intersectObject.imp,exOption))}getArea(){return{val:this.imp.getArea(),ret:exports2.MxCpp.getCallResult()==0}}disableDisplay(isDisable){this.imp.disableUpdateDisplay(isDisable)}}class McDbCurve extends McDbEntity{constructor(imp){super(imp)}getStartParam(){return{val:this.imp.getStartParam(),ret:exports2.MxCpp.getCallResult()==0}}getEndParam(){return{val:this.imp.getEndParam(),ret:exports2.MxCpp.getCallResult()==0}}getDistAtParam(param){return{val:this.imp.getDistAtParam(param),ret:exports2.MxCpp.getCallResult()==0}}getParamAtDist(dist){return{val:this.imp.getParamAtDist(dist),ret:exports2.MxCpp.getCallResult()==0}}getDistAtPoint(pt){return{val:this.imp.getDistAtPoint(pt.imp),ret:exports2.MxCpp.getCallResult()==0}}getPointAtDist(dist){return{val:new McGePoint3d(this.imp.getPointAtDist(dist)),ret:exports2.MxCpp.getCallResult()==0}}getStartPoint(){return{val:new McGePoint3d(this.imp.getStartPoint()),ret:exports2.MxCpp.getCallResult()==0}}getEndPoint(){return{val:new McGePoint3d(this.imp.getStartPoint()),ret:exports2.MxCpp.getCallResult()==0}}getPointAtParam(param){return{val:new McGePoint3d(this.imp.getPointAtParam(param)),ret:exports2.MxCpp.getCallResult()==0}}getParamAtPoint(pt){return{val:this.imp.getParamAtPoint(pt.imp),ret:exports2.MxCpp.getCallResult()==0}}getFirstDerivFromParam(param){return{val:new McGeVector3d(this.imp.getFirstDeriv(param)),ret:exports2.MxCpp.getCallResult()==0}}getFirstDeriv(pt){return{val:new McGeVector3d(this.imp.getFirstDerivEx(pt.imp)),ret:exports2.MxCpp.getCallResult()==0}}getClosestPointTo(givenPnt,isExtend){return{val:new McGePoint3d(this.imp.getClosestPointTo(givenPnt.imp,isExtend)),ret:exports2.MxCpp.getCallResult()==0}}offsetCurves(dOffsetDist,ptOffsetRef){let retImp=this.imp.offsetCurves(dOffsetDist,ptOffsetRef.imp);return new McDbObjectArray(retImp)}splitCurves(pts){let aryParam=new MxCADResbuf;pts.forEach(val=>{aryParam.AddPoint(val)});let retImp=this.imp.splitCurves(aryParam.getImp());return new McDbObjectArray(retImp)}splitCurvesFromParam(params){let aryParam=new MxCADResbuf;params.forEach(val=>{aryParam.AddDouble(val)});let retImp=this.imp.splitCurves(aryParam.getImp());return new McDbObjectArray(retImp)}getSamplePoints(dApproxEps){let retImp=this.imp.getSamplePoints(dApproxEps);return new MxCADResbuf(retImp)}getLength(){return{val:this.imp.getLength(),ret:exports2.MxCpp.getCallResult()==0}}}class McDbLine extends McDbCurve{constructor(x1,y1,z1,x2,y2,z2){x1 instanceof Object?x1 instanceof McGePoint3d?(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbLine),y1 instanceof McGePoint3d&&(this.startPoint=x1,this.endPoint=y1)):super(x1):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbLine),this.startPoint=new McGePoint3d(x1,y1,z1),this.endPoint=new McGePoint3d(x2,y2,z2))}get startPoint(){return new McGePoint3d(this.imp.startPoint())}set startPoint(pt){this.imp.setStartPoint(pt.imp)}get endPoint(){return new McGePoint3d(this.imp.endPoint())}set endPoint(pt){this.imp.setEndPoint(pt.imp)}}class McDbText extends McDbEntity{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbText)}get position(){return new McGePoint3d(this.imp.position())}set position(pt){this.imp.setPosition(pt.imp)}get alignmentPoint(){return new McGePoint3d(this.imp.position())}set alignmentPoint(pt){this.imp.setAlignmentPoint(pt.imp)}get oblique(){return this.imp.oblique()}set oblique(val){this.imp.setOblique(val)}get rotation(){return this.imp.rotation()}set rotation(pt){this.imp.setRotation(pt)}get height(){return this.imp.height()}set height(val){this.imp.setHeight(val)}get widthFactor(){return this.imp.widthFactor()}set widthFactor(val){this.imp.setWidthFactor(val)}get textString(){return MxG2312Obj.decodeFromGb2312(this.imp.textString())}set textString(val){this.imp.setTextString(MxG2312Obj.encodeToGb2312(val))}get horizontalMode(){return this.imp.horizontalMode()}set horizontalMode(val){this.imp.setHorizontalMode(val)}get verticalMode(){return this.imp.verticalMode()}set verticalMode(val){this.imp.setVerticalMode(val)}}class McDbAttribute extends McDbText{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbAttribute)}get tag(){return MxG2312Obj.decodeFromGb2312(this.imp.tag())}set tag(val){this.imp.setTag(MxG2312Obj.encodeToGb2312(val))}get isInvisible(){return this.imp.isInvisible()}set isInvisible(val){this.imp.setInvisible(val)}}class McDbAttributeDefinition extends McDbText{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbAttributeDefinition)}get tag(){return MxG2312Obj.decodeFromGb2312(this.imp.tag())}set tag(val){this.imp.setTag(MxG2312Obj.encodeToGb2312(val))}get isInvisible(){return this.imp.isInvisible()}set isInvisible(val){this.imp.setInvisible(val)}get prompt(){return MxG2312Obj.decodeFromGb2312(this.imp.prompt())}set prompt(val){this.imp.setPrompt(MxG2312Obj.encodeToGb2312(val))}get isConstant(){return this.imp.isConstant()}set isConstant(val){this.imp.setConstant(val)}get isVerifiable(){return this.imp.isVerifiable()}set isVerifiable(val){this.imp.setVerifiable(val)}get isPreset(){return this.imp.isPreset()}set isPreset(val){this.imp.setPreset(val)}}class McDbMText extends McDbEntity{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbMText)}get location(){return new McGePoint3d(this.imp.location())}set location(pt){this.imp.setLocation(pt.imp)}get rotation(){return this.imp.rotation()}set rotation(val){this.imp.setRotation(val)}get width(){return this.imp.width()}set width(val){this.imp.setWidth(val)}get textHeight(){return this.imp.textHeight()}set textHeight(val){this.imp.setTextHeight(val)}get attachment(){return this.imp.attachment()}set attachment(val){this.imp.setAttachment(val)}get contents(){return MxG2312Obj.decodeFromGb2312(this.imp.contents())}set contents(val){this.imp.setContents(MxG2312Obj.encodeToGb2312(val))}}class McDbCircle extends McDbCurve{constructor(x,y,z,radius){x instanceof Object?super(x):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbCircle),typeof x=="number"&&(this.imp.setCenter(new McGePoint3d(x,y,z).imp),this.imp.setRadius(radius)))}setCenter(x,y,z){this.imp.setCenter(new McGePoint3d(x,y,z).imp)}get center(){return new McGePoint3d(this.imp.center())}set center(pt){this.imp.setCenter(pt.imp)}get radius(){return this.imp.radius()}set radius(r){this.imp.setRadius(r)}}class McDbPolyline extends McDbCurve{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbPolyline)}get isClosed(){return this.imp.isClosed()}set isClosed(val){this.imp.setClosed(val)}get constantWidth(){return this.imp.getConstantWidth()}set constantWidth(val){this.imp.setConstantWidth(val)}addVertexAt(pt,bulge=0,startWidth=0,endWidth=0,index=0){if(pt instanceof THREE.Vector3){let tmp=new exports2.MxCpp.mxcadassemblyimp.MdGePoint3d;return tmp.x=pt.x,tmp.y=pt.y,tmp.z=pt.z,this.imp.addVertexAt(index,tmp,bulge,startWidth,endWidth)}else return this.imp.addVertexAt(index,pt.imp,bulge,startWidth,endWidth)}removeVertexAt(index){return this.imp.removeVertexAt(index)}numVerts(){return this.imp.numVerts()}getPointAt(index){return{val:new McGePoint3d(this.imp.getPointAt(index)),ret:exports2.MxCpp.getCallResult()}}getBulgeAt(index){return this.imp.getBulgeAt(index)}getWidthsAt(index){return{val1:this.imp.getStartWidthsAt(index),val2:this.imp.getEndWidthsAt(index),ret:exports2.MxCpp.getCallResult()==0}}setPointAt(index,pt){return this.imp.setPointAt(index,pt.imp)}setBulgeAt(index,bulge){return this.imp.setBulgeAt(index,bulge)}setWidthsAt(index,dStartWdith,dEntWdith){return this.imp.setWidthsAt(index,dStartWdith,dEntWdith)}}class McDbBlockReference extends McDbEntity{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbBlockReference)}get blockTableRecordId(){return new McObjectId(this.imp.blockTableRecordId(),McObjectIdType.kMxCAD)}set blockTableRecordId(val){this.imp.setBlockTableRecordId(val.id)}get position(){return new McGePoint3d(this.imp.position())}set position(pt){this.imp.setPosition(pt.imp)}get scaleFactors(){return new McGePoint3d(this.imp.scaleFactors())}set scaleFactors(val){this.imp.setScaleFactors(val.imp)}setScale(val){this.imp.setScaleFactors(new McGePoint3d(val,val,val).imp)}getScale(){return this.imp.scaleFactors().x}get rotation(){return this.imp.rotation()}set rotation(val){this.imp.setRotation(val)}get blockTransform(){return new McGeMatrix3d(this.imp.blockTransform())}set blockTransform(val){this.imp.setBlockTransform(val.imp)}get blockName(){return MxG2312Obj.decodeFromGb2312(this.imp.getBlockName())}appendAttribute(attrib){return new McObjectId(this.imp.appendAttribute(attrib.getImp()),McObjectIdType.kMxCAD)}getAllAttribute(){let ret=[],aryId=this.imp.getAllAttribute(),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}createAttribute(){return this.imp.createAttribute()}}class McDbDimension extends McDbEntity{constructor(imp){super(imp)}get textPosition(){return new McGePoint3d(this.imp.textPosition())}set textPosition(pt){this.imp.setTextPosition(pt.imp)}isUsingDefaultTextPosition(){return this.imp.isUsingDefaultTextPosition()}useSetTextPosition(){return this.imp.useSetTextPosition()}useDefaultTextPosition(){return this.imp.useDefaultTextPosition()}get elevation(){return this.imp.elevation()}set elevation(val){this.imp.setElevation(val)}get dimensionText(){return MxG2312Obj.decodeFromGb2312(this.imp.dimensionText())}set dimensionText(val){this.imp.setDimensionText(MxG2312Obj.encodeToGb2312(val))}get textRotation(){return this.imp.textRotation()}set textRotation(val){this.imp.setTextRotation(val)}get dimensionStyle(){return new McObjectId(this.imp.dimensionStyle(),McObjectIdType.kMxCAD)}set dimensionStyle(val){this.imp.setDimensionStyle(val.id)}get textAttachment(){return this.imp.textAttachment()}set textAttachment(val){this.imp.setTextAttachment(val)}get horizontalRotation(){return this.imp.horizontalRotation()}set horizontalRotation(val){this.imp.setHorizontalRotation(val)}recomputeDimBlock(){this.imp.recomputeDimBlock(!0)}getDimVarInt(iType){return this.imp.GetDimVarInt(iType)}setDimVarInt(iType,val){this.imp.SetDimVarInt(iType,val)}getDimVarDouble(iType){return this.imp.GetDimVarDouble(iType)}setDimVarDouble(iType,val){this.imp.SetDimVarDouble(iType,val)}getDimVarString(iType){return this.imp.GetDimVarString(iType)}setDimVarString(iType,val){this.imp.SetDimVarString(iType,val)}getDimVarObjectId(iType){return new McObjectId(this.imp.GetDimVarObjectId(iType),McObjectIdType.kMxCAD)}setDimVarObjectId(iType,val){this.imp.SetDimVarObjectId(iType,val.id)}GetAllText(){return new McGeStringArray(this.imp.GetAllText())}}class McDbAlignedDimension extends McDbDimension{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbAlignedDimension)}get xLine1Point(){return new McGePoint3d(this.imp.xLine1Point())}set xLine1Point(pt){this.imp.setXLine1Point(pt.imp)}get xLine2Point(){return new McGePoint3d(this.imp.xLine2Point())}set xLine2Point(pt){this.imp.setXLine2Point(pt.imp)}get dimLinePoint(){return new McGePoint3d(this.imp.dimLinePoint())}set dimLinePoint(pt){this.imp.setDimLinePoint(pt.imp)}get oblique(){return this.imp.oblique()}set oblique(val){this.imp.setOblique(val)}}class McDbRotatedDimension extends McDbDimension{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbRotatedDimension)}get xLine1Point(){return new McGePoint3d(this.imp.xLine1Point())}set xLine1Point(pt){this.imp.setXLine1Point(pt.imp)}get xLine2Point(){return new McGePoint3d(this.imp.xLine2Point())}set xLine2Point(pt){this.imp.setXLine2Point(pt.imp)}get dimLinePoint(){return new McGePoint3d(this.imp.dimLinePoint())}set dimLinePoint(pt){this.imp.setDimLinePoint(pt.imp)}get oblique(){return this.imp.oblique()}set oblique(val){this.imp.setOblique(val)}get rotation(){return this.imp.rotation()}set rotation(val){this.imp.setRotation(val)}}class McDbArc extends McDbCurve{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbArc)}setCenter(x,y,z){this.imp.setCenter(new McGePoint3d(x,y,z).imp)}get center(){return new McGePoint3d(this.imp.center())}set center(pt){this.imp.setCenter(pt.imp)}get radius(){return this.imp.radius()}set radius(r){this.imp.setRadius(r)}get startAngle(){return this.imp.startAngle()}set startAngle(r){this.imp.setStartAngle(r)}get endAngle(){return this.imp.endAngle()}set endAngle(r){this.imp.setEndAngle(r)}computeArc(dStartPointX,dStartPointY,dMidPointX,dMidPointY,dEndPointX,dEndPointY){return this.imp.computeArc(dStartPointX,dStartPointY,dMidPointX,dMidPointY,dEndPointX,dEndPointY)}}class McDbEllipse extends McDbCurve{constructor(cenx,ceny,cenz,majorAxisx,majorAxisy,majorAxisz,radiusRatio,startAngle,endAngle){cenx instanceof Object?super(cenx):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbEllipse),typeof cenx=="number"&&(radiusRatio||(radiusRatio=1),typeof startAngle!="number"&&(startAngle=0),typeof endAngle!="number"&&(endAngle=6.283185307179586),this.imp.InitData(new McGePoint3d(cenx,ceny,cenz).imp,new McGeVector3d(majorAxisx,majorAxisy,majorAxisz).imp,radiusRatio,startAngle,endAngle)))}setCenter(x,y,z){this.imp.setCenter(new McGePoint3d(x,y,z).imp)}get center(){return new McGePoint3d(this.imp.center())}set center(pt){this.imp.setCenter(pt.imp)}setMajorAxis(x,y,z){this.imp.setMajorAxis(new McGeVector3d(x,y,z).imp)}get majorAxis(){return new McGeVector3d(this.imp.majorAxis())}set majorAxis(pt){this.imp.setMajorAxis(pt.imp)}setMinorAxis(x,y,z){this.imp.setMinorAxis(new McGeVector3d(x,y,z).imp)}get minorAxis(){return new McGeVector3d(this.imp.minorAxis())}set minorAxis(pt){this.imp.setMinorAxis(pt.imp)}get radiusRatio(){return this.imp.radiusRatio()}set radiusRatio(val){this.imp.setRadiusRatio(val)}get startAngle(){return this.imp.startAngle()}set startAngle(val){this.imp.setStartAngle(val)}get endAngle(){return this.imp.endAngle()}set endAngle(val){this.imp.setEndAngle(val)}}class McDbPoint extends McDbEntity{constructor(x,y,z){x instanceof Object?x instanceof McGePoint3d?(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbPoint),this.imp.setPosition(x.imp)):super(x):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbPoint),typeof x=="number"&&this.imp.setPosition(new McGePoint3d(x,y,z).imp))}setPosition(x,y,z){this.imp.setPosition(new McGePoint3d(x,y,z).imp)}get position(){return new McGePoint3d(this.imp.position())}set position(pt){this.imp.setPosition(pt.imp)}}class McDbHatch extends McDbEntity{constructor(x){x instanceof Object?super(x):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbHatch))}get numLoops(){return this.imp.numLoops()}loopTypeAt(loopIndex){return this.imp.loopTypeAt(loopIndex)}getLoopAt(loopIndex){let ret=this.imp.getLoopAt(loopIndex);if(!ret)return{ret:!1,lootype:0,vertices:[],bulges:[]};let count=ret.GetCount();if(count<=0)return exports2.MxCpp.App.destroyObject(ret),{ret:!1,lootype:0,vertices:[],bulges:[]};let lootype=0;lootype=ret.Atlong(0);let vertices=[],bulges=[],i=1;for(;i+1<count;i+=2)vertices.push(new McGePoint3d(ret.AtPoint(i))),bulges.push(ret.AtDouble(i+1));return exports2.MxCpp.App.destroyObject(ret),{ret:!0,lootype,vertices,bulges}}patternType(){return this.imp.patternType()}patternName(){return MxG2312Obj.decodeFromGb2312(this.imp.patternName())}setPattern(type,patName){this.imp.setPattern(type,MxG2312Obj.encodeToGb2312(patName))}get patternAngle(){return this.imp.patternAngle()}set patternAngle(angle){this.imp.setPatternAngle(angle)}get patternScale(){return this.imp.patternScale()}set patternScale(scale){this.imp.setPatternScale(scale)}get patternSpace(){return this.imp.patternSpace()}set patternSpace(space){this.imp.setPatternSpace(space)}get patternDouble(){return this.imp.patternDouble()}set patternDouble(isDouble){this.imp.setPatternDouble(isDouble)}get numPatternDefinitions(){return this.imp.numPatternDefinitions()}getPatternDefinitionAt(index){let ret=this.imp.getPatternDefinitionAt(index);if(!ret)return{ret:!1,angle:0,baseX:0,baseY:0,offsetX:0,offsetY:0,aryDashes:[]};let len=ret.length();if(len<5)return exports2.MxCpp.App.getImp().DestroyMdGeDoubleArray(ret),{ret:!1,angle:0,baseX:0,baseY:0,offsetX:0,offsetY:0,aryDashes:[]};let angle=ret.at(0),baseX=ret.at(1),baseY=ret.at(2),offsetX=ret.at(3),offsetY=ret.at(4),aryDashes=[];for(let i=5;i<len;i++)aryDashes.push(ret.at(i));return exports2.MxCpp.App.getImp().DestroyMdGeDoubleArray(ret),{ret:!1,angle,baseX,baseY,offsetX,offsetY,aryDashes}}addPatternDefinition(angle,baseX,baseY,offsetX,offsetY,dashes){let aryDashes=new MdGeDoubleArray;return dashes.forEach(val=>{aryDashes.append(val)}),this.imp.addPatternDefinition(angle,baseX,baseY,offsetX,offsetY,aryDashes.imp)}clearPatternDefinition(){return this.imp.clearPatternDefinition()}hatchStyle(){return this.imp.hatchStyle()}setHatchStyle(val){return this.imp.setHatchStyle(val)}evaluateHatch(){return this.imp.evaluateHatch(!1)}appendLoop(loopType,vertices,bulges){let aryBulges=new MdGeDoubleArray;return bulges.forEach(val=>{aryBulges.append(val)}),this.imp.appendLoop(loopType,vertices.imp,aryBulges.imp)}removeLoopAt(loopIndex){return this.imp.removeLoopAt(loopIndex)}removeAllLoop(){return this.imp.removeAllLoop()}setLoopAt(loopIndex,loopType,vertices,bulges){let aryBulges=new MdGeDoubleArray;return bulges.forEach(val=>{aryBulges.append(val)}),this.imp.setLoopAt(loopIndex,loopType,vertices.imp,aryBulges.imp)}isSolid(){return this.imp.isSolid()}}class McDbProxyEntity extends McDbEntity{constructor(x){x instanceof Object?super(x):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbProxyEntity))}getAllTextContent(){return new McGeStringArray(this.imp.getAllTextContent())}getAllEntityIds(){let ret=[],aryId=this.imp.getAllEntityIds(),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}getOriginalClassName(){return this.imp.getOriginalClassName()}}class McDbRasterImage extends McDbEntity{constructor(x){x instanceof Object?super(x):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbRasterImage))}setOrientation(origin,uCorner,vOnPlane){return this.imp.setOrientation(origin.imp,uCorner.imp,vOnPlane.imp)}getOrientation(){let aryPoint=this.imp.getOrientation();if(aryPoint.length()<3)return{origin:new McGePoint3d,uCorner:McGeVector3d.kXAxis.clone(),vOnPlane:McGeVector3d.kYAxis.clone()};let pt0=new McGePoint3d(aryPoint.at(0)),pt1=new McGeVector3d(aryPoint.at(1)),pt2=new McGeVector3d(aryPoint.at(2));return{origin:pt0,uCorner:pt1,vOnPlane:pt2}}setImageDefId(imageId){imageId.type==McObjectIdType.kMxCAD&&this.imp.setImageDefId(imageId.id)}imageDefId(){return new McObjectId(this.imp.imageDefId(),McObjectIdType.kMxCAD)}setClipBoundary(type,aryPoint){return this.imp.setClipBoundary(type,aryPoint.imp)}clipBoundary(){return new McGePoint3dArray(this.imp.clipBoundary())}clipBoundaryType(){return this.imp.clipBoundaryType()}}var FetchAttributes=(FetchAttributes2=>(FetchAttributes2[FetchAttributes2.EMSCRIPTEN_FETCH_LOAD_TO_MEMORY=1]="EMSCRIPTEN_FETCH_LOAD_TO_MEMORY",FetchAttributes2[FetchAttributes2.EMSCRIPTEN_FETCH_PERSIST_FILE=4]="EMSCRIPTEN_FETCH_PERSIST_FILE",FetchAttributes2[FetchAttributes2.EMSCRIPTEN_FETCH_APPEND=8]="EMSCRIPTEN_FETCH_APPEND",FetchAttributes2[FetchAttributes2.EMSCRIPTEN_FETCH_REPLACE=16]="EMSCRIPTEN_FETCH_REPLACE",FetchAttributes2))(FetchAttributes||{});class McObject{imp;event={};currentFileName="";firstTimeOpenFile=!0;constructor(imp){this.imp=imp}on(name,fun){if(this.event[name])if(this.event[name]instanceof Array)this.event[name].includes(fun)||this.event[name].push(fun);else{let bakFun=this.event[name];if(bakFun==fun)return;this.event[name]=[],this.event[name].push(bakFun),this.event[name].push(fun)}else this.event[name]=fun}callEvent(sEventName,param){try{let calls=this.event[sEventName];if(!calls)return!1;if(calls instanceof Array){let ret=!1;return calls.forEach(val=>{ret=val(param)}),ret}else return calls(param)}catch(error){throw console.log(error),error}}initMxObject(mxObject){mxObject.tmp||(mxObject.tmp=new mxdraw.MxDrawObject(mxObject)),this.imp.mxdrawObject=mxObject.tmp,mxObject.addEvent("selectChange",id=>{let ids=[];id.forEach(val=>{ids.push(new McObjectId(val,McObjectIdType.kMxCAD))}),mxObject.getMxAllSelect().forEach(val=>{ids.push(new McObjectId(val,McObjectIdType.kMxDraw))}),this.callEvent("selectChange",ids)}),mxObject.addEvent("mxdrawSelectChange",id=>{let ids=[];id.forEach(val=>{ids.push(new McObjectId(val,McObjectIdType.kMxDraw))}),mxObject.getMxCADAllSelect().forEach(val=>{ids.push(new McObjectId(val,McObjectIdType.kMxCAD))}),this.callEvent("selectChange",ids)})}getMxDrawObject(){return this.imp.mxdrawObject}get mxdraw(){return this.imp.mxdrawObject}getImp(){return this.imp}regen(delayTime=0){delayTime<=0?this.imp.regen():setTimeout(()=>{this.imp.regen(),this.updateDisplay(!1)},delayTime)}zoomAll(){let box=this.database.currentSpace.getBoundingBox();return box.ret?(this.getMxDrawObject().zoomW(box.minPt.toVector3(),box.maxPt.toVector3()),!0):!1}zoomScale(scale){this.getMxDrawObject().zoomScale(scale)}zoomW(minPt,maxPt){this.getMxDrawObject().zoomW(minPt.toVector3(),maxPt.toVector3())}zoomCenter(dCenX,dCenY){this.getMxDrawObject().zoomCenter(dCenX,dCenY)}openWebFile(sFileUrl,retCall,isWorkThread=!0,initialParameter,fetchAttributes=0){let mxObject=this.imp.mxdrawObject,lOptID=Math.round(Math.random()*1e7);if(retCall){let funOpenCall=(iRet,valId)=>{lOptID==valId&&(mxObject.removeEventFuction("openFileComplete",funOpenCall),retCall(iRet))};mxObject.addEvent("openFileComplete",funOpenCall)}this.currentFileName=sFileUrl.split("/").pop();let sParam="";return initialParameter&&(sParam=JSON.stringify(initialParameter)),this.firstTimeOpenFile||this.getMxDrawObject().clearAllObject(),this.firstTimeOpenFile=!1,this.imp.openWebFile(sFileUrl,isWorkThread,lOptID,sParam,fetchAttributes)}newFile(){return this.currentFileName="",this.getMxDrawObject().clearAllObject(),this.imp.newFile()}insertBlock(sFileUrl,sBlkName,isWorkThread=!0,fetchAttributes=0){let mxObject=this.imp.mxdrawObject,lCallID=Math.round(Math.random()*1e7);return new Promise(resolve=>{let funCall=strparam=>{(!strparam||strparam.length==0)&&resolve(new McObjectId);let param=JSON.parse(strparam);param.callid==lCallID&&(mxObject.removeEventFuction("insertBlockComplete",funCall),param.result!=0&&console.log("insertBlock result:"+param.result),resolve(new McObjectId(param.blkrecid,McObjectIdType.kMxCAD)))};mxObject.addEvent("insertBlockComplete",funCall);let initialParameter="";this.imp.insertBlock(sFileUrl,MxG2312Obj.encodeToGb2312(sBlkName),isWorkThread,lCallID,initialParameter,fetchAttributes)})}getCurrentFileName(){return this.currentFileName}saveFileToUrl(sSaveProgramUrl,call){const win=window;return win.McDrawObjectEvent_saveFileComplete=function(sServerResult,iResult){call(iResult,sServerResult)},this.imp.saveFileToUrl(sSaveProgramUrl)}saveFile(filename,call,isDownland=!0,isShowSaveFileDialog=!0,parameter){filename||(filename=this.getCurrentFileName()),filename.indexOf(".")==-1&&(filename+=".mxweb");const win=window;win.mx_saveFile_call=data=>{if(call&&call(data),!!data){if(isDownland){let blob;/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?blob=new Blob([data.buffer],{type:"application/octet-stream"}):blob=new Blob([data.buffer],{type:"application/octet-binary"}),isShowSaveFileDialog?MxTools.saveAsFileDialog({blob,filename,types:[{description:"mxweb File",accept:{"application/octet-stream":[".mxweb"]}}]}):MxTools.downloadFile(blob,filename)}win.mx_saveFile_call=null}};let sParam="";return parameter&&(sParam=JSON.stringify(parameter)),this.imp.saveFile(filename,sParam)}getDatabase(){return this.imp.McDbDatabase||(this.imp.McDbDatabase=new McDbDatabase(this.imp.GetDatabase())),this.imp.McDbDatabase}get database(){return this.getDatabase()}setBrowse(browse){this.imp.setBrowse(browse),browse&&mxdraw.MxFun.setIniset({ForbiddenDynInput:!0})}getSysVarString(varName){return this.imp.GetSysVarString(varName)}setSysVarString(varName,val){return this.imp.SetSysVarString(varName,val)}getSysVarDouble(varName){return this.imp.GetSysVarDouble(varName)}getSysVarPoint(varName){return new McGePoint3d(this.imp.GetSysVarPoint(varName))}setSysVarPoint(varName,pt){return this.imp.SetSysVarPoint(varName,pt.imp,!1)}setSysVarPoint2d(varName,pt){return this.imp.SetSysVarPoint(varName,pt.imp,!0)}setSysVarDouble(varName,val){return this.imp.SetSysVarDouble(varName,val)}getSysVarLong(varName){return this.imp.GetSysVarLong(varName)}setSysVarLong(varName,val){return this.imp.SetSysVarLong(varName,val)}get drawColor(){return new McCmColor(this.imp.GetDrawColor())}set drawColor(val){this.imp.SetDrawColor(val.getImp())}get drawColorIndex(){return this.imp.GetDrawColor().colorIndex}set drawColorIndex(val){let color=new McCmColor;color.setColorIndex(val),this.imp.SetDrawColor(color.getImp())}get drawLineWeight(){return this.imp.GetDrawLineWeight()}set drawLineWeight(val){this.imp.SetDrawLineWeight(val)}get drawLineTypeScale(){return this.imp.GetDrawLineTypeScale()}set drawLineTypeScale(val){this.imp.SetDrawLineTypeScale(val)}get drawLinetype(){return MxG2312Obj.decodeFromGb2312(this.imp.GetDrawLinetype())}set drawLinetype(val){this.imp.SetDrawLinetype(MxG2312Obj.encodeToGb2312(val))}get drawTextStyle(){return MxG2312Obj.decodeFromGb2312(this.imp.GetDrawTextStyle())}set drawTextStyle(val){this.imp.SetDrawTextStyle(MxG2312Obj.encodeToGb2312(val))}get drawLayer(){return MxG2312Obj.decodeFromGb2312(this.imp.GetDrawLayer())}set drawLayer(val){this.imp.SetDrawLayer(MxG2312Obj.encodeToGb2312(val))}addLayer(string){return new McObjectId(this.imp.AddLayer(MxG2312Obj.encodeToGb2312(string)))}addTextStyle(sName,sFileName,sBigFontFileName,dXScale){return new McObjectId(this.imp.AddTextStyle(MxG2312Obj.encodeToGb2312(sName),MxG2312Obj.encodeToGb2312(sFileName),MxG2312Obj.encodeToGb2312(sBigFontFileName),dXScale))}addLinetype(sName,sLineDefine){return new McObjectId(this.imp.AddLinetype(MxG2312Obj.encodeToGb2312(sName),MxG2312Obj.encodeToGb2312(sLineDefine)))}addLinetypeEx(sName,sLineDefine,sTextStyle=""){return new McObjectId(this.imp.AddLinetypeEx(MxG2312Obj.encodeToGb2312(sName),MxG2312Obj.encodeToGb2312(sLineDefine),MxG2312Obj.encodeToGb2312(sTextStyle)))}drawLine(dX1,dY1,dX2,dY2){return new McObjectId(this.imp.DrawLine(dX1,dY1,0,dX2,dY2,0))}drawLine3d(dX1,dY1,dZ1,dX2,dY2,dZ2){return new McObjectId(this.imp.DrawLine(dX1,dY1,dZ1,dX2,dY2,dZ2))}addDimStyle(pszName,pszDoubleData,pszIntData,pszStringData,pszIdData){return new McObjectId(this.imp.AddDimStyle(pszName,pszDoubleData,pszIntData,pszStringData,pszIdData))}get drawDimStyle(){return MxG2312Obj.decodeFromGb2312(this.imp.GetDrawDimStyle())}set drawDimStyle(val){this.imp.SetDrawDimStyle(MxG2312Obj.encodeToGb2312(val))}pathMakeExclude(isExclude){this.imp.PathMakeExclude(isExclude)}addPatternDefinition(sName,sDefinitionData){this.imp.AddPatternDefinition(sName,sDefinitionData)}get drawPatternDefinition(){return MxG2312Obj.encodeToGb2312(this.imp.GetPatternDefinition())}set drawPatternDefinition(val){this.imp.SetPatternDefinition(MxG2312Obj.decodeFromGb2312(val))}get drawLineWidth(){return this.imp.GetDrawLineWidth()}set drawLineWidth(val){this.imp.SetDrawLineWidth(val)}drawArc(dCenterX,dCenterY,dRadius,dStartAng,dEndAng){return new McObjectId(this.imp.DrawArc(dCenterX,dCenterY,dRadius,dStartAng,dEndAng))}drawArc2(dStartPointX,dStartPointY,dMidPointX,dMidPointY,dEndPointX,dEndPointY){return new McObjectId(this.imp.DrawArc2(dStartPointX,dStartPointY,dMidPointX,dMidPointY,dEndPointX,dEndPointY))}drawArc3(dStartPointX,dStartPointY,dEndPointX,dEndPointY,dBulge){return new McObjectId(this.imp.DrawArc3(dStartPointX,dStartPointY,dEndPointX,dEndPointY,dBulge))}drawCircle(dCenterX,dCenterY,dRadius){return new McObjectId(this.imp.DrawCircle(dCenterX,dCenterY,dRadius))}drawEllipse(dCenterX,dCenterY,dMajorAxisX,dMajorAxisY,dRadiusRatio){return new McObjectId(this.imp.DrawEllipse(dCenterX,dCenterY,dMajorAxisX,dMajorAxisY,dRadiusRatio))}drawEllipseArc(dCenterX,dCenterY,dMajorAxisX,dMajorAxisY,dRadiusRatio,dStartAng,dEndAng){return new McObjectId(this.imp.DrawEllipseArc(dCenterX,dCenterY,dMajorAxisX,dMajorAxisY,dRadiusRatio,dStartAng,dEndAng))}drawPoint(dX,dY){return new McObjectId(this.imp.DrawPoint(dX,dY))}drawSolid(dX1,dY1,dX2,dY2,dX3,dY3,dX4,dY4){return new McObjectId(this.imp.DrawSolid(dX1,dY1,dX2,dY2,dX3,dY3,dX4,dY4))}drawMText(dPosX,dPosY,sContents,dHeight,dWidth,dRotation,iAttachment){return new McObjectId(this.imp.DrawMText(dPosX,dPosY,MxG2312Obj.encodeToGb2312(sContents),dHeight,dWidth,dRotation,iAttachment))}drawText(dPosX,dPosY,pszText,dHeight,dRotation,horizontalMode,verticalMode){return new McObjectId(this.imp.DrawText(dPosX,dPosY,MxG2312Obj.encodeToGb2312(pszText),dHeight,dRotation,horizontalMode,verticalMode))}drawBlockReference(dPosX,dPosY,sBlkName,dScale,dAng){return new McObjectId(this.imp.DrawBlockReference(dPosX,dPosY,MxG2312Obj.encodeToGb2312(sBlkName),dScale,dAng))}drawDimAligned(dExtLine1PointX,dExtLine1PointY,dExtLine2PointX,dExtLine2PointY,dTextPositionX,dTextPositionY){return new McObjectId(this.imp.DrawDimAligned(dExtLine1PointX,dExtLine1PointY,dExtLine2PointX,dExtLine2PointY,dTextPositionX,dTextPositionY))}drawDimAngular(dAngleVertexX,dAngleVertexY,dFirstEndPointX,dFirstEndPointY,dSecondEndPointX,dSecondEndPointY,dTextPointX,dTextPointY){return new McObjectId(this.imp.DrawDimAngular(dAngleVertexX,dAngleVertexY,dFirstEndPointX,dFirstEndPointY,dSecondEndPointX,dSecondEndPointY,dTextPointX,dTextPointY))}drawDimDiametric(dChordPointX,dChordPointY,dFarChordPointX,dFarChordPointY,dLeaderLength){return new McObjectId(this.imp.DrawDimDiametric(dChordPointX,dChordPointY,dFarChordPointX,dFarChordPointY,dLeaderLength))}drawDimRotated(dExtLine1PointX,dExtLine1PointY,dExtLine2PointX,dExtLine2PointY,dDimLineLocationX,dDimLineLocationY,dRotationAngle){return new McObjectId(this.imp.DrawDimRotated(dExtLine1PointX,dExtLine1PointY,dExtLine2PointX,dExtLine2PointY,dDimLineLocationX,dDimLineLocationY,dRotationAngle))}drawDimOrdinate(dDefinitionPointX,dDefinitionPointY,dDeaderEndPointX,dDeaderEndPointY,isUseXAxis){return new McObjectId(this.imp.DrawDimOrdinate(dDefinitionPointX,dDefinitionPointY,dDeaderEndPointX,dDeaderEndPointY,isUseXAxis))}drawDimRadial(dCenterX,dCenterY,dChordPointX,dChordPointY,dLeaderLength){return new McObjectId(this.imp.DrawDimRadial(dCenterX,dCenterY,dChordPointX,dChordPointY,dLeaderLength))}pathMoveTo(dX,dY){this.imp.PathMoveTo(dX,dY)}pathMoveToEx(dX,dY,dStartWidth,dEndWidth,dBulge){this.imp.PathMoveToEx(dX,dY,dStartWidth,dEndWidth,dBulge)}pathLineTo(dX,dY){this.imp.PathLineTo(dX,dY)}pathLineToEx(dX,dY,dStartWidth,dEndWidth,dBulge){this.imp.PathLineToEx(dX,dY,dStartWidth,dEndWidth,dBulge)}drawPathToPolyline(){return new McObjectId(this.imp.DrawPathToPolyline())}drawPathToSpline(){return new McObjectId(this.imp.DrawPathToSpline())}pathMakeClosed(){this.imp.PathMakeClosed()}drawPathToHatch(dPatternScale){return new McObjectId(this.imp.DrawPathToHatch(dPatternScale))}drawEntity(entity){return new McObjectId(this.imp.DrawEntity(entity.getImp()))}drawHatch(hatch,dPatternScale=1){return new McObjectId(this.imp.DrawHatch(hatch.getImp(),dPatternScale))}objectIdToObject(lIdIndex){return exports2.MxCpp.App.objectIdToObject(lIdIndex)}destroyObject(pObjectImp){!pObjectImp||exports2.MxCpp.App.getImp().DestroyObject(pObjectImp)}getAllLayoutName(){return new McGeStringArray(this.imp.GetAllLayoutName())}setCurrentLayout(layoutName){this.imp.SetCurrentLayout(MxG2312Obj.encodeToGb2312(layoutName))}getMxCpp(){return exports2.MxCpp}doc2cad(pt){return pt}cad2doc(pt){return pt}doc2cad1(pt){return new McGePoint3d(pt.x,pt.y,pt.z)}doc2cad2(x,y,z){return new McGePoint3d(x,y,z)}cad2doc1(pt){return new THREE.Vector3(pt.x,pt.y,pt.z)}cad2doc2(x,y,z){return new THREE.Vector3(x,y,z)}updateDisplay(isImmediate=!1){this.imp.mxdrawObject.updateDisplay(isImmediate)}updateLayerDisplayStatus(){this.imp.UpdateLayerDisplayStatus()}initRegist(sRegist){this.imp.initRegist(sRegist)}isTryVersion(){return this.imp.isTryVersion()}setViewBackgroundColor(red,green,blue){let mxobj=this.getMxDrawObject();return mxobj&&mxobj.setViewColor(red<<16|green<<8|blue),this.imp.setViewBackgroundColor(red,green,blue)}getCurrentDatabaseDrawColor(){let ary=this.getDatabase().getImp().GetCurrentlyDrawColor(),lViewcolor=this.getMxDrawObject().getViewColor(),r=ary.at(0),g=ary.at(1),b=ary.at(2);lViewcolor==16777215?r==255&&g==255&&b==255&&(r=0,g=0,b=0):lViewcolor==0&&r==0&&g==0&&b==0&&(r=255,g=255,b=255);let ret=new THREE.Color;return ret.setRGB(r/255,g/255,b/255),ret}undo(){this.imp.undo(),this.updateDisplay(!1)}redo(){this.imp.redo(),this.updateDisplay()}undoMark(){this.imp.undoMark()}}class McAppType{imp;MxCADAssist;objectIdToObjectCalls={};init(imp){this.imp=imp,McGeVector3d.kZAxis=new McGeVector3d(0,0,1),McGeVector3d.kNegateZAxis=new McGeVector3d(0,0,-1),McGeVector3d.kXAxis=new McGeVector3d(1,0,0),McGeVector3d.kYAxis=new McGeVector3d(0,1,0),McGePoint3d.kOrigin=new McGePoint3d(0,0,0),McGeMatrix3d.kIdentity=new McGeMatrix3d,this.MxCADAssist=new exports2.MxCpp.mxcadassemblyimp.MxDrawAssist,this.initObjectIdToObjectCalls()}getImp(){return this.imp}getLastCallResult(){return this.imp.getLastCallResult()}destroyObject(pObject){this.imp.DestroyObject(pObject)}getCurrentMxCAD(){let currentMxCADImp=this.imp.GetCurrentMxDraw();return currentMxCADImp.McObject||(currentMxCADImp.McObject=new McObject(this.imp.GetCurrentMxDraw())),currentMxCADImp.McObject}mcedRGB2Index(red,green,blue,bAutoNearest=!0){return this.imp.mcedRGB2Index(red,green,blue,bAutoNearest)}setDefaultViewBackgroundColor(red,green,blue){return this.imp.setDefaultViewBackgroundColor(red,green,blue)}objectIdIsKindOf(lIdIndex,className){return this.imp.ObjectIdIsKindOf(lIdIndex,className)}initObjectIdToObjectCalls(){this.objectIdToObjectCalls.McDbCurve=lIdIndex=>new McDbCurve(this.imp.ObjectIdToMdDbCurve(lIdIndex)),this.objectIdToObjectCalls.McDbDimension=lIdIndex=>new McDbDimension(this.imp.ObjectIdToMdDbDimension(lIdIndex)),this.objectIdToObjectCalls.McDbEntity=lIdIndex=>new McDbEntity(this.imp.ObjectIdToMdDbEntity(lIdIndex)),this.objectIdToObjectCalls.McDbLine=lIdIndex=>new McDbLine(this.imp.ObjectIdToMdDbLine(lIdIndex)),this.objectIdToObjectCalls.McDbText=lIdIndex=>new McDbText(this.imp.ObjectIdToMdDbText(lIdIndex)),this.objectIdToObjectCalls.McDbAttribute=lIdIndex=>new McDbAttribute(this.imp.ObjectIdToMdDbAttribute(lIdIndex)),this.objectIdToObjectCalls.McDbAttributeDefinition=lIdIndex=>new McDbAttributeDefinition(this.imp.ObjectIdToMdDbAttributeDefinition(lIdIndex)),this.objectIdToObjectCalls.McDbPolyline=lIdIndex=>new McDbPolyline(this.imp.ObjectIdToMdDbPolyline(lIdIndex)),this.objectIdToObjectCalls.McDbCircle=lIdIndex=>new McDbCircle(this.imp.ObjectIdToMdDbCircle(lIdIndex)),this.objectIdToObjectCalls.McDbArc=lIdIndex=>new McDbArc(this.imp.ObjectIdToMdDbArc(lIdIndex)),this.objectIdToObjectCalls.McDbBlockReference=lIdIndex=>new McDbBlockReference(this.imp.ObjectIdToMdDbBlockReference(lIdIndex)),this.objectIdToObjectCalls.McDbAlignedDimension=lIdIndex=>new McDbAlignedDimension(this.imp.ObjectIdToMdDbAlignedDimension(lIdIndex)),this.objectIdToObjectCalls.McDbRotatedDimension=lIdIndex=>new McDbRotatedDimension(this.imp.ObjectIdToMdDbRotatedDimension(lIdIndex)),this.objectIdToObjectCalls.McDbMText=lIdIndex=>new McDbMText(this.imp.ObjectIdToMdDbMText(lIdIndex)),this.objectIdToObjectCalls.McDbEllipse=lIdIndex=>new McDbEllipse(this.imp.ObjectIdToMdDbEllipse(lIdIndex)),this.objectIdToObjectCalls.McDbPoint=lIdIndex=>new McDbPoint(this.imp.ObjectIdToMdDbPoint(lIdIndex)),this.objectIdToObjectCalls.McDbBlockTableRecord=lIdIndex=>new McDbBlockTableRecord(this.imp.ObjectIdToMdDbBlockTableRecord(lIdIndex)),this.objectIdToObjectCalls.McDbLayerTableRecord=lIdIndex=>new McDbLayerTableRecord(this.imp.ObjectIdToMdDbLayerTableRecord(lIdIndex)),this.objectIdToObjectCalls.McDbLinetypeTableRecord=lIdIndex=>new McDbLinetypeTableRecord(this.imp.ObjectIdToMdDbLinetypeTableRecord(lIdIndex)),this.objectIdToObjectCalls.McDbTextStyleTableRecord=lIdIndex=>new McDbTextStyleTableRecord(this.imp.ObjectIdToMdDbTextStyleTableRecord(lIdIndex)),this.objectIdToObjectCalls.McDbHatch=lIdIndex=>new McDbHatch(this.imp.ObjectIdToMdDbHatch(lIdIndex)),this.objectIdToObjectCalls.McDbProxyEntity=lIdIndex=>new McDbProxyEntity(this.imp.ObjectIdToMdDbProxyEntity(lIdIndex)),this.objectIdToObjectCalls.McDbRasterImage=lIdIndex=>new McDbRasterImage(this.imp.ObjectIdToMdDbRasterImage(lIdIndex)),this.objectIdToObjectCalls.McDbRasterImageDef=lIdIndex=>new McDbRasterImageDef(this.imp.ObjectIdToMdDbRasterImageDef(lIdIndex))}objectIdToObject(lIdIndex){if(!lIdIndex)return null;let objName=this.imp.ObjectIdToObjectName(lIdIndex);if(this.objectIdToObjectCalls[objName])return this.objectIdToObjectCalls[objName](lIdIndex);if(this.imp.ObjectIdIsKindOf(lIdIndex,"McDbCurve"))return this.objectIdToObjectCalls.McDbCurve(lIdIndex);if(this.imp.ObjectIdIsKindOf(lIdIndex,"McDbDimension"))return this.objectIdToObjectCalls.McDbDimension(lIdIndex);if(this.imp.ObjectIdIsKindOf(lIdIndex,"McDbEntity"))return this.objectIdToObjectCalls.McDbEntity(lIdIndex);let mcdbObj=this.imp.ObjectIdToMdObject(lIdIndex);return new McDbObject(mcdbObj)}createCloneObject(clonobjImp){if(!clonobjImp)return null;let objName=clonobjImp.getObjectName(),ret=null;return objName=="McDbLine"?ret=new McDbLine:objName=="McDbText"?ret=new McDbText:objName=="McDbAttributeDefinition"?ret=new McDbAttributeDefinition:objName=="McDbAttribute"?ret=new McDbAttribute:objName=="McDbPolyline"?ret=new McDbPolyline:objName=="McDbCircle"?ret=new McDbCircle:objName=="McDbArc"?ret=new McDbArc:objName=="McDbBlockReference"?ret=new McDbBlockReference:objName=="McDbAlignedDimension"?ret=new McDbAlignedDimension:objName=="McDbRotatedDimension"?ret=new McDbRotatedDimension:objName=="McDbMText"?ret=new McDbMText:clonobjImp.isKindOf("McDbCurve")?(ret=new McDbCurve,ret.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbCurve)):clonobjImp.isKindOf("McDbEntity")&&(ret=new McDbEntity,ret.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbEntity)),ret?(ret.getImp().ConnectionTempObject(clonobjImp),exports2.MxCpp.App.destroyObject(clonobjImp),ret):new McDbObject(clonobjImp)}setFontFilePath(path){this.imp.setFontFilePath(path)}addNetworkLoadingFont(paths){typeof paths=="string"?this.imp.addNetworkLoadingFont(paths):paths.forEach(val=>{this.imp.addNetworkLoadingFont(val)})}getVersionString(){return this.imp.GetVersionString()}}class MxCppType{mxcadassemblyimp;App=new McAppType;PropertiesWindow=new MxPropertiesWindowCustom;getCallResult(){return this.App.getLastCallResult()}newMcGePoint3d(pt){let ret=new McGePoint3d;return pt&&typeof pt.x=="number"&&typeof pt.y=="number"&&(ret.x=pt.x,ret.y=pt.y,typeof pt.z=="number"&&(ret.z=pt.z)),ret}newMcGeVector3d(pt){let ret=new McGeVector3d;return pt&&typeof pt.x=="number"&&typeof pt.y=="number"&&(ret.x=pt.x,ret.y=pt.y,typeof pt.z=="number"&&(ret.z=pt.z)),ret}getCurrentMxCAD(){return this.App.getCurrentMxCAD()}getCurrentDatabase(){return this.App.getCurrentMxCAD().getDatabase()}decodeFromGb2312(str){return MxG2312Obj.decodeFromGb2312(str)}}var MxPropertiesWindowCustomValueType=(MxPropertiesWindowCustomValueType2=>(MxPropertiesWindowCustomValueType2[MxPropertiesWindowCustomValueType2.kInt=1]="kInt",MxPropertiesWindowCustomValueType2[MxPropertiesWindowCustomValueType2.kDouble=2]="kDouble",MxPropertiesWindowCustomValueType2[MxPropertiesWindowCustomValueType2.kString=3]="kString",MxPropertiesWindowCustomValueType2))(MxPropertiesWindowCustomValueType||{});class MxPropertiesWindowCustomValue{sVarName="";iVarType=1;val;isOnlyRead=!1}class MxPropertiesWindowCustom{getPropertiesCall=null;setPropertiesCall=null;onEvent_getProperties(call){this.getPropertiesCall=call}onEvent_setProperties(call){this.setPropertiesCall=call}setEntitySupportCustom(id,isCustomProperties=!0){let ent=id.getMcDbEntity();ent&&ent.getImp().setPropertiesWindowCustom(isCustomProperties)}getEntityProperties(id){let ent=id.getMcDbEntity();return ent?ent.getImp().isPropertiesWindowCustom()?this.getPropertiesCall==null?[]:this.getPropertiesCall(id):[]:[]}setEntityProperties(id,prop){let ent=id.getMcDbEntity();if(!!ent&&!!ent.getImp().isPropertiesWindowCustom()&&this.setPropertiesCall!=null)return this.setPropertiesCall(id,prop)}}exports2.MxCpp=void 0;async function loadMxCADassembly(call,locateFile=isSharedArrayBuffer||!isCdn?get2DFileURL:get2DSTFileURL,wasmBinary,fontspath,networkFonts){return new Promise(async(resolve,reject)=>{try{if(exports2.MxCpp||(exports2.MxCpp=new MxCppType),exports2.MxCpp.mxcadassemblyimp)return call&&call(exports2.MxCpp),resolve(exports2.MxCpp);const mxcadassemblyimp=await loadWams$1("mxdrawassembly_min","mxdrawassembly",{locateFile,wasmBinary});exports2.MxCpp.mxcadassemblyimp=mxcadassemblyimp;let app=new mxcadassemblyimp.McApp;fontspath&&app.setFontFilePath(fontspath),app.Init(),exports2.MxCpp.App.init(app),networkFonts&&exports2.MxCpp.App.addNetworkLoadingFont(networkFonts),call&&call(exports2.MxCpp),resolve(exports2.MxCpp)}catch(e){reject(e)}})}function MxCheckTheBrowser(){var sys={},ua=navigator.userAgent.toLowerCase(),s;if((s=ua.match(/edg\/([\d.]+)/))?sys.edge=s[1]:(s=ua.match(/rv:([\d.]+)\) like gecko/))||(s=ua.match(/msie ([\d.]+)/))?sys.ie=s[1]:(s=ua.match(/firefox\/([\d.]+)/))?sys.firefox=s[1]:(s=ua.match(/chrome\/([\d.]+)/))?sys.chrome=s[1]:(s=ua.match(/opera.([\d.]+)/))?sys.opera=s[1]:(s=ua.match(/version\/([\d.]+).*safari/))&&(sys.safari=s[1]),sys.ie)return{ok:!1,error:"\u4E0D\u652F\u6301ie\u6D4F\u89C8\u5668\uFF0C\u4F7F\u7528\u6700\u65B0\u7684chrome\u6216edge\u6D4F\u89C8\u5668",var:sys};if(sys.edge){var regEdge=new RegExp("edg/([0-9]{1,}[.0-9]{0,})");if(regEdge.exec(ua)!=null&&parseFloat(RegExp.$1)<107)return{ok:!1,error:"edge\u6D4F\u89C8\u5668\u7248\u672C\u592A\u65E7\uFF0C\u4F7F\u7528\u6700\u65B0\u7684edge\u6D4F\u89C8\u5668",var:sys}}else if(sys.chrome){var regEdge=new RegExp("chrome/([0-9]{1,}[.0-9]{0,})");if(regEdge.exec(ua)!=null&&parseFloat(RegExp.$1)<107)return{ok:!1,error:"\u6D4F\u89C8\u5668\u7248\u672C\u592A\u65E7\uFF0C\u4F7F\u7528\u6700\u65B0\u7684chrome\u6D4F\u89C8\u5668",var:sys}}else if(sys.firefox){var regEdge=new RegExp("firefox/([0-9]{1,}[.0-9]{0,})");if(regEdge.exec(ua)!=null&&parseFloat(RegExp.$1)<101)return{ok:!1,error:"firefox\u6D4F\u89C8\u5668\u7248\u672C\u592A\u65E7\uFF0C\u4F7F\u7528\u6700\u65B0\u7684firefox\u6D4F\u89C8\u5668",var:sys}}else if(!sys.safari)return sys.opera?{ok:!1,error:"\u4E0D\u652F\u6301opera\u6D4F\u89C8\u5668\uFF0C\u4F7F\u7528\u6700\u65B0\u7684chrome\u6216edge\u6D4F\u89C8\u5668",var:sys}:{ok:!1,error:"\u4E0D\u652F\u6301\u8BE5\u6D4F\u89C8\u5668\uFF0C\u4F7F\u7528\u6700\u65B0\u7684chrome\u6216edge\u6D4F\u89C8\u5668",var:sys};return{ok:!0,error:"",var:sys}}class McGePoint3d{static kOrigin;imp;constructor(dX,dY,dZ){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGePoint3d,dX instanceof Object?(this.imp.x=dX.x,this.imp.y=dX.y,this.imp.z=dX.z):(this.imp.x=dX||0,this.imp.y=dY||0,this.imp.z=dZ||0)}toVector3(){return new THREE.Vector3(this.imp.x,this.imp.y,this.imp.z)}setFromVector3(val){return this.imp.x=val.x,this.imp.y=val.y,this.imp.z=val.z,this}copy(val){return this.imp.x=val.x,this.imp.y=val.y,this.imp.z=val.z,this}transformBy(leftSide){return this.imp.transformBy(leftSide.imp),this}addvec(vec){return this.imp.addvec(vec.imp),this}av(vec){return this.imp.addvec(vec.imp),this}subvec(vec){return this.imp.subvec(vec.imp),this}sv(vec){return this.imp.subvec(vec.imp),this}sub(pt){return new McGeVector3d(this.imp.sub(pt.imp))}distanceTo(pnt){return this.imp.distanceTo(pnt.imp)}isEqualTo(pnt){return this.imp.isEqualTo(pnt.imp)}clone(){return new McGePoint3d(this.imp)}c(){return new McGePoint3d(this.imp)}get x(){return this.imp.x}set x(val){this.imp.x=val}get y(){return this.imp.y}set y(val){this.imp.y=val}get z(){return this.imp.z}set z(val){this.imp.z=val}}class McGeVector3d{static kXAxis;static kYAxis;static kZAxis;static kNegateZAxis;imp;constructor(dX,dY,dZ){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGeVector3d,dX instanceof Object?(this.imp.x=dX.x,this.imp.y=dX.y,this.imp.z=dX.z):(this.imp.x=dX||0,this.imp.y=dY||0,this.imp.z=dZ||0)}toVector3(){return new THREE.Vector3(this.imp.x,this.imp.y,this.imp.z)}copy(val){return this.imp.x=val.imp.x,this.imp.y=val.imp.y,this.imp.z=val.imp.z,this}clone(){return new McGeVector3d(this.imp)}c(){return new McGeVector3d(this.imp)}rotateBy(ang,axis){return axis||(axis=McGeVector3d.kZAxis),this.imp.rotateBy(ang,axis.imp),this}negate(){return this.imp.negate(),this}perpVector(){return this.imp.perpVector(),this}angleTo1(vec){return this.imp.angleTo(vec.imp)}angleTo2(vec,refVec){return refVec||(refVec=McGeVector3d.kNegateZAxis),this.imp.angleTo(vec.imp,refVec.imp)}normalize(){return this.imp.normalize(),this}length(){return this.imp.length()}isUnitLength(){return this.imp.isUnitLength()}isZeroLength(){return this.imp.isZeroLength()}dotProduct(vec){return this.imp.dotProduct(vec.imp)}crossProduct(vec){let ret=new McGeVector3d;return ret.imp=this.imp.crossProduct(vec.imp),ret}isEqualTo(vec){return this.imp.isEqualTo(vec.imp)}mult(val){return this.imp.mult(val),this}get x(){return this.imp.x}set x(val){this.imp.x=val}get y(){return this.imp.y}set y(val){this.imp.y=val}get z(){return this.imp.z}set z(val){this.imp.z=val}}class McGeMatrix3d{static kIdentity;imp;constructor(imp){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGeMatrix3d,imp instanceof Object&&this.imp.copy(imp)}copy(val){return this.imp.copy(val.imp),this}clone(){return new McGeMatrix3d(this.imp)}setToIdentity(){return this.imp.setToIdentity(),this}preMultBy(leftSide){return this.imp.preMultBy(leftSide.imp),this}postMultBy(rightSide){return this.imp.postMultBy(rightSide.imp),this}setToProduct(mat1,mat2){return this.imp.setToProduct(mat1.imp,mat2.imp),this}invert(){return this.imp.invert(),this}isSingular(){return this.imp.isSingular()}transposeIt(){return this.imp.transposeIt(),this}isEqualTo(mat){return this.imp.isEqualTo(mat.imp)}det(){return this.imp.det()}setCoordSystem(origin,xAxis,yAxis,zAxis){return this.imp.setCoordSystem(origin.imp,xAxis.imp,yAxis.imp,zAxis.imp),this}setToTranslation(vec){return this.imp.setToTranslation(vec.imp),this}setToRotation(angle,axis,center){return this.imp.setToRotation(angle,axis.imp,center.imp),this}setToScaling(scaleAll,center){return this.imp.setToScaling(scaleAll,center.imp),this}setMirror(pt1,pt2){return this.imp.setMirror(pt1.imp,pt2.imp),this}scale(){return this.imp.scale()}getData(row,col){return this.imp.getData(row,col)}}class McGeLongArray{imp;constructor(imp){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGeLongArray,imp instanceof Object&&this.imp.copy(imp)}copy(val){return this.imp.clear(),this.imp.copy(val.imp),this}copyFormAryId(aryId){return this.imp.clear(),aryId.forEach(val=>{this.imp.append(val.id)}),this}append(val){this.imp.append(val)}length(){return this.imp.length()}at(index){return this.imp.at(index)}setAt(index,val){this.imp.setAt(index,val)}clear(){this.imp.clear()}forEach(call){let iSize=this.imp.length();for(let i=0;i<iSize;i++)call(this.imp.at(i),i)}}class McGeStringArray{imp;constructor(imp){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGeStringArray,imp instanceof Object&&this.imp.copy(imp)}copy(val){return this.imp.copy(val.imp),this}append(val){this.imp.append(val)}length(){return this.imp.length()}at(index,decodeFromGb2312=!0){return decodeFromGb2312?MxG2312Obj.decodeFromGb2312(this.imp.at(index)):this.imp.at(index)}setAt(index,val,decodeFromGb2312=!0){decodeFromGb2312?this.imp.setAt(index,MxG2312Obj.encodeToGb2312(val)):this.imp.setAt(index,val)}forEach(call,decodeFromGb2312=!0){let iSize=this.imp.length();for(let i=0;i<iSize;i++)call(decodeFromGb2312?MxG2312Obj.decodeFromGb2312(this.imp.at(i)):this.imp.at(i),i)}clear(){this.imp.clear()}}class McGePoint3dArray{imp;constructor(imp){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGePoint3dArray,imp instanceof Object&&this.imp.copy(imp)}copy(val){return this.imp.copy(val.imp),this}append(val){this.imp.append(val.imp)}length(){return this.imp.length()}isEmpty(){return this.imp.length()==0}at(index){return new McGePoint3d(this.imp.at(index))}setAt(index,val){this.imp.setAt(index,val.imp)}clear(){this.imp.clear()}forEach(call){let iSize=this.imp.length();for(let i=0;i<iSize;i++)call(new McGePoint3d(this.imp.at(i)),i)}}class MdGeDoubleArray{imp;constructor(imp){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGeDoubleArray,imp instanceof Object&&this.imp.copy(imp)}copy(val){return this.imp.clear(),this.imp.copy(val.imp),this}append(val){this.imp.append(val)}length(){return this.imp.length()}at(index){return this.imp.at(index)}setAt(index,val){this.imp.setAt(index,val)}clear(){this.imp.clear()}forEach(call){let iSize=this.imp.length();for(let i=0;i<iSize;i++)call(this.imp.at(i),i)}}var __assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p])}return t},__assign.apply(this,arguments)};function __awaiter(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})}function __generator(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");for(;g&&(g=0,op[0]&&(_=0)),_;)try{if(f=1,y&&(t=op[0]&2?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[op[0]&2,t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(t=_.trys,!(t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}}function __spreadArray(to,from,pack){if(pack||arguments.length===2)for(var i=0,l=from.length,ar;i<l;i++)(ar||!(i in from))&&(ar||(ar=Array.prototype.slice.call(from,0,i)),ar[i]=from[i]);return to.concat(ar||Array.prototype.slice.call(from))}typeof SuppressedError=="function"&&SuppressedError;var version="4.1.0";function wait(durationMs,resolveWith){return new Promise(function(resolve){return setTimeout(resolve,durationMs,resolveWith)})}function releaseEventLoop(){return wait(0)}function requestIdleCallbackIfAvailable(fallbackTimeout,deadlineTimeout){deadlineTimeout===void 0&&(deadlineTimeout=1/0);var requestIdleCallback=window.requestIdleCallback;return requestIdleCallback?new Promise(function(resolve){return requestIdleCallback.call(window,function(){return resolve()},{timeout:deadlineTimeout})}):wait(Math.min(fallbackTimeout,deadlineTimeout))}function isPromise(value){return!!value&&typeof value.then=="function"}function awaitIfAsync(action,callback){try{var returnedValue=action();isPromise(returnedValue)?returnedValue.then(function(result){return callback(!0,result)},function(error){return callback(!1,error)}):callback(!0,returnedValue)}catch(error){callback(!1,error)}}function mapWithBreaks(items,callback,loopReleaseInterval){return loopReleaseInterval===void 0&&(loopReleaseInterval=16),__awaiter(this,void 0,void 0,function(){var results,lastLoopReleaseTime,i,now;return __generator(this,function(_a){switch(_a.label){case 0:results=Array(items.length),lastLoopReleaseTime=Date.now(),i=0,_a.label=1;case 1:return i<items.length?(results[i]=callback(items[i],i),now=Date.now(),now>=lastLoopReleaseTime+loopReleaseInterval?(lastLoopReleaseTime=now,[4,wait(0)]):[3,3]):[3,4];case 2:_a.sent(),_a.label=3;case 3:return++i,[3,1];case 4:return[2,results]}})})}function suppressUnhandledRejectionWarning(promise){promise.then(void 0,function(){})}function includes(haystack,needle){for(var i=0,l=haystack.length;i<l;++i)if(haystack[i]===needle)return!0;return!1}function excludes(haystack,needle){return!includes(haystack,needle)}function toInt(value){return parseInt(value)}function toFloat(value){return parseFloat(value)}function replaceNaN(value,replacement){return typeof value=="number"&&isNaN(value)?replacement:value}function countTruthy(values){return values.reduce(function(sum,value){return sum+(value?1:0)},0)}function round(value,base){if(base===void 0&&(base=1),Math.abs(base)>=1)return Math.round(value/base)*base;var counterBase=1/base;return Math.round(value*counterBase)/counterBase}function parseSimpleCssSelector(selector){for(var _a,_b,errorMessage="Unexpected syntax '".concat(selector,"'"),tagMatch=/^\s*([a-z-]*)(.*)$/i.exec(selector),tag=tagMatch[1]||void 0,attributes={},partsRegex=/([.:#][\w-]+|\[.+?\])/gi,addAttribute=function(name,value){attributes[name]=attributes[name]||[],attributes[name].push(value)};;){var match=partsRegex.exec(tagMatch[2]);if(!match)break;var part=match[0];switch(part[0]){case".":addAttribute("class",part.slice(1));break;case"#":addAttribute("id",part.slice(1));break;case"[":{var attributeMatch=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(part);if(attributeMatch)addAttribute(attributeMatch[1],(_b=(_a=attributeMatch[4])!==null&&_a!==void 0?_a:attributeMatch[5])!==null&&_b!==void 0?_b:"");else throw new Error(errorMessage);break}default:throw new Error(errorMessage)}}return[tag,attributes]}function getUTF8Bytes(input){for(var result=new Uint8Array(input.length),i=0;i<input.length;i++){var charCode=input.charCodeAt(i);if(charCode<0||charCode>127)return new TextEncoder().encode(input);result[i]=charCode}return result}function x64Add(m,n){var m0=m[0]>>>16,m1=m[0]&65535,m2=m[1]>>>16,m3=m[1]&65535,n0=n[0]>>>16,n1=n[0]&65535,n2=n[1]>>>16,n3=n[1]&65535,o0=0,o1=0,o2=0,o3=0;o3+=m3+n3,o2+=o3>>>16,o3&=65535,o2+=m2+n2,o1+=o2>>>16,o2&=65535,o1+=m1+n1,o0+=o1>>>16,o1&=65535,o0+=m0+n0,o0&=65535,m[0]=o0<<16|o1,m[1]=o2<<16|o3}function x64Multiply(m,n){var m0=m[0]>>>16,m1=m[0]&65535,m2=m[1]>>>16,m3=m[1]&65535,n0=n[0]>>>16,n1=n[0]&65535,n2=n[1]>>>16,n3=n[1]&65535,o0=0,o1=0,o2=0,o3=0;o3+=m3*n3,o2+=o3>>>16,o3&=65535,o2+=m2*n3,o1+=o2>>>16,o2&=65535,o2+=m3*n2,o1+=o2>>>16,o2&=65535,o1+=m1*n3,o0+=o1>>>16,o1&=65535,o1+=m2*n2,o0+=o1>>>16,o1&=65535,o1+=m3*n1,o0+=o1>>>16,o1&=65535,o0+=m0*n3+m1*n2+m2*n1+m3*n0,o0&=65535,m[0]=o0<<16|o1,m[1]=o2<<16|o3}function x64Rotl(m,bits){var m0=m[0];bits%=64,bits===32?(m[0]=m[1],m[1]=m0):bits<32?(m[0]=m0<<bits|m[1]>>>32-bits,m[1]=m[1]<<bits|m0>>>32-bits):(bits-=32,m[0]=m[1]<<bits|m0>>>32-bits,m[1]=m0<<bits|m[1]>>>32-bits)}function x64LeftShift(m,bits){bits%=64,bits!==0&&(bits<32?(m[0]=m[1]>>>32-bits,m[1]=m[1]<<bits):(m[0]=m[1]<<bits-32,m[1]=0))}function x64Xor(m,n){m[0]^=n[0],m[1]^=n[1]}var F1=[4283543511,3981806797],F2=[3301882366,444984403];function x64Fmix(h){var shifted=[0,h[0]>>>1];x64Xor(h,shifted),x64Multiply(h,F1),shifted[1]=h[0]>>>1,x64Xor(h,shifted),x64Multiply(h,F2),shifted[1]=h[0]>>>1,x64Xor(h,shifted)}var C1=[2277735313,289559509],C2=[1291169091,658871167],M$1=[0,5],N1=[0,1390208809],N2=[0,944331445];function x64hash128(input,seed){var key=getUTF8Bytes(input);seed=seed||0;var length=[0,key.length],remainder=length[1]%16,bytes=length[1]-remainder,h1=[0,seed],h2=[0,seed],k1=[0,0],k2=[0,0],i;for(i=0;i<bytes;i=i+16)k1[0]=key[i+4]|key[i+5]<<8|key[i+6]<<16|key[i+7]<<24,k1[1]=key[i]|key[i+1]<<8|key[i+2]<<16|key[i+3]<<24,k2[0]=key[i+12]|key[i+13]<<8|key[i+14]<<16|key[i+15]<<24,k2[1]=key[i+8]|key[i+9]<<8|key[i+10]<<16|key[i+11]<<24,x64Multiply(k1,C1),x64Rotl(k1,31),x64Multiply(k1,C2),x64Xor(h1,k1),x64Rotl(h1,27),x64Add(h1,h2),x64Multiply(h1,M$1),x64Add(h1,N1),x64Multiply(k2,C2),x64Rotl(k2,33),x64Multiply(k2,C1),x64Xor(h2,k2),x64Rotl(h2,31),x64Add(h2,h1),x64Multiply(h2,M$1),x64Add(h2,N2);k1[0]=0,k1[1]=0,k2[0]=0,k2[1]=0;var val=[0,0];switch(remainder){case 15:val[1]=key[i+14],x64LeftShift(val,48),x64Xor(k2,val);case 14:val[1]=key[i+13],x64LeftShift(val,40),x64Xor(k2,val);case 13:val[1]=key[i+12],x64LeftShift(val,32),x64Xor(k2,val);case 12:val[1]=key[i+11],x64LeftShift(val,24),x64Xor(k2,val);case 11:val[1]=key[i+10],x64LeftShift(val,16),x64Xor(k2,val);case 10:val[1]=key[i+9],x64LeftShift(val,8),x64Xor(k2,val);case 9:val[1]=key[i+8],x64Xor(k2,val),x64Multiply(k2,C2),x64Rotl(k2,33),x64Multiply(k2,C1),x64Xor(h2,k2);case 8:val[1]=key[i+7],x64LeftShift(val,56),x64Xor(k1,val);case 7:val[1]=key[i+6],x64LeftShift(val,48),x64Xor(k1,val);case 6:val[1]=key[i+5],x64LeftShift(val,40),x64Xor(k1,val);case 5:val[1]=key[i+4],x64LeftShift(val,32),x64Xor(k1,val);case 4:val[1]=key[i+3],x64LeftShift(val,24),x64Xor(k1,val);case 3:val[1]=key[i+2],x64LeftShift(val,16),x64Xor(k1,val);case 2:val[1]=key[i+1],x64LeftShift(val,8),x64Xor(k1,val);case 1:val[1]=key[i],x64Xor(k1,val),x64Multiply(k1,C1),x64Rotl(k1,31),x64Multiply(k1,C2),x64Xor(h1,k1)}return x64Xor(h1,length),x64Xor(h2,length),x64Add(h1,h2),x64Add(h2,h1),x64Fmix(h1),x64Fmix(h2),x64Add(h1,h2),x64Add(h2,h1),("00000000"+(h1[0]>>>0).toString(16)).slice(-8)+("00000000"+(h1[1]>>>0).toString(16)).slice(-8)+("00000000"+(h2[0]>>>0).toString(16)).slice(-8)+("00000000"+(h2[1]>>>0).toString(16)).slice(-8)}function errorToObject(error){var _a;return __assign({name:error.name,message:error.message,stack:(_a=error.stack)===null||_a===void 0?void 0:_a.split(`
1
+ (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("mxdraw")):typeof define=="function"&&define.amd?define(["exports","mxdraw"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.mxcad={},global.Mx))})(this,function(exports2,mxdraw){"use strict";function b64Encode(str){return btoa(unescape(encodeURIComponent(str)))}function b64Decode(str){return decodeURIComponent(escape(atob(str)))}async function saveAsFileDialog({blob,filename="",types=[{description:"mxweb File",accept:{"application/octet-stream":[".mxweb"]}}]}){try{if(window.showSaveFilePicker)if(window.navigator?.userActivation?.isActive)try{if(!window.showSaveFilePicker)return;const handle=await window.showSaveFilePicker({suggestedName:filename,types}),writable=await handle.createWritable();return await writable.write(blob),await writable.close(),handle}catch(err){if(err?.name==="AbortError")return;console.error(err)}else console.warn("\u975E\u7528\u6237\u4EA4\u4E92 \u65E0\u6CD5\u8C03\u7528showSaveFilePicker \u5DF2\u9009\u62E9\u517C\u5BB9\u65B9\u6848");if(window.navigator?.msSaveOrOpenBlob){window.navigator.msSaveOrOpenBlob(blob,filename);return}const link=document.createElement("a");link.href=window.URL.createObjectURL(blob),link.download=filename,link.style.display="none",document.body.appendChild(link),link.click(),document.body.removeChild(link),typeof window.URL.revokeObjectURL=="function"?window.URL.revokeObjectURL(link.href):typeof window.webkitURL<"u"&&typeof window.webkitURL.revokeObjectURL=="function"?window.webkitURL.revokeObjectURL(link.href):window.URL.revokeObjectURL(link.href)}catch(err){console.error(err.name,err.message)}}function downloadFile(blob,filename){const link=document.createElement("a");link.href=window.URL.createObjectURL(blob),link.download=filename,link.click()}function downloadFileFromUrl(url,filename){fetch(url).then(response=>response.blob()).then(blob=>{const link=document.createElement("a");link.href=window.URL.createObjectURL(blob),link.download=filename,link.click()})}const getJsonFromUrl=async url=>{try{return await(await fetch(url)).json()}catch{console.error("MxTip:error getJsonFromurl:"+url)}},getFileFromUrl=async url=>{try{return await fetch(url)}catch{console.error("MxTip:error getFileFromUrl:"+url)}};function _ML_String(strId,str){return mxdraw.MxFun.getLanguageString(strId,str)}function IsZero(val){return Math.abs(val)<1e-7}const MxTools={b64Encode,b64Decode,saveAsFileDialog,downloadFile,downloadFileFromUrl,getJsonFromUrl,getFileFromUrl,_ML_String,IsZero};class MxG2312{z="D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";encodeToGb2312(str){for(var strOut="",i=0;i<str.length;i++){var c=str.charAt(i),code=str.charCodeAt(i);if(c==" ")strOut+="+";else if(code>=19968&&code<=40869){let index=code-19968;strOut+="%"+this.z.substr(index*4,2)+"%"+this.z.substr(index*4+2,2)}else strOut+="%"+str.charCodeAt(i).toString(16)}return strOut}decodeFromGb2312(str){for(var strOut="",i=0;i<str.length;i++){var c=str.charAt(i);if(c=="+")strOut+=" ";else if(c!="%")strOut+=c;else{i++;var nextC=str.charAt(i);if(isNaN(parseInt(nextC)))try{var code=str.substr(i,2)+str.substr(i+3,2);i=i+4;for(var index=-1;(index=this.z.indexOf(code,index+1))!=-1;)if(index%4==0){strOut+=String.fromCharCode(index/4+19968);break}}catch{}else{i++;try{strOut+=decodeURIComponent(c+nextC+str.charAt(i))}catch{console.log("decodeURIComponent error"),console.log(c+nextC+str.charAt(i))}}}}return strOut}}let MxG2312Obj=new MxG2312;const version$1="1.0.149",isSharedArrayBuffer="SharedArrayBuffer"in window,isCdn=document.currentScript&&/unpkg\.com\/mxcad/.test(document.currentScript.src),get2DFileURL=(fileName,base=self.location.href)=>isCdn?`https://unpkg.com/mxcad@${version$1}/dist/wasm/2d-st/${fileName}`:base+fileName,get2DSTFileURL=(fileName,base=self.location.href)=>isCdn?`https://unpkg.com/mxcad@${version$1}/dist/wasm/2d/${fileName}`:base+fileName,get3DFileURL=(fileName,base=self.location.href)=>isCdn?`https://unpkg.com/mxcad@${version$1}/dist/wasm/3d/${fileName}`:base+fileName,loadScript=url=>new Promise((resolve,reject)=>{const script=document.createElement("script");script.src=url,script.type="text/javascript",script.crossOrigin="anonymous",document.body.appendChild(script),script.onload=()=>{resolve()},script.onerror=e=>{reject(e)}}),loadWams$1=async(baseFileName,namespace,config)=>{const{locateFile}=config,jsPath=locateFile(baseFileName+".js");return await loadScript(jsPath),await globalThis[namespace](config)},_mxFinalizationRegistry$1=new FinalizationRegistry(key=>{exports2.MxCpp.App.destroyObject(key)}),_mxFinalizationRegistry_token$1={};class McRxObject{imp=0;constructor(imp){this.imp=imp,this.imp&&(this.imp.isNull()&&console.log("Mx:error null constructor object "),_mxFinalizationRegistry$1.register(this,imp,_mxFinalizationRegistry_token$1))}getImp(){return this.imp}initTempObject(imp){this.imp=imp}get objectName(){return this.imp.getObjectName()}get dxf0(){return this.imp.getDxf0()}getJson(){let hexGb=this.imp.getJson();return MxG2312Obj.decodeFromGb2312(hexGb)}setJson(str){let sHex=MxG2312Obj.encodeToGb2312(str);return this.imp.setJson(sHex)}isKindOf(sObjectName){return this.imp.isKindOf(sObjectName)}isNull(){return this.imp.isNull()}}function getFilterImp(filter=null){let filetImp;return filter?filetImp=filter.getImp():filetImp=new exports2.MxCpp.mxcadassemblyimp.McDrawResbuf,filetImp}var MxCADResbufDataType=(MxCADResbufDataType2=>(MxCADResbufDataType2[MxCADResbufDataType2.kLong=1071]="kLong",MxCADResbufDataType2[MxCADResbufDataType2.kDouble=1040]="kDouble",MxCADResbufDataType2[MxCADResbufDataType2.kString=1e3]="kString",MxCADResbufDataType2[MxCADResbufDataType2.kPoint=1010]="kPoint",MxCADResbufDataType2[MxCADResbufDataType2.kEntityType=5020]="kEntityType",MxCADResbufDataType2[MxCADResbufDataType2.kEntityId=-8e3]="kEntityId",MxCADResbufDataType2[MxCADResbufDataType2.kEntity=-8500]="kEntity",MxCADResbufDataType2[MxCADResbufDataType2.kExDataName=1001]="kExDataName",MxCADResbufDataType2))(MxCADResbufDataType||{});class MxCADResbuf extends McRxObject{constructor(imp){imp?imp instanceof Array?(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.McDrawResbuf),this.setJson(JSON.stringify(imp))):super(imp):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.McDrawResbuf))}Clear(){this.imp.Clear()}forEach(call){let str=this.getJson();try{let ary=JSON.parse(str),len=ary.length;for(let i=0;i<len;i++)call(ary[i].val,ary[i].type,ary[i].dxf)}catch{console.log("Mx: json data error")}}GetCount(){return this.imp.GetCount()}AtDouble(lItem){return{val:this.imp.AtDouble(lItem),ret:exports2.MxCpp.getCallResult()==0}}AtLong(lItem){return{val:this.imp.Atlong(lItem),ret:exports2.MxCpp.getCallResult()==0}}AtObject(lItem){if(lItem>=this.imp.GetCount())return{val:void 0,ret:!1};let impobj=this.imp.AtObject(lItem),obj=exports2.MxCpp.App.createCloneObject(impobj);return obj===null?{val:void 0,ret:!1}:{val:obj,ret:!0}}AddObject(pObj){this.imp.AddObject(pObj.getImp())}AtObjectId(lItem){return{val:new McObjectId(this.imp.AtObjectId(lItem),McObjectIdType.kMxCAD),ret:exports2.MxCpp.getCallResult()==0}}AtString(lItem,decodeFromGb2312=!0){return decodeFromGb2312?{val:MxG2312Obj.decodeFromGb2312(this.imp.AtString(lItem)),ret:exports2.MxCpp.getCallResult()==0}:{val:this.imp.AtString(lItem),ret:exports2.MxCpp.getCallResult()==0}}AtPoint(lItem){return{val:new McGePoint3d(this.imp.AtPoint(lItem)),ret:exports2.MxCpp.getCallResult()==0}}ItemDataType(){return this.imp.ItemDataType()}AddDouble(val,lDataType=-10){return this.imp.AddDouble(val,lDataType)}AddLong(val,lDataType=-10){return this.imp.Addlong(val,lDataType)}AddObjectId(val,lDataType=-10){return this.imp.AddObjectId(val,lDataType)}AddString(str,lDataType=-10,decodeFromGb2312=!0){return decodeFromGb2312?this.imp.AddString(MxG2312Obj.encodeToGb2312(str),lDataType):this.imp.AddString(str,lDataType)}AddMcDbEntityTypes(str){return this.imp.AddString(str,5020)}AddPoint(pt,lDataType=-10){return this.imp.AddPoint(pt.imp,lDataType)}RemoveAll(){this.imp.RemoveAll()}Remove(lItem){this.imp.Remove(lItem)}PrintData(){this.imp.PrintData()}}class MxCADUtilityClass{imp;constructor(){}eraseObject(lId,isErase=!0){return this.init(),this.imp.eraseObject(lId,isErase)}highlightEntity(lId,isHighlight=!0){return this.init(),this.imp.highlightEntity(lId,isHighlight)}findEntAtPoint(dX,dY,dZ,dSearhRange=-1,filter=null){this.init();let retId=this.imp.findEntAtPoint(dX,dY,dZ,dSearhRange,getFilterImp(filter));return new McObjectId(retId,McObjectIdType.kMxCAD)}selectEnt(strPrompt,filter=null,isSelectMxDraw=!0){return this.init(),new Promise(async resolve=>{let mxcad2=exports2.MxCpp.getCurrentMxCAD();const getPoint=new mxdraw.MrxDbgUiPrPoint;strPrompt&&getPoint.setMessage(strPrompt),getPoint.setCursorType(mxdraw.MxCursorType.kRect),getPoint.disableAllTrace(),getPoint.setDynamicInputType(mxdraw.DynamicInputType.kDynTip);let pt=await getPoint.go();if(!pt){resolve([]);return}if(getPoint.clearLastInputPoint(),isSelectMxDraw)mxdraw.MrxDbgUtils.findEntAtPoint(pt).then(aryId=>{let aryRetId=[];aryId.forEach(val=>{aryRetId.push(new McObjectId(val,McObjectIdType.kMxDraw))});let ptcad=mxcad2.doc2cad1(pt),mxCADObjectId=this.findEntAtPoint(ptcad.x,ptcad.y,ptcad.z,-1,filter);mxCADObjectId.isValid()&&aryRetId.push(mxCADObjectId),resolve(aryRetId)});else{let aryRetId=[],ptcad=mxcad2.doc2cad1(pt),mxCADObjectId=this.findEntAtPoint(ptcad.x,ptcad.y,ptcad.z,-1,filter);mxCADObjectId.isValid()&&aryRetId.push(mxCADObjectId),resolve(aryRetId)}})}getCurrentSelect(filter=null){let aryRetId=[];mxdraw.MxFun.getCurrentDraw().getMxCurrentSelect().forEach(val=>{aryRetId.push(new McObjectId(val,McObjectIdType.kMxDraw))});let aryMxCADId=mxdraw.MxFun.getCurrentDraw().getMxCADCurrentSelect();if(aryMxCADId.length<=0)return aryRetId;if(filter){let aryId2=new McGeLongArray;aryMxCADId.forEach(val=>{aryId2.append(val)});let ssimp=new exports2.MxCpp.mxcadassemblyimp.McDrawSelSet,aryOutId=ssimp.getFilterEntity(aryId2.imp,getFilterImp(filter));exports2.MxCpp.App.destroyObject(ssimp),aryMxCADId=[];let len=aryOutId.length();for(let k=0;k<len;k++)aryMxCADId.push(aryOutId.at(k))}return aryMxCADId.forEach(val=>{aryRetId.push(new McObjectId(val,McObjectIdType.kMxCAD))}),aryRetId}async userSelect(strPrompt,filter=null){let aryRetId=this.getCurrentSelect(filter);if(aryRetId.length==0){let ss=new MxCADSelectionSet;await ss.userSelect(strPrompt,filter)&&ss.forEach(val=>{aryRetId.push(val)})}return new Promise(resolve=>{resolve(aryRetId)})}init(){this.imp||(this.imp=new exports2.MxCpp.mxcadassemblyimp.McDrawUtility)}async getCorner(strPrompt,pt1,detailedResult,drawSelectCroner=!1,isDisableAllTrace=!1){let retcode=0,retPt2;for(;;){if(!pt1){let getPoint=new MxCADUiPrPoint;strPrompt&&getPoint.setMessage(strPrompt),getPoint.setDynamicInputType(mxdraw.DynamicInputType.kDynTip),pt1=await getPoint.go(),retcode=getPoint.getDetailedResult()}if(!pt1)break;let mxcad2=exports2.MxCpp.getCurrentMxCAD(),pt1Doc=mxcad2.cad2doc1(pt1),pt2=await mxdraw.MrxDbgUtils.getCorner(pt1Doc,strPrompt,drawSelectCroner,ret=>{retcode=ret.detailedResult},isDisableAllTrace);pt2&&(retPt2=mxcad2.doc2cad1(pt2));break}return detailedResult&&detailedResult(retcode),new Promise(resolve=>{retcode==mxdraw.DetailedResult.kEcsIn||retcode==mxdraw.DetailedResult.kNewCommadIn||retcode==mxdraw.DetailedResult.kUnknown?resolve(null):resolve(pt1&&retPt2?{pt1,pt2:retPt2}:null)})}getMcDbEntitysBoundingBox(aryId){let minPt,maxPt;if(aryId.forEach(val=>{let ent=val.getMcDbEntity();if(ent==null)return;let bound=ent.getBoundingBox();!bound.ret||(!minPt||!maxPt?(minPt=new THREE.Vector3(bound.minPt.x,bound.minPt.y,0),maxPt=new THREE.Vector3(bound.maxPt.x,bound.maxPt.y,0)):(minPt.x>bound.minPt.x&&(minPt.x=bound.minPt.x),minPt.y>bound.minPt.y&&(minPt.y=bound.minPt.y),maxPt.x<bound.maxPt.x&&(maxPt.x=bound.maxPt.x),maxPt.y<bound.maxPt.y&&(maxPt.y=bound.maxPt.y)))}),minPt&&maxPt)return{minPt:new McGePoint3d(minPt),maxPt:new McGePoint3d(maxPt)}}calcBulge(pt1,pt2,pt3){return{val:this.imp.calcBulge(pt1.imp,pt2.imp,pt3.imp),ret:exports2.MxCpp.getCallResult()==0}}builderHatchFromPoint(pt){let imphatch=this.imp.builderHatchFromPoint(pt.x,pt.y);return imphatch.isNull()?(exports2.MxCpp.App.destroyObject(imphatch),null):new McDbHatch(imphatch)}}let MxCADUtility=new MxCADUtilityClass;var MxCADSelectionSetStatus=(MxCADSelectionSetStatus2=>(MxCADSelectionSetStatus2[MxCADSelectionSetStatus2.kSelected=0]="kSelected",MxCADSelectionSetStatus2[MxCADSelectionSetStatus2.kNone=1]="kNone",MxCADSelectionSetStatus2[MxCADSelectionSetStatus2.kCanceled=2]="kCanceled",MxCADSelectionSetStatus2[MxCADSelectionSetStatus2.kRejected=3]="kRejected",MxCADSelectionSetStatus2[MxCADSelectionSetStatus2.kKeyword=4]="kKeyword",MxCADSelectionSetStatus2))(MxCADSelectionSetStatus||{});class MxCADSelectionSet extends McRxObject{isWhileSelect=!0;isSelectHighlight=!0;selectPt1=new McGePoint3d;selectPt2=new McGePoint3d;constructor(){super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.McDrawSelSet)}getSelectPoint(){return{pt1:this.selectPt1,pt2:this.selectPt2}}allSelect(filter=null){return this.imp.allSelect(getFilterImp(filter))}pointSelect(dX,dY,filter=null,dTol=-1){return this.imp.pointSelect(dX,dY,getFilterImp(filter),dTol)}crossingSelect(dX1,dY1,dX2,dY2,filter=null){return this.imp.crossingSelect(dX1,dY1,dX2,dY2,getFilterImp(filter))}count(){return this.imp.count()}item(lItem){return new McObjectId(this.imp.item(lItem),McObjectIdType.kMxCAD)}forEach(call){let iCount=this.imp.count();for(let i=0;i<iCount;i++)call(this.item(i))}getIds(){let ret=[],iCount=this.imp.count();for(let i=0;i<iCount;i++)ret.push(this.item(i));return ret}async userSelect(strPrompt,filter=null){this.selectPt1=new McGePoint3d,this.selectPt2=new McGePoint3d;let getPoint=new mxdraw.MrxDbgUiPrPoint;strPrompt&&getPoint.setMessage(strPrompt),getPoint.setCursorType(mxdraw.MxCursorType.kRect),getPoint.setDynamicInputType(mxdraw.DynamicInputType.kDynTip),getPoint.disableAllTrace();let retcode=0,filterImp=getFilterImp(filter),mxcad2=exports2.MxCpp.getCurrentMxCAD();for(;;){getPoint.setDynamicInputType(mxdraw.DynamicInputType.kDynTip);let pt1=await getPoint.go();if(getPoint.clearLastInputPoint(),retcode=getPoint.getDetailedResult(),!pt1)break;let pt1CAD=mxcad2.doc2cad1(pt1);if(this.imp.userPointSelect(pt1CAD.x,pt1CAD.y,filterImp,this.isSelectHighlight)==0){if(this.selectPt1.copy(pt1CAD),this.selectPt2.copy(pt1CAD),this.isWhileSelect)continue;break}let pt2=await mxdraw.MrxDbgUtils.getCorner(pt1,strPrompt,!0,ret=>{retcode=ret.detailedResult});if(!pt2)break;let pt2CAD=mxcad2.doc2cad1(pt2);if(this.imp.userSelect(pt1CAD.x,pt1CAD.y,pt2CAD.x,pt2CAD.y,filterImp,this.isSelectHighlight),this.selectPt1.copy(pt1CAD),this.selectPt2.copy(pt2CAD),!this.isWhileSelect)break}return this.isSelectHighlight&&this.imp.highlightEntity(!1),retcode==mxdraw.DetailedResult.kEcsIn||retcode==mxdraw.DetailedResult.kNewCommadIn||retcode==mxdraw.DetailedResult.kUnknown?new Promise(resolve=>{resolve(!1)}):new Promise(resolve=>{resolve(!0)})}}class MxCADUiPrBase{imp;mxobj;constructor(imp){this.imp=imp,this.mxobj=mxdraw.MxFun.getCurrentDraw()}doc2cad1(pt){return new McGePoint3d(pt.x,pt.y,pt.z)}doc2cad2(x,y,z){return new McGePoint3d(x,y,z)}cad2doc1(pt){return new THREE.Vector3(pt.x,pt.y,pt.z)}cad2doc2(x,y,z){return new THREE.Vector3(x,y,z)}keyWords(){return this.imp.keyWords()}setKeyWords(keyWordList){this.imp.setKeyWords(keyWordList)}clearLastInputPoint(){this.imp.clearLastInputPoint()}setLastInputPoint(pt){this.imp.setLastInputPoint(this.cad2doc1(pt))}message(){return this.imp.message()}setMessage(message){this.imp.setMessage(message)}keyWordPicked(){return this.imp.keyWordPicked()}isKeyWordPicked(matchKeyWord){return this.imp.isKeyWordPicked(matchKeyWord)}setUserDraw(pDraw){let myThis=this;this.imp.setUserDraw((pt,pWorldDraw)=>{pDraw(myThis.doc2cad1(pt),pWorldDraw)})}getDetailedResult(){return this.imp.getDetailedResult()}getStatus(){return this.imp.getStatus()}drawReserve(callAddEntity){this.imp.drawReserve(callAddEntity)}setInputToucheType(toucheType){this.imp.setInputToucheType(toucheType)}getInputToucheType(){return this.imp.getInputToucheType()}setCursorType(type){this.imp.setCursorType(type)}getCursorType(){return this.imp.getCursorType()}setDynamicInputType(type){this.imp.setDynamicInputType(type)}getDynamicInputType(){return this.imp.getDynamicInputType()}isDisableDynInput(){return this.imp.isDisableDynInput()}setDisableDynInput(isDisable){this.imp.setDisableDynInput(isDisable)}setDisableOsnap(isDisable){this.imp.setDisableOsnap(isDisable)}isDisableOsnap(){return this.imp.isDisableOsnap()}setDisableDynamicTrace(isDisable){this.imp.setDisableDynamicTrace(isDisable)}isDisableDynamicTrace(){return this.imp.isDisableDynamicTrace()}setDisablePolarAxisTrace(isDisable){this.imp.setDisablePolarAxisTrace(isDisable)}isDisablePolarAxisTrace(){return this.imp.isDisablePolarAxisTrace()}setDisableGridTrace(isDisable){this.imp.setDisableGridTrace(isDisable)}isDisableGridTrace(){return this.imp.isDisableGridTrace()}setDisableOrthoTrace(isDisable){this.imp.setDisableOrthoTrace(isDisable)}isDisableOrthoTrace(){return this.imp.isDisableOrtho()}disableAllTrace(isDisable=!0){this.imp.disableAllTrace(isDisable)}userInputControls(){return this.imp.userInputControls()}setUserInputControls(contros){this.imp.setUserInputControls(contros)}}class MxCADUiPrPoint extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrPoint)}go(){return new Promise(resolve=>{this.imp.go(status=>{status!=0?resolve(null):resolve(this.doc2cad1(this.imp.value()))})})}value(){return this.doc2cad1(this.imp.value())}getDocValue(){return new McGePoint3d(this.imp.value())}basePt(){return this.doc2cad1(this.imp.basePt())}setBasePt(basePt){this.imp.setBasePt(this.cad2doc1(basePt)),this.imp.setUseBasePt(!0)}setUseBasePt(useIt){this.imp.setUseBasePt(useIt)}}class MxCADUiPrDist extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrDist)}value(){return this.imp.value()}basePt(){return this.doc2cad1(this.imp.basePt())}setBasePt(basePt){this.imp.setBasePt(this.cad2doc1(basePt)),this.imp.setUseBasePt(!0)}setUseBasePt(useIt){return this.imp.setUseBasePt(useIt)}go(){return this.imp.go()}}class MxCADUiPrAngle extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrAngle)}value(){return this.imp.value()}basePt(){return this.doc2cad1(this.imp.basePt())}setBasePt(basePt){this.imp.setBasePt(this.cad2doc1(basePt)),this.imp.setUseBasePt(!0)}setUseBasePt(useIt){return this.imp.setUseBasePt(useIt)}go(){return this.imp.go()}}class MxCADUiPrInt extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrInt)}value(){return this.imp.value()}go(){return this.imp.go()}}class MxCADUiPrKeyWord extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrKeyWord)}go(){return this.imp.go()}}class MxCADUiPrString extends MxCADUiPrBase{constructor(){super(new mxdraw.MrxDbgUiPrString),this.setDynamicInputType(mxdraw.DynamicInputType.kNoInput),this.disableAllTrace()}value(){return this.imp.value()}go(){return this.imp.go()}}class MxCADUiPrEntity extends MxCADUiPrBase{filter;id=new McObjectId;constructor(){super(new mxdraw.MrxDbgUiPrPoint),this.setCursorType(mxdraw.MxCursorType.kRect),this.setDynamicInputType(mxdraw.DynamicInputType.kDynTip),this.disableAllTrace()}setFilter(filter){this.filter=filter}getFilter(){return this.filter}go(){return new Promise(resolve=>{let myThis=this;this.imp.go(status=>{if(myThis.clearLastInputPoint(),status!=0)resolve(new McObjectId);else{let pt=myThis.imp.value(),ptCAD=myThis.doc2cad1(pt);myThis.id=MxCADUtility.findEntAtPoint(ptCAD.x,ptCAD.y,ptCAD.z,-1,myThis.filter),resolve(myThis.id)}})})}pickPoint(){return this.doc2cad1(this.imp.value())}value(){return this.id}getDocPickPoint(){return new McGePoint3d(this.imp.value())}}var McObjectIdType=(McObjectIdType2=>(McObjectIdType2[McObjectIdType2.kMxCAD=0]="kMxCAD",McObjectIdType2[McObjectIdType2.kMxDraw=1]="kMxDraw",McObjectIdType2[McObjectIdType2.kInvalid=2]="kInvalid",McObjectIdType2))(McObjectIdType||{});class McObjectId{id;type;constructor(id=0,type=2){this.id=id,id?type==2?this.type=0:this.type=type:this.type=2}isValid(){return this.type!=2&&this.id!=0}isNull(){return this.type==2||this.id==0}isErase(){return this.isValid()&&this.type==0&&this.id!=0?exports2.MxCpp.App.getImp().isObjectEraseSataus(this.id):!1}erase(isErase=!0){!this.isValid()||(this.type==1?mxdraw.MxFun.getCurrentDraw().eraseMxEntity(this.id):this.type==0&&MxCADUtility.eraseObject(this.id,isErase))}getMcDbObject(){return this.isValid()&&this.type==0?exports2.MxCpp.App.objectIdToObject(this.id):null}isKindOf(className){return this.isValid()&&this.type==0?exports2.MxCpp.App.objectIdIsKindOf(this.id,className):!1}getMcDbEntity(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbEntity")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbCurve(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbCurve")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbBlockTableRecord(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbBlockTableRecord")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbLayerTableRecord(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbLayerTableRecord")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbLinetypeTableRecord(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbLinetypeTableRecord")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbTextStyleTableRecord(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbTextStyleTableRecord")?exports2.MxCpp.App.objectIdToObject(this.id):null}getMcDbDimension(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbDimension")?exports2.MxCpp.App.objectIdToObject(this.id):null}clone(){if(!this.isValid())return null;if(this.type==0){let imp=exports2.MxCpp.App.getImp().ObjectIdToMdObject(this.id);if(!imp)return null;let clonobjImp=imp.Clone();return exports2.MxCpp.App.destroyObject(imp),exports2.MxCpp.App.createCloneObject(clonobjImp)}return null}getObjectName(){if(this.type==0)return exports2.MxCpp.App.getImp().ObjectIdToObjectName(this.id);if(this.type==1){let ent=mxdraw.MxFun.getCurrentDraw().getMxEntity(this.id);if(ent)return ent.getTypeName()}return""}getMxDbEntity(){return this.isValid()&&this.type==1?mxdraw.MxFun.getCurrentDraw().getMxEntity(this.id):null}getMcDbRasterImageDef(){return this.isValid()&&this.type==0&&exports2.MxCpp.App.objectIdIsKindOf(this.id,"McDbRasterImageDef")?exports2.MxCpp.App.objectIdToObject(this.id):null}}class McDbObject extends McRxObject{constructor(imp){super(imp)}getObjectID(){return new McObjectId(this.imp.GetObjectID(),0)}erase(){return this.imp.Erase()}isErased(){return this.imp.isErased()}unErase(){return this.imp.unErase()}clone(){let clonobjImp=this.imp.Clone();return exports2.MxCpp.App.createCloneObject(clonobjImp)}getHandle(){return this.imp.GetHandle()}getDatabase(){return new McDbDatabase(this.imp.GetDatabase())}getOwnerID(){return this.imp.GetOwnerID()}}class McDbObjectArray{aryVal=[];constructor(imp){if(imp){let i=0,len=imp.length();for(;i<len;i++){let objimp=imp.release(i),obj=exports2.MxCpp.App.createCloneObject(objimp);obj!=null&&this.aryVal.push(obj)}exports2.MxCpp.App.destroyObject(imp)}}forEach(call){let iCount=this.aryVal.length;for(let i=0;i<iCount;i++)call(this.aryVal[i],i)}length(){return this.aryVal.length}empty(){return this.aryVal.length==0}}exports2.McDb=void 0,(McDb2=>{(TextHorzMode2=>{TextHorzMode2[TextHorzMode2.kTextLeft=0]="kTextLeft",TextHorzMode2[TextHorzMode2.kTextCenter=1]="kTextCenter",TextHorzMode2[TextHorzMode2.kTextRight=2]="kTextRight",TextHorzMode2[TextHorzMode2.kTextAlign=3]="kTextAlign",TextHorzMode2[TextHorzMode2.kTextMid=4]="kTextMid",TextHorzMode2[TextHorzMode2.kTextFit=5]="kTextFit"})(McDb2.TextHorzMode||(McDb2.TextHorzMode={})),(Intersect2=>{Intersect2[Intersect2.kOnBothOperands=0]="kOnBothOperands",Intersect2[Intersect2.kExtendThis=1]="kExtendThis",Intersect2[Intersect2.kExtendArg=2]="kExtendArg",Intersect2[Intersect2.kExtendBoth=3]="kExtendBoth"})(McDb2.Intersect||(McDb2.Intersect={})),(TextVertMode2=>{TextVertMode2[TextVertMode2.kTextBase=0]="kTextBase",TextVertMode2[TextVertMode2.kTextBottom=1]="kTextBottom",TextVertMode2[TextVertMode2.kTextVertMid=2]="kTextVertMid",TextVertMode2[TextVertMode2.kTextTop=3]="kTextTop"})(McDb2.TextVertMode||(McDb2.TextVertMode={})),(AttachmentPoint2=>{AttachmentPoint2[AttachmentPoint2.kTopLeft=1]="kTopLeft",AttachmentPoint2[AttachmentPoint2.kTopCenter=2]="kTopCenter",AttachmentPoint2[AttachmentPoint2.kTopRight=3]="kTopRight",AttachmentPoint2[AttachmentPoint2.kMiddleLeft=4]="kMiddleLeft",AttachmentPoint2[AttachmentPoint2.kMiddleCenter=5]="kMiddleCenter",AttachmentPoint2[AttachmentPoint2.kMiddleRight=6]="kMiddleRight",AttachmentPoint2[AttachmentPoint2.kBottomLeft=7]="kBottomLeft",AttachmentPoint2[AttachmentPoint2.kBottomCenter=8]="kBottomCenter",AttachmentPoint2[AttachmentPoint2.kBottomRight=9]="kBottomRight",AttachmentPoint2[AttachmentPoint2.kBaseLeft=10]="kBaseLeft",AttachmentPoint2[AttachmentPoint2.kBaseCenter=11]="kBaseCenter",AttachmentPoint2[AttachmentPoint2.kBaseRight=12]="kBaseRight",AttachmentPoint2[AttachmentPoint2.kBaseAlign=13]="kBaseAlign",AttachmentPoint2[AttachmentPoint2.kBottomAlign=14]="kBottomAlign",AttachmentPoint2[AttachmentPoint2.kMiddleAlign=15]="kMiddleAlign",AttachmentPoint2[AttachmentPoint2.kTopAlign=16]="kTopAlign",AttachmentPoint2[AttachmentPoint2.kBaseFit=17]="kBaseFit",AttachmentPoint2[AttachmentPoint2.kBottomFit=18]="kBottomFit",AttachmentPoint2[AttachmentPoint2.kMiddleFit=19]="kMiddleFit",AttachmentPoint2[AttachmentPoint2.kTopFit=20]="kTopFit",AttachmentPoint2[AttachmentPoint2.kBaseMid=21]="kBaseMid",AttachmentPoint2[AttachmentPoint2.kBottomMid=22]="kBottomMid",AttachmentPoint2[AttachmentPoint2.kMiddleMid=23]="kMiddleMid",AttachmentPoint2[AttachmentPoint2.kTopMid=24]="kTopMid"})(McDb2.AttachmentPoint||(McDb2.AttachmentPoint={})),(LineWeight2=>{LineWeight2[LineWeight2.kLnWt000=0]="kLnWt000",LineWeight2[LineWeight2.kLnWt005=5]="kLnWt005",LineWeight2[LineWeight2.kLnWt009=9]="kLnWt009",LineWeight2[LineWeight2.kLnWt013=13]="kLnWt013",LineWeight2[LineWeight2.kLnWt015=15]="kLnWt015",LineWeight2[LineWeight2.kLnWt018=18]="kLnWt018",LineWeight2[LineWeight2.kLnWt020=20]="kLnWt020",LineWeight2[LineWeight2.kLnWt025=25]="kLnWt025",LineWeight2[LineWeight2.kLnWt030=30]="kLnWt030",LineWeight2[LineWeight2.kLnWt035=35]="kLnWt035",LineWeight2[LineWeight2.kLnWt040=40]="kLnWt040",LineWeight2[LineWeight2.kLnWt050=50]="kLnWt050",LineWeight2[LineWeight2.kLnWt053=53]="kLnWt053",LineWeight2[LineWeight2.kLnWt060=60]="kLnWt060",LineWeight2[LineWeight2.kLnWt070=70]="kLnWt070",LineWeight2[LineWeight2.kLnWt080=80]="kLnWt080",LineWeight2[LineWeight2.kLnWt090=90]="kLnWt090",LineWeight2[LineWeight2.kLnWt100=100]="kLnWt100",LineWeight2[LineWeight2.kLnWt106=106]="kLnWt106",LineWeight2[LineWeight2.kLnWt120=120]="kLnWt120",LineWeight2[LineWeight2.kLnWt140=140]="kLnWt140",LineWeight2[LineWeight2.kLnWt158=158]="kLnWt158",LineWeight2[LineWeight2.kLnWt200=200]="kLnWt200",LineWeight2[LineWeight2.kLnWt211=211]="kLnWt211",LineWeight2[LineWeight2.kLnWtByLayer=-1]="kLnWtByLayer",LineWeight2[LineWeight2.kLnWtByBlock=-2]="kLnWtByBlock",LineWeight2[LineWeight2.kLnWtByLwDefault=-3]="kLnWtByLwDefault"})(McDb2.LineWeight||(McDb2.LineWeight={})),(HatchLoopType2=>{HatchLoopType2[HatchLoopType2.kDefault=0]="kDefault",HatchLoopType2[HatchLoopType2.kExternal=1]="kExternal",HatchLoopType2[HatchLoopType2.kPolyline=2]="kPolyline",HatchLoopType2[HatchLoopType2.kDerived=4]="kDerived",HatchLoopType2[HatchLoopType2.kTextbox=8]="kTextbox",HatchLoopType2[HatchLoopType2.kOutermost=16]="kOutermost",HatchLoopType2[HatchLoopType2.kNotClosed=32]="kNotClosed",HatchLoopType2[HatchLoopType2.kSelfIntersecting=64]="kSelfIntersecting",HatchLoopType2[HatchLoopType2.kTextIsland=128]="kTextIsland"})(McDb2.HatchLoopType||(McDb2.HatchLoopType={})),(HatchEdgeType2=>{HatchEdgeType2[HatchEdgeType2.kLine=1]="kLine",HatchEdgeType2[HatchEdgeType2.kCirArc=2]="kCirArc",HatchEdgeType2[HatchEdgeType2.kEllArc=3]="kEllArc",HatchEdgeType2[HatchEdgeType2.kSpline=4]="kSpline"})(McDb2.HatchEdgeType||(McDb2.HatchEdgeType={})),(HatchPatternType2=>{HatchPatternType2[HatchPatternType2.kUserDefined=0]="kUserDefined",HatchPatternType2[HatchPatternType2.kPreDefined=1]="kPreDefined",HatchPatternType2[HatchPatternType2.kCustomDefined=2]="kCustomDefined"})(McDb2.HatchPatternType||(McDb2.HatchPatternType={})),(HatchStyle2=>{HatchStyle2[HatchStyle2.kNormal=0]="kNormal",HatchStyle2[HatchStyle2.kOuter=1]="kOuter",HatchStyle2[HatchStyle2.kIgnore=2]="kIgnore"})(McDb2.HatchStyle||(McDb2.HatchStyle={})),(ClipBoundaryType2=>{ClipBoundaryType2[ClipBoundaryType2.kInvalid=0]="kInvalid",ClipBoundaryType2[ClipBoundaryType2.kRect=1]="kRect",ClipBoundaryType2[ClipBoundaryType2.kPoly=2]="kPoly"})(McDb2.ClipBoundaryType||(McDb2.ClipBoundaryType={}))})(exports2.McDb||(exports2.McDb={}));class McCmColor{imp;constructor(red,green,blue){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdCmColor,red instanceof Object?(this.imp.red=red.red,this.imp.green=red.green,this.imp.blue=red.blue,this.imp.method=red.method,this.imp.n=red.n,this.imp.colorIndex=red.colorIndex):typeof red=="number"&&typeof green=="number"&&typeof blue=="number"&&this.imp.setRGB(red,green,blue)}getImp(){return this.imp}copy(val){return this.imp.red=val.imp.red,this.imp.green=val.imp.green,this.imp.blue=val.imp.blue,this.imp.method=val.imp.method,this.imp.n=val.imp.n,this.imp.colorIndex=val.imp.colorIndex,this}clone(){return new McCmColor(this.imp)}setColorIndex(colorIndex){this.imp.setColorIndex(colorIndex)}setRGB(red,green,blue){this.imp.setRGB(red,green,blue)}get red(){return this.imp.red}set red(val){this.imp.red=val}get green(){return this.imp.green}set green(val){this.imp.green=val}get blue(){return this.imp.blue}set blue(val){this.imp.blue=val}get n(){return this.imp.n}set n(val){this.imp.n=val}get method(){return this.imp.method}set method(val){this.imp.method=val}get colorIndex(){return this.imp.colorIndex}set colorIndex(val){this.imp.colorIndex=val}getColorString(){return MxG2312Obj.decodeFromGb2312(this.imp.getColorString())}getColorValue(layerId,blkRefId){let lId1=0;layerId?.type==McObjectIdType.kMxCAD&&(lId1=layerId.id);let lId2=0;return blkRefId?.type==McObjectIdType.kMxCAD&&(lId2=blkRefId.id),this.imp.getColorValue(lId1,lId2)}}class McDbLinetypeTableRecord extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbLinetypeTableRecord)}get name(){return MxG2312Obj.decodeFromGb2312(this.imp.getName())}set name(val){this.imp.setName(MxG2312Obj.encodeToGb2312(val))}get numDashes(){return this.imp.numDashes()}set numDashes(val){this.imp.setNumDashes(val)}dashLengthAt(index){return this.imp.dashLengthAt(index)}setDashLengthAt(index,value){return this.imp.setDashLengthAt(index,value)}get comments(){return MxG2312Obj.decodeFromGb2312(this.imp.comments())}set comments(val){this.imp.setComments(MxG2312Obj.encodeToGb2312(val))}shapeStyleAt(index){return this.imp.shapeStyleAt(index)}setShapeStyleAt(index,value){return this.imp.setShapeStyleAt(index,value)}shapeNumberAt(index){return this.imp.shapeNumberAt(index)}setShapeNumberAt(index,shapeNumber){return this.imp.setShapeNumberAt(index,shapeNumber)}shapeOffsetAt(index){return new McGeVector3d(this.imp.shapeOffsetAt(index))}setShapeOffsetAt(index,offset){return this.imp.setShapeOffsetAt(index,offset.imp)}shapeScaleAt(index){return this.imp.shapeScaleAt(index)}setShapeScaleAt(index,scale){return this.imp.setShapeScaleAt(index,scale)}get isScaledToFit(){return this.imp.isScaledToFit()}set isScaledToFit(scaledToFit){this.imp.setIsScaledToFit(scaledToFit)}shapeIsUcsOrientedAt(index){return this.imp.shapeIsUcsOrientedAt(index)}setShapeIsUcsOrientedAt(index,isUcsOriented){return this.imp.setShapeScaleAt(index,isUcsOriented)}shapeRotationAt(index){return this.imp.shapeRotationAt(index)}setShapeRotationAt(index,rotation){return this.imp.setShapeRotationAt(index,rotation)}textAt(index){return MxG2312Obj.decodeFromGb2312(this.imp.textAt(index))}setTextAt(index,text){return this.imp.setTextAt(index,MxG2312Obj.encodeToGb2312(text))}}class McDbTextStyleTableRecord extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbTextStyleTableRecord)}get name(){return MxG2312Obj.decodeFromGb2312(this.imp.getName())}set name(val){this.imp.setName(MxG2312Obj.encodeToGb2312(val))}get isShapeFile(){return this.imp.isShapeFile()}set isShapeFile(val){this.imp.setIsShapeFile(val)}get isVertical(){return this.imp.isVertical()}set isVertical(val){this.imp.setIsVertical(val)}get textSize(){return this.imp.textSize()}set textSize(val){this.imp.setTextSize(val)}get xScale(){return this.imp.xScale()}set xScale(val){this.imp.setXScale(val)}get obliquingAngle(){return this.imp.obliquingAngle()}set obliquingAngle(val){this.imp.setObliquingAngle(val)}get flagBits(){return this.imp.flagBits()}set flagBits(val){this.imp.setFlagBits(val)}get fileName(){return MxG2312Obj.decodeFromGb2312(this.imp.fileName())}set fileName(val){this.imp.setFileName(MxG2312Obj.encodeToGb2312(val))}get bigFontFileName(){return MxG2312Obj.decodeFromGb2312(this.imp.bigFontFileName())}set bigFontFileName(val){this.imp.setBigFontFileName(MxG2312Obj.encodeToGb2312(val))}setFont(sTypeface,bold,italic,charset,pitchAndFamily){return this.imp.setFont(MxG2312Obj.encodeToGb2312(sTypeface),bold,italic,charset,pitchAndFamily)}font(){let ret=this.imp.font();if(!ret)return{sTypeface:"",bold:!1,italic:!1,charset:0,pitchAndFamily:0};let sTypeface=ret.AtString(0),bold=ret.Atlong(1)!=0,italic=ret.Atlong(2)!=0,charset=ret.Atlong(3),pitchAndFamily=ret.Atlong(4);return{sTypeface,bold,italic,charset,pitchAndFamily}}}class McDbLayerTableRecord extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbLayerTableRecord)}get name(){return MxG2312Obj.decodeFromGb2312(this.imp.getName())}set name(val){this.imp.setName(MxG2312Obj.encodeToGb2312(val))}get isFrozen(){return this.imp.isFrozen()}set isFrozen(val){this.imp.setIsFrozen(val)}get isOff(){return this.imp.isOff()}set isOff(val){this.imp.setIsOff(val)}get isLocked(){return this.imp.isLocked()}set isLocked(val){this.imp.setIsLocked(val)}get color(){return new McCmColor(this.imp.color())}set color(val){this.imp.setColor(val.getImp())}get linetypeObjectId(){return new McObjectId(this.imp.linetypeObjectId(),McObjectIdType.kMxCAD)}set linetypeObjectId(val){this.imp.setLinetypeObjectId(val.id)}get lineWeight(){return this.imp.lineWeight()}set lineWeight(val){this.imp.setLineWeight(val)}}class McDbLayerTable extends McDbObject{constructor(imp){super(imp)}getAllRecordId(skipDeleted=!0){let ret=[],aryId=this.imp.getAllRecordId(skipDeleted),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}add(rec){return new McObjectId(this.imp.add(rec.getImp()),McObjectIdType.kMxCAD)}get(sName,skipDeleted=!0){let sHex=MxG2312Obj.encodeToGb2312(sName);return new McObjectId(this.imp.get(sHex,skipDeleted))}has(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);return this.imp.get(sHex,!0)!=0}}class McDbLinetypeTable extends McDbObject{constructor(imp){super(imp)}getAllRecordId(skipDeleted=!0){let ret=[],aryId=this.imp.getAllRecordId(skipDeleted),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}add(rec){return new McObjectId(this.imp.add(rec.getImp()),McObjectIdType.kMxCAD)}get(sName,skipDeleted=!0){let sHex=MxG2312Obj.encodeToGb2312(sName);return new McObjectId(this.imp.get(sHex,skipDeleted))}has(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);return this.imp.get(sHex,!0)!=0}}class McDbTextStyleTable extends McDbObject{constructor(imp){super(imp)}getAllRecordId(skipDeleted=!0){let ret=[],aryId=this.imp.getAllRecordId(skipDeleted),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}add(rec){return new McObjectId(this.imp.add(rec.getImp()),McObjectIdType.kMxCAD)}get(sName,skipDeleted=!0){let sHex=MxG2312Obj.encodeToGb2312(sName);return new McObjectId(this.imp.get(sHex,skipDeleted))}has(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);return this.imp.get(sHex,!0)!=0}}class McDbDatabase extends McRxObject{constructor(imp){super(imp)}getLayerTable(){return new McDbLayerTable(this.imp.GetLayerTable())}get layerTable(){return new McDbLayerTable(this.imp.GetLayerTable())}getLinetypeTable(){return new McDbLinetypeTable(this.imp.GetLinetypeTable())}get linetypeTable(){return new McDbLinetypeTable(this.imp.GetLinetypeTable())}getTextStyleTable(){return new McDbTextStyleTable(this.imp.GetTextStyleTable())}get textStyleTable(){return new McDbTextStyleTable(this.imp.GetTextStyleTable())}getBlockTable(){return new McDbBlockTable(this.imp.GetBlockTable())}get blockTable(){return new McDbBlockTable(this.imp.GetBlockTable())}get currentSpace(){return new McDbBlockTableRecord(this.imp.CurrentSpace())}getCurrentlyLineTypeScale(){return this.imp.GetCurrentlyLineTypeScale()}setCurrentlyLineTypeScale(val){return this.imp.SetCurrentlyLineTypeScale(val)}getCurrentlyLineTypeName(){let hexGb=this.imp.GetCurrentlyLineTypeName();return MxG2312Obj.decodeFromGb2312(hexGb)}setCurrentlyLineTypeName(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);this.imp.SetCurrentlyLineTypeName(sHex)}getCurrentlyLayerName(){let hexGb=this.imp.GetCurrentlyLayerName();return MxG2312Obj.decodeFromGb2312(hexGb)}setCurrentlyLayerName(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);this.imp.SetCurrentlyLayerName(sHex)}getCurrentlyTrueColor(){return new McCmColor(this.imp.GetCurrentlyTrueColor())}getCurrentlyDrawColor(){let ary=this.imp.GetCurrentlyDrawColor(),ret=new THREE.Color;return ret.setRGB(ary.at(0)/255,ary.at(1)/255,ary.at(2)/255),ret}setCurrentlyTrueColor(color){return this.imp.SetCurrentlyTrueColor(color.getImp())}getCurrentlyColorIndex(){return this.imp.GetCurrentlyColorIndex()}setCurrentlyColorIndex(colorIndex){return this.imp.SetCurrentlyColorIndex(colorIndex)}getCurrentlyTextStyleName(){let hexGb=this.imp.GetCurrentlyTextStyleName();return MxG2312Obj.decodeFromGb2312(hexGb)}setCurrentlyTextStyle(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);this.imp.SetCurrentlyTextStyle(sHex)}handleToIdIndex(sHandle){let id=this.imp.HandleToIdIndex(sHandle);return new McObjectId(id,McObjectIdType.kMxCAD)}isModifyed(){return this.imp.IsModifyed()}resetModificationStatus(){return this.imp.SetModifyed(!1)}}class McDbBlockTableRecord extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbBlockTableRecord)}appendAcDbEntity(pEntity){return new McObjectId(this.imp.appendAcDbEntity(pEntity.getImp()),McObjectIdType.kMxCAD)}getAllEntityId(skipDeleted=!0){let ret=[],aryId=this.imp.getAllEntityId(skipDeleted),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}get origin(){return new McGePoint3d(this.imp.origin())}set origin(origin){this.imp.setOrigin(origin.imp)}getBoundingBox(){let ret=this.imp.getBoundingBox();return ret.length()<2?{minPt:new McGePoint3d,maxPt:new McGePoint3d,ret:!1}:{minPt:new McGePoint3d(ret.at(0)),maxPt:new McGePoint3d(ret.at(1)),ret:!0}}invalidBoundingBoxBuffer(){this.imp.invalidBoundingBoxBuffer()}get name(){return MxG2312Obj.decodeFromGb2312(this.imp.getName())}set name(val){this.imp.setName(MxG2312Obj.encodeToGb2312(val))}}class McDbBlockTable extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbBlockTable)}getAllRecordId(skipDeleted=!0){let ret=[],aryId=this.imp.getAllRecordId(skipDeleted),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}add(rec){if(typeof rec=="string"){if(rec.length>0){let ret=this.get(rec,!1);if(ret.isValid()){let recTmp=ret.getMcDbBlockTableRecord();return recTmp&&recTmp.isErased()&&recTmp.unErase(),ret}}let tmp=new McDbBlockTableRecord;return tmp.name=rec,new McObjectId(this.imp.add(tmp.getImp()),McObjectIdType.kMxCAD)}else return new McObjectId(this.imp.add(rec.getImp()),McObjectIdType.kMxCAD)}get(sName,skipDeleted=!0){let sHex=MxG2312Obj.encodeToGb2312(sName);return new McObjectId(this.imp.get(sHex,skipDeleted))}has(sName){let sHex=MxG2312Obj.encodeToGb2312(sName);return this.imp.get(sHex,!0)!=0}}class McDbRasterImageDef extends McDbObject{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbRasterImageDef)}set sourceFileName(sPathName){this.imp.setSourceFileName(MxG2312Obj.encodeToGb2312(sPathName))}get sourceFileName(){return MxG2312Obj.decodeFromGb2312(this.imp.sourceFileName())}}class McDbEntity extends McDbObject{constructor(imp){super(imp)}explode(){let retImp=this.imp.explode();return new MxCADResbuf(retImp)}get trueColor(){return new McCmColor(this.imp.TrueColor())}set trueColor(val){this.imp.SetTrueColor(val.getImp())}get colorIndex(){return this.imp.ColorIndex()}set colorIndex(val){this.imp.SetColorIndex(val)}get layer(){return MxG2312Obj.decodeFromGb2312(this.imp.Layer())}set layer(val){this.imp.SetLayer(MxG2312Obj.encodeToGb2312(val))}get linetype(){return MxG2312Obj.decodeFromGb2312(this.imp.Linetype())}set linetype(val){this.imp.SetLinetype(MxG2312Obj.encodeToGb2312(val))}get linetypeScale(){return this.imp.LinetypeScale()}set linetypeScale(val){this.imp.SetLinetypeScale(val)}get visible(){return this.imp.Visible()}set visible(val){this.imp.SetVisible(val)}get lineweight(){return this.imp.Lineweight()}set lineweight(val){this.imp.SetLineweight(val)}get textStyle(){return MxG2312Obj.decodeFromGb2312(this.imp.TextStyle())}set textStyle(val){this.imp.SetTextStyle(MxG2312Obj.encodeToGb2312(val))}highlight(isHighlight){this.imp.Highlight(isHighlight)}move(fromPoint,toPoint){return this.imp.Move(fromPoint.imp,toPoint.imp)}rotate(basePoint,dRotationAngle){return this.imp.Rotate(basePoint.imp,dRotationAngle)}mirror(point1,point2){return this.imp.Mirror(point1.imp,point2.imp)}scaleEntity(basePoint,dScaleFactor){return this.imp.ScaleEntity(basePoint.imp,dScaleFactor)}transformBy(transformationMatrix){return this.imp.TransformBy(transformationMatrix.imp)}getBoundingBox(){let ret=this.imp.GetBoundingBox();if(ret){let retval={minPt:new McGePoint3d(ret.AtPoint(0)),maxPt:new McGePoint3d(ret.AtPoint(1)),ret:!0};return exports2.MxCpp.App.destroyObject(ret),retval}else return{minPt:new McGePoint3d,maxPt:new McGePoint3d,ret:!1}}getxData(appName=""){return new MxCADResbuf(this.imp.GetXData(MxG2312Obj.encodeToGb2312(appName)))}setxData(xdata){return this.imp.SetXData(xdata.getImp())}getxDataString(appName){let str=this.imp.GetxDataString(MxG2312Obj.encodeToGb2312(appName),0);return{val:MxG2312Obj.decodeFromGb2312(str),ret:exports2.MxCpp.getCallResult()==0}}setxDataString(appName,val){return this.imp.SetxDataString(MxG2312Obj.encodeToGb2312(appName),0,MxG2312Obj.encodeToGb2312(val))}getxDataDouble(appName){return{val:this.imp.GetxDataDouble(MxG2312Obj.encodeToGb2312(appName),0),ret:exports2.MxCpp.getCallResult()==0}}setxDataDouble(appName,val){return this.imp.SetxDataDouble(MxG2312Obj.encodeToGb2312(appName),0,val)}getxDataLong(appName){return{val:this.imp.GetxDataLong(MxG2312Obj.encodeToGb2312(appName),0),ret:exports2.MxCpp.getCallResult()==0}}setxDataLong(appName,val){return this.imp.SetxDataLong(MxG2312Obj.encodeToGb2312(appName),0,val)}getxDataPoint(appName){let retpt=this.imp.GetxDataPoint(MxG2312Obj.encodeToGb2312(appName),0),pt=new McGePoint3d;if(exports2.MxCpp.getCallResult()==0){let ret=!1;return retpt&&(pt.x=retpt.x,pt.y=retpt.y,pt.z=retpt.z,exports2.MxCpp.App.getImp().DestroyMdGePoint3d(retpt),ret=!0),{val:pt,ret}}else return{val:pt,ret:!1}}setxDataPoint(appName,val){return this.imp.SetxDataPoint(MxG2312Obj.encodeToGb2312(appName),0,val.imp)}deleteXData(appName){return this.imp.DeleteXData(MxG2312Obj.encodeToGb2312(appName))}getAllAppName(){return new McGeStringArray(this.imp.GetAllAppName())}get layerId(){return new McObjectId(this.imp.LayerId(),McObjectIdType.kMxCAD)}set layerId(id){id.type==McObjectIdType.kMxCAD&&this.imp.SetLayerId(id.id)}get linetypeId(){return new McObjectId(this.imp.LinetypeId(),McObjectIdType.kMxCAD)}set linetypeId(id){id.type==McObjectIdType.kMxCAD&&this.imp.SetLinetypeId(id.id)}get textStyleId(){return new McObjectId(this.imp.TextStyleId(),McObjectIdType.kMxCAD)}set textStyleId(id){id.type==McObjectIdType.kMxCAD&&this.imp.SetTextStyleId(id.id)}IntersectWith(intersectObject,exOption){return new McGePoint3dArray(this.imp.IntersectWith(intersectObject.imp,exOption))}getArea(){return{val:this.imp.getArea(),ret:exports2.MxCpp.getCallResult()==0}}disableDisplay(isDisable){this.imp.disableUpdateDisplay(isDisable)}}class McDbCurve extends McDbEntity{constructor(imp){super(imp)}getStartParam(){return{val:this.imp.getStartParam(),ret:exports2.MxCpp.getCallResult()==0}}getEndParam(){return{val:this.imp.getEndParam(),ret:exports2.MxCpp.getCallResult()==0}}getDistAtParam(param){return{val:this.imp.getDistAtParam(param),ret:exports2.MxCpp.getCallResult()==0}}getParamAtDist(dist){return{val:this.imp.getParamAtDist(dist),ret:exports2.MxCpp.getCallResult()==0}}getDistAtPoint(pt){return{val:this.imp.getDistAtPoint(pt.imp),ret:exports2.MxCpp.getCallResult()==0}}getPointAtDist(dist){return{val:new McGePoint3d(this.imp.getPointAtDist(dist)),ret:exports2.MxCpp.getCallResult()==0}}getStartPoint(){return{val:new McGePoint3d(this.imp.getStartPoint()),ret:exports2.MxCpp.getCallResult()==0}}getEndPoint(){return{val:new McGePoint3d(this.imp.getStartPoint()),ret:exports2.MxCpp.getCallResult()==0}}getPointAtParam(param){return{val:new McGePoint3d(this.imp.getPointAtParam(param)),ret:exports2.MxCpp.getCallResult()==0}}getParamAtPoint(pt){return{val:this.imp.getParamAtPoint(pt.imp),ret:exports2.MxCpp.getCallResult()==0}}getFirstDerivFromParam(param){return{val:new McGeVector3d(this.imp.getFirstDeriv(param)),ret:exports2.MxCpp.getCallResult()==0}}getFirstDeriv(pt){return{val:new McGeVector3d(this.imp.getFirstDerivEx(pt.imp)),ret:exports2.MxCpp.getCallResult()==0}}getClosestPointTo(givenPnt,isExtend){return{val:new McGePoint3d(this.imp.getClosestPointTo(givenPnt.imp,isExtend)),ret:exports2.MxCpp.getCallResult()==0}}offsetCurves(dOffsetDist,ptOffsetRef){let retImp=this.imp.offsetCurves(dOffsetDist,ptOffsetRef.imp);return new McDbObjectArray(retImp)}splitCurves(pts){let aryParam=new MxCADResbuf;pts.forEach(val=>{aryParam.AddPoint(val)});let retImp=this.imp.splitCurves(aryParam.getImp());return new McDbObjectArray(retImp)}splitCurvesFromParam(params){let aryParam=new MxCADResbuf;params.forEach(val=>{aryParam.AddDouble(val)});let retImp=this.imp.splitCurves(aryParam.getImp());return new McDbObjectArray(retImp)}getSamplePoints(dApproxEps){let retImp=this.imp.getSamplePoints(dApproxEps);return new MxCADResbuf(retImp)}getLength(){return{val:this.imp.getLength(),ret:exports2.MxCpp.getCallResult()==0}}}class McDbLine extends McDbCurve{constructor(x1,y1,z1,x2,y2,z2){x1 instanceof Object?x1 instanceof McGePoint3d?(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbLine),y1 instanceof McGePoint3d&&(this.startPoint=x1,this.endPoint=y1)):super(x1):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbLine),this.startPoint=new McGePoint3d(x1,y1,z1),this.endPoint=new McGePoint3d(x2,y2,z2))}get startPoint(){return new McGePoint3d(this.imp.startPoint())}set startPoint(pt){this.imp.setStartPoint(pt.imp)}get endPoint(){return new McGePoint3d(this.imp.endPoint())}set endPoint(pt){this.imp.setEndPoint(pt.imp)}}class McDbText extends McDbEntity{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbText)}get position(){return new McGePoint3d(this.imp.position())}set position(pt){this.imp.setPosition(pt.imp)}get alignmentPoint(){return new McGePoint3d(this.imp.position())}set alignmentPoint(pt){this.imp.setAlignmentPoint(pt.imp)}get oblique(){return this.imp.oblique()}set oblique(val){this.imp.setOblique(val)}get rotation(){return this.imp.rotation()}set rotation(pt){this.imp.setRotation(pt)}get height(){return this.imp.height()}set height(val){this.imp.setHeight(val)}get widthFactor(){return this.imp.widthFactor()}set widthFactor(val){this.imp.setWidthFactor(val)}get textString(){return MxG2312Obj.decodeFromGb2312(this.imp.textString())}set textString(val){this.imp.setTextString(MxG2312Obj.encodeToGb2312(val))}get horizontalMode(){return this.imp.horizontalMode()}set horizontalMode(val){this.imp.setHorizontalMode(val)}get verticalMode(){return this.imp.verticalMode()}set verticalMode(val){this.imp.setVerticalMode(val)}}class McDbAttribute extends McDbText{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbAttribute)}get tag(){return MxG2312Obj.decodeFromGb2312(this.imp.tag())}set tag(val){this.imp.setTag(MxG2312Obj.encodeToGb2312(val))}get isInvisible(){return this.imp.isInvisible()}set isInvisible(val){this.imp.setInvisible(val)}}class McDbAttributeDefinition extends McDbText{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbAttributeDefinition)}get tag(){return MxG2312Obj.decodeFromGb2312(this.imp.tag())}set tag(val){this.imp.setTag(MxG2312Obj.encodeToGb2312(val))}get isInvisible(){return this.imp.isInvisible()}set isInvisible(val){this.imp.setInvisible(val)}get prompt(){return MxG2312Obj.decodeFromGb2312(this.imp.prompt())}set prompt(val){this.imp.setPrompt(MxG2312Obj.encodeToGb2312(val))}get isConstant(){return this.imp.isConstant()}set isConstant(val){this.imp.setConstant(val)}get isVerifiable(){return this.imp.isVerifiable()}set isVerifiable(val){this.imp.setVerifiable(val)}get isPreset(){return this.imp.isPreset()}set isPreset(val){this.imp.setPreset(val)}}class McDbMText extends McDbEntity{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbMText)}get location(){return new McGePoint3d(this.imp.location())}set location(pt){this.imp.setLocation(pt.imp)}get rotation(){return this.imp.rotation()}set rotation(val){this.imp.setRotation(val)}get width(){return this.imp.width()}set width(val){this.imp.setWidth(val)}get textHeight(){return this.imp.textHeight()}set textHeight(val){this.imp.setTextHeight(val)}get attachment(){return this.imp.attachment()}set attachment(val){this.imp.setAttachment(val)}get contents(){return MxG2312Obj.decodeFromGb2312(this.imp.contents())}set contents(val){this.imp.setContents(MxG2312Obj.encodeToGb2312(val))}}class McDbCircle extends McDbCurve{constructor(x,y,z,radius){x instanceof Object?super(x):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbCircle),typeof x=="number"&&(this.imp.setCenter(new McGePoint3d(x,y,z).imp),this.imp.setRadius(radius)))}setCenter(x,y,z){this.imp.setCenter(new McGePoint3d(x,y,z).imp)}get center(){return new McGePoint3d(this.imp.center())}set center(pt){this.imp.setCenter(pt.imp)}get radius(){return this.imp.radius()}set radius(r){this.imp.setRadius(r)}}class McDbPolyline extends McDbCurve{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbPolyline)}get isClosed(){return this.imp.isClosed()}set isClosed(val){this.imp.setClosed(val)}get constantWidth(){return this.imp.getConstantWidth()}set constantWidth(val){this.imp.setConstantWidth(val)}addVertexAt(pt,bulge=0,startWidth=0,endWidth=0,index=0){if(pt instanceof THREE.Vector3){let tmp=new exports2.MxCpp.mxcadassemblyimp.MdGePoint3d;return tmp.x=pt.x,tmp.y=pt.y,tmp.z=pt.z,this.imp.addVertexAt(index,tmp,bulge,startWidth,endWidth)}else return this.imp.addVertexAt(index,pt.imp,bulge,startWidth,endWidth)}removeVertexAt(index){return this.imp.removeVertexAt(index)}numVerts(){return this.imp.numVerts()}getPointAt(index){return{val:new McGePoint3d(this.imp.getPointAt(index)),ret:exports2.MxCpp.getCallResult()}}getBulgeAt(index){return this.imp.getBulgeAt(index)}getWidthsAt(index){return{val1:this.imp.getStartWidthsAt(index),val2:this.imp.getEndWidthsAt(index),ret:exports2.MxCpp.getCallResult()==0}}setPointAt(index,pt){return this.imp.setPointAt(index,pt.imp)}setBulgeAt(index,bulge){return this.imp.setBulgeAt(index,bulge)}setWidthsAt(index,dStartWdith,dEntWdith){return this.imp.setWidthsAt(index,dStartWdith,dEntWdith)}}class McDbBlockReference extends McDbEntity{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbBlockReference)}get blockTableRecordId(){return new McObjectId(this.imp.blockTableRecordId(),McObjectIdType.kMxCAD)}set blockTableRecordId(val){this.imp.setBlockTableRecordId(val.id)}get position(){return new McGePoint3d(this.imp.position())}set position(pt){this.imp.setPosition(pt.imp)}get scaleFactors(){return new McGePoint3d(this.imp.scaleFactors())}set scaleFactors(val){this.imp.setScaleFactors(val.imp)}setScale(val){this.imp.setScaleFactors(new McGePoint3d(val,val,val).imp)}getScale(){return this.imp.scaleFactors().x}get rotation(){return this.imp.rotation()}set rotation(val){this.imp.setRotation(val)}get blockTransform(){return new McGeMatrix3d(this.imp.blockTransform())}set blockTransform(val){this.imp.setBlockTransform(val.imp)}get blockName(){return MxG2312Obj.decodeFromGb2312(this.imp.getBlockName())}appendAttribute(attrib){return new McObjectId(this.imp.appendAttribute(attrib.getImp()),McObjectIdType.kMxCAD)}getAllAttribute(){let ret=[],aryId=this.imp.getAllAttribute(),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}createAttribute(){return this.imp.createAttribute()}}class McDbDimension extends McDbEntity{constructor(imp){super(imp)}get textPosition(){return new McGePoint3d(this.imp.textPosition())}set textPosition(pt){this.imp.setTextPosition(pt.imp)}isUsingDefaultTextPosition(){return this.imp.isUsingDefaultTextPosition()}useSetTextPosition(){return this.imp.useSetTextPosition()}useDefaultTextPosition(){return this.imp.useDefaultTextPosition()}get elevation(){return this.imp.elevation()}set elevation(val){this.imp.setElevation(val)}get dimensionText(){return MxG2312Obj.decodeFromGb2312(this.imp.dimensionText())}set dimensionText(val){this.imp.setDimensionText(MxG2312Obj.encodeToGb2312(val))}get textRotation(){return this.imp.textRotation()}set textRotation(val){this.imp.setTextRotation(val)}get dimensionStyle(){return new McObjectId(this.imp.dimensionStyle(),McObjectIdType.kMxCAD)}set dimensionStyle(val){this.imp.setDimensionStyle(val.id)}get textAttachment(){return this.imp.textAttachment()}set textAttachment(val){this.imp.setTextAttachment(val)}get horizontalRotation(){return this.imp.horizontalRotation()}set horizontalRotation(val){this.imp.setHorizontalRotation(val)}recomputeDimBlock(){this.imp.recomputeDimBlock(!0)}getDimVarInt(iType){return this.imp.GetDimVarInt(iType)}setDimVarInt(iType,val){this.imp.SetDimVarInt(iType,val)}getDimVarDouble(iType){return this.imp.GetDimVarDouble(iType)}setDimVarDouble(iType,val){this.imp.SetDimVarDouble(iType,val)}getDimVarString(iType){return this.imp.GetDimVarString(iType)}setDimVarString(iType,val){this.imp.SetDimVarString(iType,val)}getDimVarObjectId(iType){return new McObjectId(this.imp.GetDimVarObjectId(iType),McObjectIdType.kMxCAD)}setDimVarObjectId(iType,val){this.imp.SetDimVarObjectId(iType,val.id)}GetAllText(){return new McGeStringArray(this.imp.GetAllText())}}class McDbAlignedDimension extends McDbDimension{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbAlignedDimension)}get xLine1Point(){return new McGePoint3d(this.imp.xLine1Point())}set xLine1Point(pt){this.imp.setXLine1Point(pt.imp)}get xLine2Point(){return new McGePoint3d(this.imp.xLine2Point())}set xLine2Point(pt){this.imp.setXLine2Point(pt.imp)}get dimLinePoint(){return new McGePoint3d(this.imp.dimLinePoint())}set dimLinePoint(pt){this.imp.setDimLinePoint(pt.imp)}get oblique(){return this.imp.oblique()}set oblique(val){this.imp.setOblique(val)}}class McDbRotatedDimension extends McDbDimension{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbRotatedDimension)}get xLine1Point(){return new McGePoint3d(this.imp.xLine1Point())}set xLine1Point(pt){this.imp.setXLine1Point(pt.imp)}get xLine2Point(){return new McGePoint3d(this.imp.xLine2Point())}set xLine2Point(pt){this.imp.setXLine2Point(pt.imp)}get dimLinePoint(){return new McGePoint3d(this.imp.dimLinePoint())}set dimLinePoint(pt){this.imp.setDimLinePoint(pt.imp)}get oblique(){return this.imp.oblique()}set oblique(val){this.imp.setOblique(val)}get rotation(){return this.imp.rotation()}set rotation(val){this.imp.setRotation(val)}}class McDbArc extends McDbCurve{constructor(imp){super(imp),imp||this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbArc)}setCenter(x,y,z){this.imp.setCenter(new McGePoint3d(x,y,z).imp)}get center(){return new McGePoint3d(this.imp.center())}set center(pt){this.imp.setCenter(pt.imp)}get radius(){return this.imp.radius()}set radius(r){this.imp.setRadius(r)}get startAngle(){return this.imp.startAngle()}set startAngle(r){this.imp.setStartAngle(r)}get endAngle(){return this.imp.endAngle()}set endAngle(r){this.imp.setEndAngle(r)}computeArc(dStartPointX,dStartPointY,dMidPointX,dMidPointY,dEndPointX,dEndPointY){return this.imp.computeArc(dStartPointX,dStartPointY,dMidPointX,dMidPointY,dEndPointX,dEndPointY)}}class McDbEllipse extends McDbCurve{constructor(cenx,ceny,cenz,majorAxisx,majorAxisy,majorAxisz,radiusRatio,startAngle,endAngle){cenx instanceof Object?super(cenx):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbEllipse),typeof cenx=="number"&&(radiusRatio||(radiusRatio=1),typeof startAngle!="number"&&(startAngle=0),typeof endAngle!="number"&&(endAngle=6.283185307179586),this.imp.InitData(new McGePoint3d(cenx,ceny,cenz).imp,new McGeVector3d(majorAxisx,majorAxisy,majorAxisz).imp,radiusRatio,startAngle,endAngle)))}setCenter(x,y,z){this.imp.setCenter(new McGePoint3d(x,y,z).imp)}get center(){return new McGePoint3d(this.imp.center())}set center(pt){this.imp.setCenter(pt.imp)}setMajorAxis(x,y,z){this.imp.setMajorAxis(new McGeVector3d(x,y,z).imp)}get majorAxis(){return new McGeVector3d(this.imp.majorAxis())}set majorAxis(pt){this.imp.setMajorAxis(pt.imp)}setMinorAxis(x,y,z){this.imp.setMinorAxis(new McGeVector3d(x,y,z).imp)}get minorAxis(){return new McGeVector3d(this.imp.minorAxis())}set minorAxis(pt){this.imp.setMinorAxis(pt.imp)}get radiusRatio(){return this.imp.radiusRatio()}set radiusRatio(val){this.imp.setRadiusRatio(val)}get startAngle(){return this.imp.startAngle()}set startAngle(val){this.imp.setStartAngle(val)}get endAngle(){return this.imp.endAngle()}set endAngle(val){this.imp.setEndAngle(val)}}class McDbPoint extends McDbEntity{constructor(x,y,z){x instanceof Object?x instanceof McGePoint3d?(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbPoint),this.imp.setPosition(x.imp)):super(x):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbPoint),typeof x=="number"&&this.imp.setPosition(new McGePoint3d(x,y,z).imp))}setPosition(x,y,z){this.imp.setPosition(new McGePoint3d(x,y,z).imp)}get position(){return new McGePoint3d(this.imp.position())}set position(pt){this.imp.setPosition(pt.imp)}}class McDbHatch extends McDbEntity{constructor(x){x instanceof Object?super(x):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbHatch))}get numLoops(){return this.imp.numLoops()}loopTypeAt(loopIndex){return this.imp.loopTypeAt(loopIndex)}getLoopAt(loopIndex){let ret=this.imp.getLoopAt(loopIndex);if(!ret)return{ret:!1,lootype:0,vertices:[],bulges:[]};let count=ret.GetCount();if(count<=0)return exports2.MxCpp.App.destroyObject(ret),{ret:!1,lootype:0,vertices:[],bulges:[]};let lootype=0;lootype=ret.Atlong(0);let vertices=[],bulges=[],i=1;for(;i+1<count;i+=2)vertices.push(new McGePoint3d(ret.AtPoint(i))),bulges.push(ret.AtDouble(i+1));return exports2.MxCpp.App.destroyObject(ret),{ret:!0,lootype,vertices,bulges}}patternType(){return this.imp.patternType()}patternName(){return MxG2312Obj.decodeFromGb2312(this.imp.patternName())}setPattern(type,patName){this.imp.setPattern(type,MxG2312Obj.encodeToGb2312(patName))}get patternAngle(){return this.imp.patternAngle()}set patternAngle(angle){this.imp.setPatternAngle(angle)}get patternScale(){return this.imp.patternScale()}set patternScale(scale){this.imp.setPatternScale(scale)}get patternSpace(){return this.imp.patternSpace()}set patternSpace(space){this.imp.setPatternSpace(space)}get patternDouble(){return this.imp.patternDouble()}set patternDouble(isDouble){this.imp.setPatternDouble(isDouble)}get numPatternDefinitions(){return this.imp.numPatternDefinitions()}getPatternDefinitionAt(index){let ret=this.imp.getPatternDefinitionAt(index);if(!ret)return{ret:!1,angle:0,baseX:0,baseY:0,offsetX:0,offsetY:0,aryDashes:[]};let len=ret.length();if(len<5)return exports2.MxCpp.App.getImp().DestroyMdGeDoubleArray(ret),{ret:!1,angle:0,baseX:0,baseY:0,offsetX:0,offsetY:0,aryDashes:[]};let angle=ret.at(0),baseX=ret.at(1),baseY=ret.at(2),offsetX=ret.at(3),offsetY=ret.at(4),aryDashes=[];for(let i=5;i<len;i++)aryDashes.push(ret.at(i));return exports2.MxCpp.App.getImp().DestroyMdGeDoubleArray(ret),{ret:!1,angle,baseX,baseY,offsetX,offsetY,aryDashes}}addPatternDefinition(angle,baseX,baseY,offsetX,offsetY,dashes){let aryDashes=new MdGeDoubleArray;return dashes.forEach(val=>{aryDashes.append(val)}),this.imp.addPatternDefinition(angle,baseX,baseY,offsetX,offsetY,aryDashes.imp)}clearPatternDefinition(){return this.imp.clearPatternDefinition()}hatchStyle(){return this.imp.hatchStyle()}setHatchStyle(val){return this.imp.setHatchStyle(val)}evaluateHatch(){return this.imp.evaluateHatch(!1)}appendLoop(loopType,vertices,bulges){let aryBulges=new MdGeDoubleArray;return bulges.forEach(val=>{aryBulges.append(val)}),this.imp.appendLoop(loopType,vertices.imp,aryBulges.imp)}removeLoopAt(loopIndex){return this.imp.removeLoopAt(loopIndex)}removeAllLoop(){return this.imp.removeAllLoop()}setLoopAt(loopIndex,loopType,vertices,bulges){let aryBulges=new MdGeDoubleArray;return bulges.forEach(val=>{aryBulges.append(val)}),this.imp.setLoopAt(loopIndex,loopType,vertices.imp,aryBulges.imp)}isSolid(){return this.imp.isSolid()}}class McDbProxyEntity extends McDbEntity{constructor(x){x instanceof Object?super(x):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbProxyEntity))}getAllTextContent(){return new McGeStringArray(this.imp.getAllTextContent())}getAllEntityIds(){let ret=[],aryId=this.imp.getAllEntityIds(),iLen=aryId.length();for(let i=0;i<iLen;i++)ret.push(new McObjectId(aryId.at(i),McObjectIdType.kMxCAD));return exports2.MxCpp.App.getImp().DestroyMdGeLongArray(aryId),ret}getOriginalClassName(){return this.imp.getOriginalClassName()}}class McDbRasterImage extends McDbEntity{constructor(x){x instanceof Object?super(x):(super(),this.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbRasterImage))}setOrientation(origin,uCorner,vOnPlane){return this.imp.setOrientation(origin.imp,uCorner.imp,vOnPlane.imp)}getOrientation(){let aryPoint=this.imp.getOrientation();if(aryPoint.length()<3)return{origin:new McGePoint3d,uCorner:McGeVector3d.kXAxis.clone(),vOnPlane:McGeVector3d.kYAxis.clone()};let pt0=new McGePoint3d(aryPoint.at(0)),pt1=new McGeVector3d(aryPoint.at(1)),pt2=new McGeVector3d(aryPoint.at(2));return{origin:pt0,uCorner:pt1,vOnPlane:pt2}}setImageDefId(imageId){imageId.type==McObjectIdType.kMxCAD&&this.imp.setImageDefId(imageId.id)}imageDefId(){return new McObjectId(this.imp.imageDefId(),McObjectIdType.kMxCAD)}setClipBoundary(type,aryPoint){return this.imp.setClipBoundary(type,aryPoint.imp)}clipBoundary(){return new McGePoint3dArray(this.imp.clipBoundary())}clipBoundaryType(){return this.imp.clipBoundaryType()}}var FetchAttributes=(FetchAttributes2=>(FetchAttributes2[FetchAttributes2.EMSCRIPTEN_FETCH_LOAD_TO_MEMORY=1]="EMSCRIPTEN_FETCH_LOAD_TO_MEMORY",FetchAttributes2[FetchAttributes2.EMSCRIPTEN_FETCH_PERSIST_FILE=4]="EMSCRIPTEN_FETCH_PERSIST_FILE",FetchAttributes2[FetchAttributes2.EMSCRIPTEN_FETCH_APPEND=8]="EMSCRIPTEN_FETCH_APPEND",FetchAttributes2[FetchAttributes2.EMSCRIPTEN_FETCH_REPLACE=16]="EMSCRIPTEN_FETCH_REPLACE",FetchAttributes2))(FetchAttributes||{});class McObject{imp;event={};currentFileName="";firstTimeOpenFile=!0;constructor(imp){this.imp=imp}on(name,fun){if(this.event[name])if(this.event[name]instanceof Array)this.event[name].includes(fun)||this.event[name].push(fun);else{let bakFun=this.event[name];if(bakFun==fun)return;this.event[name]=[],this.event[name].push(bakFun),this.event[name].push(fun)}else this.event[name]=fun}callEvent(sEventName,param){try{let calls=this.event[sEventName];if(!calls)return!1;if(calls instanceof Array){let ret=!1;return calls.forEach(val=>{ret=val(param)}),ret}else return calls(param)}catch(error){throw console.log(error),error}}initMxObject(mxObject){mxObject.tmp||(mxObject.tmp=new mxdraw.MxDrawObject(mxObject)),this.imp.mxdrawObject=mxObject.tmp,mxObject.addEvent("selectChange",id=>{let ids=[];id.forEach(val=>{ids.push(new McObjectId(val,McObjectIdType.kMxCAD))}),mxObject.getMxAllSelect().forEach(val=>{ids.push(new McObjectId(val,McObjectIdType.kMxDraw))}),this.callEvent("selectChange",ids)}),mxObject.addEvent("mxdrawSelectChange",id=>{let ids=[];id.forEach(val=>{ids.push(new McObjectId(val,McObjectIdType.kMxDraw))}),mxObject.getMxCADAllSelect().forEach(val=>{ids.push(new McObjectId(val,McObjectIdType.kMxCAD))}),this.callEvent("selectChange",ids)})}getMxDrawObject(){return this.imp.mxdrawObject}get mxdraw(){return this.imp.mxdrawObject}getImp(){return this.imp}regen(delayTime=0){delayTime<=0?this.imp.regen():setTimeout(()=>{this.imp.regen(),this.updateDisplay(!1)},delayTime)}zoomAll(){let box=this.database.currentSpace.getBoundingBox();return box.ret?(this.getMxDrawObject().zoomW(box.minPt.toVector3(),box.maxPt.toVector3()),!0):!1}zoomScale(scale){this.getMxDrawObject().zoomScale(scale)}addCurrentSelect(id){id.type==McObjectIdType.kMxDraw?this.getMxDrawObject().addMxCurrentSelect(id.id):id.type==McObjectIdType.kMxCAD&&this.getMxDrawObject().addMxCADCurrentSelect(id.id)}zoomW(minPt,maxPt){this.getMxDrawObject().zoomW(minPt.toVector3(),maxPt.toVector3())}zoomCenter(dCenX,dCenY){this.getMxDrawObject().zoomCenter(dCenX,dCenY)}openWebFile(sFileUrl,retCall,isWorkThread=!0,initialParameter,fetchAttributes=0){let mxObject=this.imp.mxdrawObject,lOptID=Math.round(Math.random()*1e7);if(retCall){let funOpenCall=(iRet,valId)=>{lOptID==valId&&(mxObject.removeEventFuction("openFileComplete",funOpenCall),retCall(iRet))};mxObject.addEvent("openFileComplete",funOpenCall)}this.currentFileName=sFileUrl.split("/").pop();let sParam="";return initialParameter&&(sParam=JSON.stringify(initialParameter)),this.firstTimeOpenFile||this.getMxDrawObject().clearAllObject(),this.firstTimeOpenFile=!1,this.imp.openWebFile(sFileUrl,isWorkThread,lOptID,sParam,fetchAttributes)}newFile(){return this.currentFileName="",this.getMxDrawObject().clearAllObject(),this.imp.newFile()}insertBlock(sFileUrl,sBlkName,isWorkThread=!0,fetchAttributes=0){let mxObject=this.imp.mxdrawObject,lCallID=Math.round(Math.random()*1e7);return new Promise(resolve=>{let funCall=strparam=>{(!strparam||strparam.length==0)&&resolve(new McObjectId);let param=JSON.parse(strparam);param.callid==lCallID&&(mxObject.removeEventFuction("insertBlockComplete",funCall),param.result!=0&&console.log("insertBlock result:"+param.result),resolve(new McObjectId(param.blkrecid,McObjectIdType.kMxCAD)))};mxObject.addEvent("insertBlockComplete",funCall);let initialParameter="";this.imp.insertBlock(sFileUrl,MxG2312Obj.encodeToGb2312(sBlkName),isWorkThread,lCallID,initialParameter,fetchAttributes)})}getCurrentFileName(){return this.currentFileName}saveFileToUrl(sSaveProgramUrl,call){const win=window;return win.McDrawObjectEvent_saveFileComplete=function(sServerResult,iResult){call(iResult,sServerResult)},this.imp.saveFileToUrl(sSaveProgramUrl)}saveFile(filename,call,isDownland=!0,isShowSaveFileDialog=!0,parameter){filename||(filename=this.getCurrentFileName()),filename.indexOf(".")==-1&&(filename+=".mxweb");const win=window;win.mx_saveFile_call=data=>{if(call&&call(data),!!data){if(isDownland){let blob;/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?blob=new Blob([data.buffer],{type:"application/octet-stream"}):blob=new Blob([data.buffer],{type:"application/octet-binary"}),isShowSaveFileDialog?MxTools.saveAsFileDialog({blob,filename,types:[{description:"mxweb File",accept:{"application/octet-stream":[".mxweb"]}}]}):MxTools.downloadFile(blob,filename)}win.mx_saveFile_call=null}};let sParam="";return parameter&&(sParam=JSON.stringify(parameter)),this.imp.saveFile(filename,sParam)}getDatabase(){return this.imp.McDbDatabase||(this.imp.McDbDatabase=new McDbDatabase(this.imp.GetDatabase())),this.imp.McDbDatabase}get database(){return this.getDatabase()}setBrowse(browse){this.imp.setBrowse(browse),browse&&mxdraw.MxFun.setIniset({ForbiddenDynInput:!0})}getSysVarString(varName){return this.imp.GetSysVarString(varName)}setSysVarString(varName,val){return this.imp.SetSysVarString(varName,val)}getSysVarDouble(varName){return this.imp.GetSysVarDouble(varName)}getSysVarPoint(varName){return new McGePoint3d(this.imp.GetSysVarPoint(varName))}setSysVarPoint(varName,pt){return this.imp.SetSysVarPoint(varName,pt.imp,!1)}setSysVarPoint2d(varName,pt){return this.imp.SetSysVarPoint(varName,pt.imp,!0)}setSysVarDouble(varName,val){return this.imp.SetSysVarDouble(varName,val)}getSysVarLong(varName){return this.imp.GetSysVarLong(varName)}setSysVarLong(varName,val){return this.imp.SetSysVarLong(varName,val)}get drawColor(){return new McCmColor(this.imp.GetDrawColor())}set drawColor(val){this.imp.SetDrawColor(val.getImp())}get drawColorIndex(){return this.imp.GetDrawColor().colorIndex}set drawColorIndex(val){let color=new McCmColor;color.setColorIndex(val),this.imp.SetDrawColor(color.getImp())}get drawLineWeight(){return this.imp.GetDrawLineWeight()}set drawLineWeight(val){this.imp.SetDrawLineWeight(val)}get drawLineTypeScale(){return this.imp.GetDrawLineTypeScale()}set drawLineTypeScale(val){this.imp.SetDrawLineTypeScale(val)}get drawLinetype(){return MxG2312Obj.decodeFromGb2312(this.imp.GetDrawLinetype())}set drawLinetype(val){this.imp.SetDrawLinetype(MxG2312Obj.encodeToGb2312(val))}get drawTextStyle(){return MxG2312Obj.decodeFromGb2312(this.imp.GetDrawTextStyle())}set drawTextStyle(val){this.imp.SetDrawTextStyle(MxG2312Obj.encodeToGb2312(val))}get drawLayer(){return MxG2312Obj.decodeFromGb2312(this.imp.GetDrawLayer())}set drawLayer(val){this.imp.SetDrawLayer(MxG2312Obj.encodeToGb2312(val))}addLayer(string){return new McObjectId(this.imp.AddLayer(MxG2312Obj.encodeToGb2312(string)))}addTextStyle(sName,sFileName,sBigFontFileName,dXScale){return new McObjectId(this.imp.AddTextStyle(MxG2312Obj.encodeToGb2312(sName),MxG2312Obj.encodeToGb2312(sFileName),MxG2312Obj.encodeToGb2312(sBigFontFileName),dXScale))}addLinetype(sName,sLineDefine){return new McObjectId(this.imp.AddLinetype(MxG2312Obj.encodeToGb2312(sName),MxG2312Obj.encodeToGb2312(sLineDefine)))}addLinetypeEx(sName,sLineDefine,sTextStyle=""){return new McObjectId(this.imp.AddLinetypeEx(MxG2312Obj.encodeToGb2312(sName),MxG2312Obj.encodeToGb2312(sLineDefine),MxG2312Obj.encodeToGb2312(sTextStyle)))}drawLine(dX1,dY1,dX2,dY2){return new McObjectId(this.imp.DrawLine(dX1,dY1,0,dX2,dY2,0))}drawLine3d(dX1,dY1,dZ1,dX2,dY2,dZ2){return new McObjectId(this.imp.DrawLine(dX1,dY1,dZ1,dX2,dY2,dZ2))}addDimStyle(pszName,pszDoubleData,pszIntData,pszStringData,pszIdData){return new McObjectId(this.imp.AddDimStyle(pszName,pszDoubleData,pszIntData,pszStringData,pszIdData))}get drawDimStyle(){return MxG2312Obj.decodeFromGb2312(this.imp.GetDrawDimStyle())}set drawDimStyle(val){this.imp.SetDrawDimStyle(MxG2312Obj.encodeToGb2312(val))}pathMakeExclude(isExclude){this.imp.PathMakeExclude(isExclude)}addPatternDefinition(sName,sDefinitionData){this.imp.AddPatternDefinition(sName,sDefinitionData)}get drawPatternDefinition(){return MxG2312Obj.encodeToGb2312(this.imp.GetPatternDefinition())}set drawPatternDefinition(val){this.imp.SetPatternDefinition(MxG2312Obj.decodeFromGb2312(val))}get drawLineWidth(){return this.imp.GetDrawLineWidth()}set drawLineWidth(val){this.imp.SetDrawLineWidth(val)}drawArc(dCenterX,dCenterY,dRadius,dStartAng,dEndAng){return new McObjectId(this.imp.DrawArc(dCenterX,dCenterY,dRadius,dStartAng,dEndAng))}drawArc2(dStartPointX,dStartPointY,dMidPointX,dMidPointY,dEndPointX,dEndPointY){return new McObjectId(this.imp.DrawArc2(dStartPointX,dStartPointY,dMidPointX,dMidPointY,dEndPointX,dEndPointY))}drawArc3(dStartPointX,dStartPointY,dEndPointX,dEndPointY,dBulge){return new McObjectId(this.imp.DrawArc3(dStartPointX,dStartPointY,dEndPointX,dEndPointY,dBulge))}drawCircle(dCenterX,dCenterY,dRadius){return new McObjectId(this.imp.DrawCircle(dCenterX,dCenterY,dRadius))}drawEllipse(dCenterX,dCenterY,dMajorAxisX,dMajorAxisY,dRadiusRatio){return new McObjectId(this.imp.DrawEllipse(dCenterX,dCenterY,dMajorAxisX,dMajorAxisY,dRadiusRatio))}drawEllipseArc(dCenterX,dCenterY,dMajorAxisX,dMajorAxisY,dRadiusRatio,dStartAng,dEndAng){return new McObjectId(this.imp.DrawEllipseArc(dCenterX,dCenterY,dMajorAxisX,dMajorAxisY,dRadiusRatio,dStartAng,dEndAng))}drawPoint(dX,dY){return new McObjectId(this.imp.DrawPoint(dX,dY))}drawSolid(dX1,dY1,dX2,dY2,dX3,dY3,dX4,dY4){return new McObjectId(this.imp.DrawSolid(dX1,dY1,dX2,dY2,dX3,dY3,dX4,dY4))}drawMText(dPosX,dPosY,sContents,dHeight,dWidth,dRotation,iAttachment){return new McObjectId(this.imp.DrawMText(dPosX,dPosY,MxG2312Obj.encodeToGb2312(sContents),dHeight,dWidth,dRotation,iAttachment))}drawText(dPosX,dPosY,pszText,dHeight,dRotation,horizontalMode,verticalMode){return new McObjectId(this.imp.DrawText(dPosX,dPosY,MxG2312Obj.encodeToGb2312(pszText),dHeight,dRotation,horizontalMode,verticalMode))}drawBlockReference(dPosX,dPosY,sBlkName,dScale,dAng){return new McObjectId(this.imp.DrawBlockReference(dPosX,dPosY,MxG2312Obj.encodeToGb2312(sBlkName),dScale,dAng))}drawDimAligned(dExtLine1PointX,dExtLine1PointY,dExtLine2PointX,dExtLine2PointY,dTextPositionX,dTextPositionY){return new McObjectId(this.imp.DrawDimAligned(dExtLine1PointX,dExtLine1PointY,dExtLine2PointX,dExtLine2PointY,dTextPositionX,dTextPositionY))}drawDimAngular(dAngleVertexX,dAngleVertexY,dFirstEndPointX,dFirstEndPointY,dSecondEndPointX,dSecondEndPointY,dTextPointX,dTextPointY){return new McObjectId(this.imp.DrawDimAngular(dAngleVertexX,dAngleVertexY,dFirstEndPointX,dFirstEndPointY,dSecondEndPointX,dSecondEndPointY,dTextPointX,dTextPointY))}drawDimDiametric(dChordPointX,dChordPointY,dFarChordPointX,dFarChordPointY,dLeaderLength){return new McObjectId(this.imp.DrawDimDiametric(dChordPointX,dChordPointY,dFarChordPointX,dFarChordPointY,dLeaderLength))}drawDimRotated(dExtLine1PointX,dExtLine1PointY,dExtLine2PointX,dExtLine2PointY,dDimLineLocationX,dDimLineLocationY,dRotationAngle){return new McObjectId(this.imp.DrawDimRotated(dExtLine1PointX,dExtLine1PointY,dExtLine2PointX,dExtLine2PointY,dDimLineLocationX,dDimLineLocationY,dRotationAngle))}drawDimOrdinate(dDefinitionPointX,dDefinitionPointY,dDeaderEndPointX,dDeaderEndPointY,isUseXAxis){return new McObjectId(this.imp.DrawDimOrdinate(dDefinitionPointX,dDefinitionPointY,dDeaderEndPointX,dDeaderEndPointY,isUseXAxis))}drawDimRadial(dCenterX,dCenterY,dChordPointX,dChordPointY,dLeaderLength){return new McObjectId(this.imp.DrawDimRadial(dCenterX,dCenterY,dChordPointX,dChordPointY,dLeaderLength))}pathMoveTo(dX,dY){this.imp.PathMoveTo(dX,dY)}pathMoveToEx(dX,dY,dStartWidth,dEndWidth,dBulge){this.imp.PathMoveToEx(dX,dY,dStartWidth,dEndWidth,dBulge)}pathLineTo(dX,dY){this.imp.PathLineTo(dX,dY)}pathLineToEx(dX,dY,dStartWidth,dEndWidth,dBulge){this.imp.PathLineToEx(dX,dY,dStartWidth,dEndWidth,dBulge)}drawPathToPolyline(){return new McObjectId(this.imp.DrawPathToPolyline())}drawPathToSpline(){return new McObjectId(this.imp.DrawPathToSpline())}pathMakeClosed(){this.imp.PathMakeClosed()}drawPathToHatch(dPatternScale){return new McObjectId(this.imp.DrawPathToHatch(dPatternScale))}drawEntity(entity){return new McObjectId(this.imp.DrawEntity(entity.getImp()))}drawHatch(hatch,dPatternScale=1){return new McObjectId(this.imp.DrawHatch(hatch.getImp(),dPatternScale))}objectIdToObject(lIdIndex){return exports2.MxCpp.App.objectIdToObject(lIdIndex)}destroyObject(pObjectImp){!pObjectImp||exports2.MxCpp.App.getImp().DestroyObject(pObjectImp)}getAllLayoutName(){return new McGeStringArray(this.imp.GetAllLayoutName())}setCurrentLayout(layoutName){this.imp.SetCurrentLayout(MxG2312Obj.encodeToGb2312(layoutName))}getMxCpp(){return exports2.MxCpp}doc2cad(pt){return pt}cad2doc(pt){return pt}doc2cad1(pt){return new McGePoint3d(pt.x,pt.y,pt.z)}doc2cad2(x,y,z){return new McGePoint3d(x,y,z)}cad2doc1(pt){return new THREE.Vector3(pt.x,pt.y,pt.z)}cad2doc2(x,y,z){return new THREE.Vector3(x,y,z)}updateDisplay(isImmediate=!1){this.imp.mxdrawObject.updateDisplay(isImmediate)}updateLayerDisplayStatus(){this.imp.UpdateLayerDisplayStatus()}initRegist(sRegist){this.imp.initRegist(sRegist)}isTryVersion(){return this.imp.isTryVersion()}setViewBackgroundColor(red,green,blue){let mxobj=this.getMxDrawObject();return mxobj&&mxobj.setViewColor(red<<16|green<<8|blue),this.imp.setViewBackgroundColor(red,green,blue)}getCurrentDatabaseDrawColor(){let ary=this.getDatabase().getImp().GetCurrentlyDrawColor(),lViewcolor=this.getMxDrawObject().getViewColor(),r=ary.at(0),g=ary.at(1),b=ary.at(2);lViewcolor==16777215?r==255&&g==255&&b==255&&(r=0,g=0,b=0):lViewcolor==0&&r==0&&g==0&&b==0&&(r=255,g=255,b=255);let ret=new THREE.Color;return ret.setRGB(r/255,g/255,b/255),ret}undo(){this.imp.undo(),this.updateDisplay(!1)}redo(){this.imp.redo(),this.updateDisplay()}undoMark(){this.imp.undoMark()}}class McAppType{imp;MxCADAssist;objectIdToObjectCalls={};init(imp){this.imp=imp,McGeVector3d.kZAxis=new McGeVector3d(0,0,1),McGeVector3d.kNegateZAxis=new McGeVector3d(0,0,-1),McGeVector3d.kXAxis=new McGeVector3d(1,0,0),McGeVector3d.kYAxis=new McGeVector3d(0,1,0),McGePoint3d.kOrigin=new McGePoint3d(0,0,0),McGeMatrix3d.kIdentity=new McGeMatrix3d,this.MxCADAssist=new exports2.MxCpp.mxcadassemblyimp.MxDrawAssist,this.initObjectIdToObjectCalls()}getImp(){return this.imp}getLastCallResult(){return this.imp.getLastCallResult()}destroyObject(pObject){this.imp.DestroyObject(pObject)}getCurrentMxCAD(){let currentMxCADImp=this.imp.GetCurrentMxDraw();return currentMxCADImp.McObject||(currentMxCADImp.McObject=new McObject(this.imp.GetCurrentMxDraw())),currentMxCADImp.McObject}mcedRGB2Index(red,green,blue,bAutoNearest=!0){return this.imp.mcedRGB2Index(red,green,blue,bAutoNearest)}setDefaultViewBackgroundColor(red,green,blue){return this.imp.setDefaultViewBackgroundColor(red,green,blue)}objectIdIsKindOf(lIdIndex,className){return this.imp.ObjectIdIsKindOf(lIdIndex,className)}initObjectIdToObjectCalls(){this.objectIdToObjectCalls.McDbCurve=lIdIndex=>new McDbCurve(this.imp.ObjectIdToMdDbCurve(lIdIndex)),this.objectIdToObjectCalls.McDbDimension=lIdIndex=>new McDbDimension(this.imp.ObjectIdToMdDbDimension(lIdIndex)),this.objectIdToObjectCalls.McDbEntity=lIdIndex=>new McDbEntity(this.imp.ObjectIdToMdDbEntity(lIdIndex)),this.objectIdToObjectCalls.McDbLine=lIdIndex=>new McDbLine(this.imp.ObjectIdToMdDbLine(lIdIndex)),this.objectIdToObjectCalls.McDbText=lIdIndex=>new McDbText(this.imp.ObjectIdToMdDbText(lIdIndex)),this.objectIdToObjectCalls.McDbAttribute=lIdIndex=>new McDbAttribute(this.imp.ObjectIdToMdDbAttribute(lIdIndex)),this.objectIdToObjectCalls.McDbAttributeDefinition=lIdIndex=>new McDbAttributeDefinition(this.imp.ObjectIdToMdDbAttributeDefinition(lIdIndex)),this.objectIdToObjectCalls.McDbPolyline=lIdIndex=>new McDbPolyline(this.imp.ObjectIdToMdDbPolyline(lIdIndex)),this.objectIdToObjectCalls.McDbCircle=lIdIndex=>new McDbCircle(this.imp.ObjectIdToMdDbCircle(lIdIndex)),this.objectIdToObjectCalls.McDbArc=lIdIndex=>new McDbArc(this.imp.ObjectIdToMdDbArc(lIdIndex)),this.objectIdToObjectCalls.McDbBlockReference=lIdIndex=>new McDbBlockReference(this.imp.ObjectIdToMdDbBlockReference(lIdIndex)),this.objectIdToObjectCalls.McDbAlignedDimension=lIdIndex=>new McDbAlignedDimension(this.imp.ObjectIdToMdDbAlignedDimension(lIdIndex)),this.objectIdToObjectCalls.McDbRotatedDimension=lIdIndex=>new McDbRotatedDimension(this.imp.ObjectIdToMdDbRotatedDimension(lIdIndex)),this.objectIdToObjectCalls.McDbMText=lIdIndex=>new McDbMText(this.imp.ObjectIdToMdDbMText(lIdIndex)),this.objectIdToObjectCalls.McDbEllipse=lIdIndex=>new McDbEllipse(this.imp.ObjectIdToMdDbEllipse(lIdIndex)),this.objectIdToObjectCalls.McDbPoint=lIdIndex=>new McDbPoint(this.imp.ObjectIdToMdDbPoint(lIdIndex)),this.objectIdToObjectCalls.McDbBlockTableRecord=lIdIndex=>new McDbBlockTableRecord(this.imp.ObjectIdToMdDbBlockTableRecord(lIdIndex)),this.objectIdToObjectCalls.McDbLayerTableRecord=lIdIndex=>new McDbLayerTableRecord(this.imp.ObjectIdToMdDbLayerTableRecord(lIdIndex)),this.objectIdToObjectCalls.McDbLinetypeTableRecord=lIdIndex=>new McDbLinetypeTableRecord(this.imp.ObjectIdToMdDbLinetypeTableRecord(lIdIndex)),this.objectIdToObjectCalls.McDbTextStyleTableRecord=lIdIndex=>new McDbTextStyleTableRecord(this.imp.ObjectIdToMdDbTextStyleTableRecord(lIdIndex)),this.objectIdToObjectCalls.McDbHatch=lIdIndex=>new McDbHatch(this.imp.ObjectIdToMdDbHatch(lIdIndex)),this.objectIdToObjectCalls.McDbProxyEntity=lIdIndex=>new McDbProxyEntity(this.imp.ObjectIdToMdDbProxyEntity(lIdIndex)),this.objectIdToObjectCalls.McDbRasterImage=lIdIndex=>new McDbRasterImage(this.imp.ObjectIdToMdDbRasterImage(lIdIndex)),this.objectIdToObjectCalls.McDbRasterImageDef=lIdIndex=>new McDbRasterImageDef(this.imp.ObjectIdToMdDbRasterImageDef(lIdIndex))}objectIdToObject(lIdIndex){if(!lIdIndex)return null;let objName=this.imp.ObjectIdToObjectName(lIdIndex);if(this.objectIdToObjectCalls[objName])return this.objectIdToObjectCalls[objName](lIdIndex);if(this.imp.ObjectIdIsKindOf(lIdIndex,"McDbCurve"))return this.objectIdToObjectCalls.McDbCurve(lIdIndex);if(this.imp.ObjectIdIsKindOf(lIdIndex,"McDbDimension"))return this.objectIdToObjectCalls.McDbDimension(lIdIndex);if(this.imp.ObjectIdIsKindOf(lIdIndex,"McDbEntity"))return this.objectIdToObjectCalls.McDbEntity(lIdIndex);let mcdbObj=this.imp.ObjectIdToMdObject(lIdIndex);return new McDbObject(mcdbObj)}createCloneObject(clonobjImp){if(!clonobjImp)return null;let objName=clonobjImp.getObjectName(),ret=null;return objName=="McDbLine"?ret=new McDbLine:objName=="McDbText"?ret=new McDbText:objName=="McDbAttributeDefinition"?ret=new McDbAttributeDefinition:objName=="McDbAttribute"?ret=new McDbAttribute:objName=="McDbPolyline"?ret=new McDbPolyline:objName=="McDbCircle"?ret=new McDbCircle:objName=="McDbArc"?ret=new McDbArc:objName=="McDbBlockReference"?ret=new McDbBlockReference:objName=="McDbAlignedDimension"?ret=new McDbAlignedDimension:objName=="McDbRotatedDimension"?ret=new McDbRotatedDimension:objName=="McDbMText"?ret=new McDbMText:clonobjImp.isKindOf("McDbCurve")?(ret=new McDbCurve,ret.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbCurve)):clonobjImp.isKindOf("McDbEntity")&&(ret=new McDbEntity,ret.initTempObject(new exports2.MxCpp.mxcadassemblyimp.MdDbEntity)),ret?(ret.getImp().ConnectionTempObject(clonobjImp),exports2.MxCpp.App.destroyObject(clonobjImp),ret):new McDbObject(clonobjImp)}setFontFilePath(path){this.imp.setFontFilePath(path)}addNetworkLoadingFont(paths){typeof paths=="string"?this.imp.addNetworkLoadingFont(paths):paths.forEach(val=>{this.imp.addNetworkLoadingFont(val)})}getVersionString(){return this.imp.GetVersionString()}}class MxCppType{mxcadassemblyimp;App=new McAppType;PropertiesWindow=new MxPropertiesWindowCustom;getCallResult(){return this.App.getLastCallResult()}newMcGePoint3d(pt){let ret=new McGePoint3d;return pt&&typeof pt.x=="number"&&typeof pt.y=="number"&&(ret.x=pt.x,ret.y=pt.y,typeof pt.z=="number"&&(ret.z=pt.z)),ret}newMcGeVector3d(pt){let ret=new McGeVector3d;return pt&&typeof pt.x=="number"&&typeof pt.y=="number"&&(ret.x=pt.x,ret.y=pt.y,typeof pt.z=="number"&&(ret.z=pt.z)),ret}getCurrentMxCAD(){return this.App.getCurrentMxCAD()}getCurrentDatabase(){return this.App.getCurrentMxCAD().getDatabase()}decodeFromGb2312(str){return MxG2312Obj.decodeFromGb2312(str)}}var MxPropertiesWindowCustomValueType=(MxPropertiesWindowCustomValueType2=>(MxPropertiesWindowCustomValueType2[MxPropertiesWindowCustomValueType2.kInt=1]="kInt",MxPropertiesWindowCustomValueType2[MxPropertiesWindowCustomValueType2.kDouble=2]="kDouble",MxPropertiesWindowCustomValueType2[MxPropertiesWindowCustomValueType2.kString=3]="kString",MxPropertiesWindowCustomValueType2))(MxPropertiesWindowCustomValueType||{});class MxPropertiesWindowCustomValue{sVarName="";iVarType=1;val;isOnlyRead=!1}class MxPropertiesWindowCustom{getPropertiesCall=null;setPropertiesCall=null;onEvent_getProperties(call){this.getPropertiesCall=call}onEvent_setProperties(call){this.setPropertiesCall=call}setEntitySupportCustom(id,isCustomProperties=!0){let ent=id.getMcDbEntity();ent&&ent.getImp().setPropertiesWindowCustom(isCustomProperties)}getEntityProperties(id){let ent=id.getMcDbEntity();return ent?ent.getImp().isPropertiesWindowCustom()?this.getPropertiesCall==null?[]:this.getPropertiesCall(id):[]:[]}setEntityProperties(id,prop){let ent=id.getMcDbEntity();if(!!ent&&!!ent.getImp().isPropertiesWindowCustom()&&this.setPropertiesCall!=null)return this.setPropertiesCall(id,prop)}}exports2.MxCpp=void 0;async function loadMxCADassembly(call,locateFile=isSharedArrayBuffer||!isCdn?get2DFileURL:get2DSTFileURL,wasmBinary,fontspath,networkFonts){return new Promise(async(resolve,reject)=>{try{if(exports2.MxCpp||(exports2.MxCpp=new MxCppType),exports2.MxCpp.mxcadassemblyimp)return call&&call(exports2.MxCpp),resolve(exports2.MxCpp);const mxcadassemblyimp=await loadWams$1("mxdrawassembly_min","mxdrawassembly",{locateFile,wasmBinary});exports2.MxCpp.mxcadassemblyimp=mxcadassemblyimp;let app=new mxcadassemblyimp.McApp;fontspath&&app.setFontFilePath(fontspath),app.Init(),exports2.MxCpp.App.init(app),networkFonts&&exports2.MxCpp.App.addNetworkLoadingFont(networkFonts),call&&call(exports2.MxCpp),resolve(exports2.MxCpp)}catch(e){reject(e)}})}function MxCheckTheBrowser(){var sys={},ua=navigator.userAgent.toLowerCase(),s;if((s=ua.match(/edg\/([\d.]+)/))?sys.edge=s[1]:(s=ua.match(/rv:([\d.]+)\) like gecko/))||(s=ua.match(/msie ([\d.]+)/))?sys.ie=s[1]:(s=ua.match(/firefox\/([\d.]+)/))?sys.firefox=s[1]:(s=ua.match(/chrome\/([\d.]+)/))?sys.chrome=s[1]:(s=ua.match(/opera.([\d.]+)/))?sys.opera=s[1]:(s=ua.match(/version\/([\d.]+).*safari/))&&(sys.safari=s[1]),sys.ie)return{ok:!1,error:"\u4E0D\u652F\u6301ie\u6D4F\u89C8\u5668\uFF0C\u4F7F\u7528\u6700\u65B0\u7684chrome\u6216edge\u6D4F\u89C8\u5668",var:sys};if(sys.edge){var regEdge=new RegExp("edg/([0-9]{1,}[.0-9]{0,})");if(regEdge.exec(ua)!=null&&parseFloat(RegExp.$1)<107)return{ok:!1,error:"edge\u6D4F\u89C8\u5668\u7248\u672C\u592A\u65E7\uFF0C\u4F7F\u7528\u6700\u65B0\u7684edge\u6D4F\u89C8\u5668",var:sys}}else if(sys.chrome){var regEdge=new RegExp("chrome/([0-9]{1,}[.0-9]{0,})");if(regEdge.exec(ua)!=null&&parseFloat(RegExp.$1)<107)return{ok:!1,error:"\u6D4F\u89C8\u5668\u7248\u672C\u592A\u65E7\uFF0C\u4F7F\u7528\u6700\u65B0\u7684chrome\u6D4F\u89C8\u5668",var:sys}}else if(sys.firefox){var regEdge=new RegExp("firefox/([0-9]{1,}[.0-9]{0,})");if(regEdge.exec(ua)!=null&&parseFloat(RegExp.$1)<101)return{ok:!1,error:"firefox\u6D4F\u89C8\u5668\u7248\u672C\u592A\u65E7\uFF0C\u4F7F\u7528\u6700\u65B0\u7684firefox\u6D4F\u89C8\u5668",var:sys}}else if(!sys.safari)return sys.opera?{ok:!1,error:"\u4E0D\u652F\u6301opera\u6D4F\u89C8\u5668\uFF0C\u4F7F\u7528\u6700\u65B0\u7684chrome\u6216edge\u6D4F\u89C8\u5668",var:sys}:{ok:!1,error:"\u4E0D\u652F\u6301\u8BE5\u6D4F\u89C8\u5668\uFF0C\u4F7F\u7528\u6700\u65B0\u7684chrome\u6216edge\u6D4F\u89C8\u5668",var:sys};return{ok:!0,error:"",var:sys}}class McGePoint3d{static kOrigin;imp;constructor(dX,dY,dZ){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGePoint3d,dX instanceof Object?(this.imp.x=dX.x,this.imp.y=dX.y,this.imp.z=dX.z):(this.imp.x=dX||0,this.imp.y=dY||0,this.imp.z=dZ||0)}toVector3(){return new THREE.Vector3(this.imp.x,this.imp.y,this.imp.z)}setFromVector3(val){return this.imp.x=val.x,this.imp.y=val.y,this.imp.z=val.z,this}copy(val){return this.imp.x=val.x,this.imp.y=val.y,this.imp.z=val.z,this}transformBy(leftSide){return this.imp.transformBy(leftSide.imp),this}addvec(vec){return this.imp.addvec(vec.imp),this}av(vec){return this.imp.addvec(vec.imp),this}subvec(vec){return this.imp.subvec(vec.imp),this}sv(vec){return this.imp.subvec(vec.imp),this}sub(pt){return new McGeVector3d(this.imp.sub(pt.imp))}distanceTo(pnt){return this.imp.distanceTo(pnt.imp)}isEqualTo(pnt){return this.imp.isEqualTo(pnt.imp)}clone(){return new McGePoint3d(this.imp)}c(){return new McGePoint3d(this.imp)}get x(){return this.imp.x}set x(val){this.imp.x=val}get y(){return this.imp.y}set y(val){this.imp.y=val}get z(){return this.imp.z}set z(val){this.imp.z=val}}class McGeVector3d{static kXAxis;static kYAxis;static kZAxis;static kNegateZAxis;imp;constructor(dX,dY,dZ){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGeVector3d,dX instanceof Object?(this.imp.x=dX.x,this.imp.y=dX.y,this.imp.z=dX.z):(this.imp.x=dX||0,this.imp.y=dY||0,this.imp.z=dZ||0)}toVector3(){return new THREE.Vector3(this.imp.x,this.imp.y,this.imp.z)}copy(val){return this.imp.x=val.imp.x,this.imp.y=val.imp.y,this.imp.z=val.imp.z,this}clone(){return new McGeVector3d(this.imp)}c(){return new McGeVector3d(this.imp)}rotateBy(ang,axis){return axis||(axis=McGeVector3d.kZAxis),this.imp.rotateBy(ang,axis.imp),this}negate(){return this.imp.negate(),this}perpVector(){return this.imp.perpVector(),this}angleTo1(vec){return this.imp.angleTo(vec.imp)}angleTo2(vec,refVec){return refVec||(refVec=McGeVector3d.kNegateZAxis),this.imp.angleTo(vec.imp,refVec.imp)}normalize(){return this.imp.normalize(),this}length(){return this.imp.length()}isUnitLength(){return this.imp.isUnitLength()}isZeroLength(){return this.imp.isZeroLength()}dotProduct(vec){return this.imp.dotProduct(vec.imp)}crossProduct(vec){let ret=new McGeVector3d;return ret.imp=this.imp.crossProduct(vec.imp),ret}isEqualTo(vec){return this.imp.isEqualTo(vec.imp)}mult(val){return this.imp.mult(val),this}get x(){return this.imp.x}set x(val){this.imp.x=val}get y(){return this.imp.y}set y(val){this.imp.y=val}get z(){return this.imp.z}set z(val){this.imp.z=val}}class McGeMatrix3d{static kIdentity;imp;constructor(imp){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGeMatrix3d,imp instanceof Object&&this.imp.copy(imp)}copy(val){return this.imp.copy(val.imp),this}clone(){return new McGeMatrix3d(this.imp)}setToIdentity(){return this.imp.setToIdentity(),this}preMultBy(leftSide){return this.imp.preMultBy(leftSide.imp),this}postMultBy(rightSide){return this.imp.postMultBy(rightSide.imp),this}setToProduct(mat1,mat2){return this.imp.setToProduct(mat1.imp,mat2.imp),this}invert(){return this.imp.invert(),this}isSingular(){return this.imp.isSingular()}transposeIt(){return this.imp.transposeIt(),this}isEqualTo(mat){return this.imp.isEqualTo(mat.imp)}det(){return this.imp.det()}setCoordSystem(origin,xAxis,yAxis,zAxis){return this.imp.setCoordSystem(origin.imp,xAxis.imp,yAxis.imp,zAxis.imp),this}setToTranslation(vec){return this.imp.setToTranslation(vec.imp),this}setToRotation(angle,axis,center){return this.imp.setToRotation(angle,axis.imp,center.imp),this}setToScaling(scaleAll,center){return this.imp.setToScaling(scaleAll,center.imp),this}setMirror(pt1,pt2){return this.imp.setMirror(pt1.imp,pt2.imp),this}scale(){return this.imp.scale()}getData(row,col){return this.imp.getData(row,col)}}class McGeLongArray{imp;constructor(imp){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGeLongArray,imp instanceof Object&&this.imp.copy(imp)}copy(val){return this.imp.clear(),this.imp.copy(val.imp),this}copyFormAryId(aryId){return this.imp.clear(),aryId.forEach(val=>{this.imp.append(val.id)}),this}append(val){this.imp.append(val)}length(){return this.imp.length()}at(index){return this.imp.at(index)}setAt(index,val){this.imp.setAt(index,val)}clear(){this.imp.clear()}forEach(call){let iSize=this.imp.length();for(let i=0;i<iSize;i++)call(this.imp.at(i),i)}}class McGeStringArray{imp;constructor(imp){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGeStringArray,imp instanceof Object&&this.imp.copy(imp)}copy(val){return this.imp.copy(val.imp),this}append(val){this.imp.append(val)}length(){return this.imp.length()}at(index,decodeFromGb2312=!0){return decodeFromGb2312?MxG2312Obj.decodeFromGb2312(this.imp.at(index)):this.imp.at(index)}setAt(index,val,decodeFromGb2312=!0){decodeFromGb2312?this.imp.setAt(index,MxG2312Obj.encodeToGb2312(val)):this.imp.setAt(index,val)}forEach(call,decodeFromGb2312=!0){let iSize=this.imp.length();for(let i=0;i<iSize;i++)call(decodeFromGb2312?MxG2312Obj.decodeFromGb2312(this.imp.at(i)):this.imp.at(i),i)}clear(){this.imp.clear()}}class McGePoint3dArray{imp;constructor(imp){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGePoint3dArray,imp instanceof Object&&this.imp.copy(imp)}copy(val){return this.imp.copy(val.imp),this}append(val){this.imp.append(val.imp)}length(){return this.imp.length()}isEmpty(){return this.imp.length()==0}at(index){return new McGePoint3d(this.imp.at(index))}setAt(index,val){this.imp.setAt(index,val.imp)}clear(){this.imp.clear()}forEach(call){let iSize=this.imp.length();for(let i=0;i<iSize;i++)call(new McGePoint3d(this.imp.at(i)),i)}}class MdGeDoubleArray{imp;constructor(imp){this.imp=new exports2.MxCpp.mxcadassemblyimp.MdGeDoubleArray,imp instanceof Object&&this.imp.copy(imp)}copy(val){return this.imp.clear(),this.imp.copy(val.imp),this}append(val){this.imp.append(val)}length(){return this.imp.length()}at(index){return this.imp.at(index)}setAt(index,val){this.imp.setAt(index,val)}clear(){this.imp.clear()}forEach(call){let iSize=this.imp.length();for(let i=0;i<iSize;i++)call(this.imp.at(i),i)}}var __assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p])}return t},__assign.apply(this,arguments)};function __awaiter(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})}function __generator(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");for(;g&&(g=0,op[0]&&(_=0)),_;)try{if(f=1,y&&(t=op[0]&2?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[op[0]&2,t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(t=_.trys,!(t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}}function __spreadArray(to,from,pack){if(pack||arguments.length===2)for(var i=0,l=from.length,ar;i<l;i++)(ar||!(i in from))&&(ar||(ar=Array.prototype.slice.call(from,0,i)),ar[i]=from[i]);return to.concat(ar||Array.prototype.slice.call(from))}typeof SuppressedError=="function"&&SuppressedError;var version="4.1.0";function wait(durationMs,resolveWith){return new Promise(function(resolve){return setTimeout(resolve,durationMs,resolveWith)})}function releaseEventLoop(){return wait(0)}function requestIdleCallbackIfAvailable(fallbackTimeout,deadlineTimeout){deadlineTimeout===void 0&&(deadlineTimeout=1/0);var requestIdleCallback=window.requestIdleCallback;return requestIdleCallback?new Promise(function(resolve){return requestIdleCallback.call(window,function(){return resolve()},{timeout:deadlineTimeout})}):wait(Math.min(fallbackTimeout,deadlineTimeout))}function isPromise(value){return!!value&&typeof value.then=="function"}function awaitIfAsync(action,callback){try{var returnedValue=action();isPromise(returnedValue)?returnedValue.then(function(result){return callback(!0,result)},function(error){return callback(!1,error)}):callback(!0,returnedValue)}catch(error){callback(!1,error)}}function mapWithBreaks(items,callback,loopReleaseInterval){return loopReleaseInterval===void 0&&(loopReleaseInterval=16),__awaiter(this,void 0,void 0,function(){var results,lastLoopReleaseTime,i,now;return __generator(this,function(_a){switch(_a.label){case 0:results=Array(items.length),lastLoopReleaseTime=Date.now(),i=0,_a.label=1;case 1:return i<items.length?(results[i]=callback(items[i],i),now=Date.now(),now>=lastLoopReleaseTime+loopReleaseInterval?(lastLoopReleaseTime=now,[4,wait(0)]):[3,3]):[3,4];case 2:_a.sent(),_a.label=3;case 3:return++i,[3,1];case 4:return[2,results]}})})}function suppressUnhandledRejectionWarning(promise){promise.then(void 0,function(){})}function includes(haystack,needle){for(var i=0,l=haystack.length;i<l;++i)if(haystack[i]===needle)return!0;return!1}function excludes(haystack,needle){return!includes(haystack,needle)}function toInt(value){return parseInt(value)}function toFloat(value){return parseFloat(value)}function replaceNaN(value,replacement){return typeof value=="number"&&isNaN(value)?replacement:value}function countTruthy(values){return values.reduce(function(sum,value){return sum+(value?1:0)},0)}function round(value,base){if(base===void 0&&(base=1),Math.abs(base)>=1)return Math.round(value/base)*base;var counterBase=1/base;return Math.round(value*counterBase)/counterBase}function parseSimpleCssSelector(selector){for(var _a,_b,errorMessage="Unexpected syntax '".concat(selector,"'"),tagMatch=/^\s*([a-z-]*)(.*)$/i.exec(selector),tag=tagMatch[1]||void 0,attributes={},partsRegex=/([.:#][\w-]+|\[.+?\])/gi,addAttribute=function(name,value){attributes[name]=attributes[name]||[],attributes[name].push(value)};;){var match=partsRegex.exec(tagMatch[2]);if(!match)break;var part=match[0];switch(part[0]){case".":addAttribute("class",part.slice(1));break;case"#":addAttribute("id",part.slice(1));break;case"[":{var attributeMatch=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(part);if(attributeMatch)addAttribute(attributeMatch[1],(_b=(_a=attributeMatch[4])!==null&&_a!==void 0?_a:attributeMatch[5])!==null&&_b!==void 0?_b:"");else throw new Error(errorMessage);break}default:throw new Error(errorMessage)}}return[tag,attributes]}function getUTF8Bytes(input){for(var result=new Uint8Array(input.length),i=0;i<input.length;i++){var charCode=input.charCodeAt(i);if(charCode<0||charCode>127)return new TextEncoder().encode(input);result[i]=charCode}return result}function x64Add(m,n){var m0=m[0]>>>16,m1=m[0]&65535,m2=m[1]>>>16,m3=m[1]&65535,n0=n[0]>>>16,n1=n[0]&65535,n2=n[1]>>>16,n3=n[1]&65535,o0=0,o1=0,o2=0,o3=0;o3+=m3+n3,o2+=o3>>>16,o3&=65535,o2+=m2+n2,o1+=o2>>>16,o2&=65535,o1+=m1+n1,o0+=o1>>>16,o1&=65535,o0+=m0+n0,o0&=65535,m[0]=o0<<16|o1,m[1]=o2<<16|o3}function x64Multiply(m,n){var m0=m[0]>>>16,m1=m[0]&65535,m2=m[1]>>>16,m3=m[1]&65535,n0=n[0]>>>16,n1=n[0]&65535,n2=n[1]>>>16,n3=n[1]&65535,o0=0,o1=0,o2=0,o3=0;o3+=m3*n3,o2+=o3>>>16,o3&=65535,o2+=m2*n3,o1+=o2>>>16,o2&=65535,o2+=m3*n2,o1+=o2>>>16,o2&=65535,o1+=m1*n3,o0+=o1>>>16,o1&=65535,o1+=m2*n2,o0+=o1>>>16,o1&=65535,o1+=m3*n1,o0+=o1>>>16,o1&=65535,o0+=m0*n3+m1*n2+m2*n1+m3*n0,o0&=65535,m[0]=o0<<16|o1,m[1]=o2<<16|o3}function x64Rotl(m,bits){var m0=m[0];bits%=64,bits===32?(m[0]=m[1],m[1]=m0):bits<32?(m[0]=m0<<bits|m[1]>>>32-bits,m[1]=m[1]<<bits|m0>>>32-bits):(bits-=32,m[0]=m[1]<<bits|m0>>>32-bits,m[1]=m0<<bits|m[1]>>>32-bits)}function x64LeftShift(m,bits){bits%=64,bits!==0&&(bits<32?(m[0]=m[1]>>>32-bits,m[1]=m[1]<<bits):(m[0]=m[1]<<bits-32,m[1]=0))}function x64Xor(m,n){m[0]^=n[0],m[1]^=n[1]}var F1=[4283543511,3981806797],F2=[3301882366,444984403];function x64Fmix(h){var shifted=[0,h[0]>>>1];x64Xor(h,shifted),x64Multiply(h,F1),shifted[1]=h[0]>>>1,x64Xor(h,shifted),x64Multiply(h,F2),shifted[1]=h[0]>>>1,x64Xor(h,shifted)}var C1=[2277735313,289559509],C2=[1291169091,658871167],M$1=[0,5],N1=[0,1390208809],N2=[0,944331445];function x64hash128(input,seed){var key=getUTF8Bytes(input);seed=seed||0;var length=[0,key.length],remainder=length[1]%16,bytes=length[1]-remainder,h1=[0,seed],h2=[0,seed],k1=[0,0],k2=[0,0],i;for(i=0;i<bytes;i=i+16)k1[0]=key[i+4]|key[i+5]<<8|key[i+6]<<16|key[i+7]<<24,k1[1]=key[i]|key[i+1]<<8|key[i+2]<<16|key[i+3]<<24,k2[0]=key[i+12]|key[i+13]<<8|key[i+14]<<16|key[i+15]<<24,k2[1]=key[i+8]|key[i+9]<<8|key[i+10]<<16|key[i+11]<<24,x64Multiply(k1,C1),x64Rotl(k1,31),x64Multiply(k1,C2),x64Xor(h1,k1),x64Rotl(h1,27),x64Add(h1,h2),x64Multiply(h1,M$1),x64Add(h1,N1),x64Multiply(k2,C2),x64Rotl(k2,33),x64Multiply(k2,C1),x64Xor(h2,k2),x64Rotl(h2,31),x64Add(h2,h1),x64Multiply(h2,M$1),x64Add(h2,N2);k1[0]=0,k1[1]=0,k2[0]=0,k2[1]=0;var val=[0,0];switch(remainder){case 15:val[1]=key[i+14],x64LeftShift(val,48),x64Xor(k2,val);case 14:val[1]=key[i+13],x64LeftShift(val,40),x64Xor(k2,val);case 13:val[1]=key[i+12],x64LeftShift(val,32),x64Xor(k2,val);case 12:val[1]=key[i+11],x64LeftShift(val,24),x64Xor(k2,val);case 11:val[1]=key[i+10],x64LeftShift(val,16),x64Xor(k2,val);case 10:val[1]=key[i+9],x64LeftShift(val,8),x64Xor(k2,val);case 9:val[1]=key[i+8],x64Xor(k2,val),x64Multiply(k2,C2),x64Rotl(k2,33),x64Multiply(k2,C1),x64Xor(h2,k2);case 8:val[1]=key[i+7],x64LeftShift(val,56),x64Xor(k1,val);case 7:val[1]=key[i+6],x64LeftShift(val,48),x64Xor(k1,val);case 6:val[1]=key[i+5],x64LeftShift(val,40),x64Xor(k1,val);case 5:val[1]=key[i+4],x64LeftShift(val,32),x64Xor(k1,val);case 4:val[1]=key[i+3],x64LeftShift(val,24),x64Xor(k1,val);case 3:val[1]=key[i+2],x64LeftShift(val,16),x64Xor(k1,val);case 2:val[1]=key[i+1],x64LeftShift(val,8),x64Xor(k1,val);case 1:val[1]=key[i],x64Xor(k1,val),x64Multiply(k1,C1),x64Rotl(k1,31),x64Multiply(k1,C2),x64Xor(h1,k1)}return x64Xor(h1,length),x64Xor(h2,length),x64Add(h1,h2),x64Add(h2,h1),x64Fmix(h1),x64Fmix(h2),x64Add(h1,h2),x64Add(h2,h1),("00000000"+(h1[0]>>>0).toString(16)).slice(-8)+("00000000"+(h1[1]>>>0).toString(16)).slice(-8)+("00000000"+(h2[0]>>>0).toString(16)).slice(-8)+("00000000"+(h2[1]>>>0).toString(16)).slice(-8)}function errorToObject(error){var _a;return __assign({name:error.name,message:error.message,stack:(_a=error.stack)===null||_a===void 0?void 0:_a.split(`
2
2
  `)},error)}function isFunctionNative(func){return/^function\s.*?\{\s*\[native code]\s*}$/.test(String(func))}function isFinalResultLoaded(loadResult){return typeof loadResult!="function"}function loadSource(source,sourceOptions){var sourceLoadPromise=new Promise(function(resolveLoad){var loadStartTime=Date.now();awaitIfAsync(source.bind(null,sourceOptions),function(){for(var loadArgs=[],_i=0;_i<arguments.length;_i++)loadArgs[_i]=arguments[_i];var loadDuration=Date.now()-loadStartTime;if(!loadArgs[0])return resolveLoad(function(){return{error:loadArgs[1],duration:loadDuration}});var loadResult=loadArgs[1];if(isFinalResultLoaded(loadResult))return resolveLoad(function(){return{value:loadResult,duration:loadDuration}});resolveLoad(function(){return new Promise(function(resolveGet){var getStartTime=Date.now();awaitIfAsync(loadResult,function(){for(var getArgs=[],_i2=0;_i2<arguments.length;_i2++)getArgs[_i2]=arguments[_i2];var duration=loadDuration+Date.now()-getStartTime;if(!getArgs[0])return resolveGet({error:getArgs[1],duration});resolveGet({value:getArgs[1],duration})})})})})});return suppressUnhandledRejectionWarning(sourceLoadPromise),function(){return sourceLoadPromise.then(function(finalizeSource){return finalizeSource()})}}function loadSources(sources2,sourceOptions,excludeSources){var includedSources=Object.keys(sources2).filter(function(sourceKey){return excludes(excludeSources,sourceKey)}),sourceGettersPromise=mapWithBreaks(includedSources,function(sourceKey){return loadSource(sources2[sourceKey],sourceOptions)});return suppressUnhandledRejectionWarning(sourceGettersPromise),function(){return __awaiter(this,void 0,void 0,function(){var sourceGetters,componentPromises,componentArray,components,index;return __generator(this,function(_a){switch(_a.label){case 0:return[4,sourceGettersPromise];case 1:return sourceGetters=_a.sent(),[4,mapWithBreaks(sourceGetters,function(sourceGetter){var componentPromise=sourceGetter();return suppressUnhandledRejectionWarning(componentPromise),componentPromise})];case 2:return componentPromises=_a.sent(),[4,Promise.all(componentPromises)];case 3:for(componentArray=_a.sent(),components={},index=0;index<includedSources.length;++index)components[includedSources[index]]=componentArray[index];return[2,components]}})})}}function isTrident(){var w=window,n=navigator;return countTruthy(["MSCSSMatrix"in w,"msSetImmediate"in w,"msIndexedDB"in w,"msMaxTouchPoints"in n,"msPointerEnabled"in n])>=4}function isEdgeHTML(){var w=window,n=navigator;return countTruthy(["msWriteProfilerMark"in w,"MSStream"in w,"msLaunchUri"in n,"msSaveBlob"in n])>=3&&!isTrident()}function isChromium(){var w=window,n=navigator;return countTruthy(["webkitPersistentStorage"in n,"webkitTemporaryStorage"in n,n.vendor.indexOf("Google")===0,"webkitResolveLocalFileSystemURL"in w,"BatteryManager"in w,"webkitMediaStream"in w,"webkitSpeechGrammar"in w])>=5}function isWebKit(){var w=window,n=navigator;return countTruthy(["ApplePayError"in w,"CSSPrimitiveValue"in w,"Counter"in w,n.vendor.indexOf("Apple")===0,"getStorageUpdates"in n,"WebKitMediaKeys"in w])>=4}function isDesktopWebKit(){var w=window,HTMLElement=w.HTMLElement,Document=w.Document;return countTruthy(["safari"in w,!("ongestureend"in w),!("TouchEvent"in w),!("orientation"in w),HTMLElement&&!("autocapitalize"in HTMLElement.prototype),Document&&"pointerLockElement"in Document.prototype])>=4}function isSafariWebKit(){var w=window;return isFunctionNative(w.print)?countTruthy([String(w.browser)==="[object WebPageNamespace]","MicrodataExtractor"in w])>=1:!1}function isGecko(){var _a,_b,w=window;return countTruthy(["buildID"in navigator,"MozAppearance"in((_b=(_a=document.documentElement)===null||_a===void 0?void 0:_a.style)!==null&&_b!==void 0?_b:{}),"onmozfullscreenchange"in w,"mozInnerScreenX"in w,"CSSMozDocumentRule"in w,"CanvasCaptureMediaStream"in w])>=4}function isChromium86OrNewer(){var w=window;return countTruthy([!("MediaSettingsRange"in w),"RTCEncodedAudioFrame"in w,""+w.Intl=="[object Intl]",""+w.Reflect=="[object Reflect]"])>=3}function isWebKit606OrNewer(){var w=window;return countTruthy(["DOMRectList"in w,"RTCPeerConnectionIceEvent"in w,"SVGGeometryElement"in w,"ontransitioncancel"in w])>=3}function isWebKit616OrNewer(){var w=window,n=navigator,CSS=w.CSS,HTMLButtonElement=w.HTMLButtonElement;return countTruthy([!("getStorageUpdates"in n),HTMLButtonElement&&"popover"in HTMLButtonElement.prototype,"CSSCounterStyleRule"in w,CSS.supports("font-size-adjust: ex-height 0.5"),CSS.supports("text-transform: full-width")])>=4}function isIPad(){if(navigator.platform==="iPad")return!0;var s=screen,screenRatio=s.width/s.height;return countTruthy(["MediaSource"in window,!!Element.prototype.webkitRequestFullscreen,screenRatio>.65&&screenRatio<1.53])>=2}function getFullscreenElement(){var d=document;return d.fullscreenElement||d.msFullscreenElement||d.mozFullScreenElement||d.webkitFullscreenElement||null}function exitFullscreen(){var d=document;return(d.exitFullscreen||d.msExitFullscreen||d.mozCancelFullScreen||d.webkitExitFullscreen).call(d)}function isAndroid(){var isItChromium=isChromium(),isItGecko=isGecko();if(!isItChromium&&!isItGecko)return!1;var w=window;return countTruthy(["onorientationchange"in w,"orientation"in w,isItChromium&&!("SharedWorker"in w),isItGecko&&/android/i.test(navigator.appVersion)])>=2}function getAudioFingerprint(){return doesBrowserPerformAntifingerprinting$1()?-4:getRawAudioFingerprint()}function getRawAudioFingerprint(){var w=window,AudioContext=w.OfflineAudioContext||w.webkitOfflineAudioContext;if(!AudioContext)return-2;if(doesBrowserSuspendAudioContext())return-1;var hashFromIndex=4500,hashToIndex=5e3,context=new AudioContext(1,hashToIndex,44100),oscillator=context.createOscillator();oscillator.type="triangle",oscillator.frequency.value=1e4;var compressor=context.createDynamicsCompressor();compressor.threshold.value=-50,compressor.knee.value=40,compressor.ratio.value=12,compressor.attack.value=0,compressor.release.value=.25,oscillator.connect(compressor),compressor.connect(context.destination),oscillator.start(0);var _a=startRenderingAudio(context),renderPromise=_a[0],finishRendering=_a[1],fingerprintPromise=renderPromise.then(function(buffer){return getHash(buffer.getChannelData(0).subarray(hashFromIndex))},function(error){if(error.name==="timeout"||error.name==="suspended")return-3;throw error});return suppressUnhandledRejectionWarning(fingerprintPromise),function(){return finishRendering(),fingerprintPromise}}function doesBrowserSuspendAudioContext(){return isWebKit()&&!isDesktopWebKit()&&!isWebKit606OrNewer()}function doesBrowserPerformAntifingerprinting$1(){return isWebKit()&&isWebKit616OrNewer()&&isSafariWebKit()}function startRenderingAudio(context){var renderTryMaxCount=3,renderRetryDelay=500,runningMaxAwaitTime=500,runningSufficientTime=5e3,finalize=function(){},resultPromise=new Promise(function(resolve,reject){var isFinalized=!1,renderTryCount=0,startedRunningAt=0;context.oncomplete=function(event){return resolve(event.renderedBuffer)};var startRunningTimeout=function(){setTimeout(function(){return reject(makeInnerError("timeout"))},Math.min(runningMaxAwaitTime,startedRunningAt+runningSufficientTime-Date.now()))},tryRender=function(){try{var renderingPromise=context.startRendering();switch(isPromise(renderingPromise)&&suppressUnhandledRejectionWarning(renderingPromise),context.state){case"running":startedRunningAt=Date.now(),isFinalized&&startRunningTimeout();break;case"suspended":document.hidden||renderTryCount++,isFinalized&&renderTryCount>=renderTryMaxCount?reject(makeInnerError("suspended")):setTimeout(tryRender,renderRetryDelay);break}}catch(error){reject(error)}};tryRender(),finalize=function(){isFinalized||(isFinalized=!0,startedRunningAt>0&&startRunningTimeout())}});return[resultPromise,finalize]}function getHash(signal){for(var hash=0,i=0;i<signal.length;++i)hash+=Math.abs(signal[i]);return hash}function makeInnerError(name){var error=new Error(name);return error.name=name,error}function withIframe(action,initialHtml,domPollInterval){var _a,_b,_c;return domPollInterval===void 0&&(domPollInterval=50),__awaiter(this,void 0,void 0,function(){var d,iframe;return __generator(this,function(_d){switch(_d.label){case 0:d=document,_d.label=1;case 1:return d.body?[3,3]:[4,wait(domPollInterval)];case 2:return _d.sent(),[3,1];case 3:iframe=d.createElement("iframe"),_d.label=4;case 4:return _d.trys.push([4,,10,11]),[4,new Promise(function(_resolve,_reject){var isComplete=!1,resolve=function(){isComplete=!0,_resolve()},reject=function(error){isComplete=!0,_reject(error)};iframe.onload=resolve,iframe.onerror=reject;var style=iframe.style;style.setProperty("display","block","important"),style.position="absolute",style.top="0",style.left="0",style.visibility="hidden",initialHtml&&"srcdoc"in iframe?iframe.srcdoc=initialHtml:iframe.src="about:blank",d.body.appendChild(iframe);var checkReadyState=function(){var _a2,_b2;isComplete||(((_b2=(_a2=iframe.contentWindow)===null||_a2===void 0?void 0:_a2.document)===null||_b2===void 0?void 0:_b2.readyState)==="complete"?resolve():setTimeout(checkReadyState,10))};checkReadyState()})];case 5:_d.sent(),_d.label=6;case 6:return!((_b=(_a=iframe.contentWindow)===null||_a===void 0?void 0:_a.document)===null||_b===void 0)&&_b.body?[3,8]:[4,wait(domPollInterval)];case 7:return _d.sent(),[3,6];case 8:return[4,action(iframe,iframe.contentWindow)];case 9:return[2,_d.sent()];case 10:return(_c=iframe.parentNode)===null||_c===void 0||_c.removeChild(iframe),[7];case 11:return[2]}})})}function selectorToElement(selector){for(var _a=parseSimpleCssSelector(selector),tag=_a[0],attributes=_a[1],element=document.createElement(tag??"div"),_i=0,_b=Object.keys(attributes);_i<_b.length;_i++){var name_1=_b[_i],value=attributes[name_1].join(" ");name_1==="style"?addStyleString(element.style,value):element.setAttribute(name_1,value)}return element}function addStyleString(style,source){for(var _i=0,_a=source.split(";");_i<_a.length;_i++){var property=_a[_i],match=/^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(property);if(match){var name_2=match[1],value=match[2],priority=match[4];style.setProperty(name_2,value,priority||"")}}}var testString="mmMwWLliI0O&1",textSize="48px",baseFonts=["monospace","sans-serif","serif"],fontList=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"];function getFonts(){var _this=this;return withIframe(function(_,_a){var document2=_a.document;return __awaiter(_this,void 0,void 0,function(){var holder,spansContainer,defaultWidth,defaultHeight,createSpan,createSpanWithFonts,initializeBaseFontsSpans,initializeFontsSpans,isFontAvailable,baseFontsSpans,fontsSpans,index;return __generator(this,function(_b){switch(_b.label){case 0:return holder=document2.body,holder.style.fontSize=textSize,spansContainer=document2.createElement("div"),spansContainer.style.setProperty("visibility","hidden","important"),defaultWidth={},defaultHeight={},createSpan=function(fontFamily){var span=document2.createElement("span"),style=span.style;return style.position="absolute",style.top="0",style.left="0",style.fontFamily=fontFamily,span.textContent=testString,spansContainer.appendChild(span),span},createSpanWithFonts=function(fontToDetect,baseFont){return createSpan("'".concat(fontToDetect,"',").concat(baseFont))},initializeBaseFontsSpans=function(){return baseFonts.map(createSpan)},initializeFontsSpans=function(){for(var spans={},_loop_1=function(font2){spans[font2]=baseFonts.map(function(baseFont){return createSpanWithFonts(font2,baseFont)})},_i=0,fontList_1=fontList;_i<fontList_1.length;_i++){var font=fontList_1[_i];_loop_1(font)}return spans},isFontAvailable=function(fontSpans){return baseFonts.some(function(baseFont,baseFontIndex){return fontSpans[baseFontIndex].offsetWidth!==defaultWidth[baseFont]||fontSpans[baseFontIndex].offsetHeight!==defaultHeight[baseFont]})},baseFontsSpans=initializeBaseFontsSpans(),fontsSpans=initializeFontsSpans(),holder.appendChild(spansContainer),[4,releaseEventLoop()];case 1:for(_b.sent(),index=0;index<baseFonts.length;index++)defaultWidth[baseFonts[index]]=baseFontsSpans[index].offsetWidth,defaultHeight[baseFonts[index]]=baseFontsSpans[index].offsetHeight;return[2,fontList.filter(function(font){return isFontAvailable(fontsSpans[font])})]}})})})}function getPlugins(){var rawPlugins=navigator.plugins;if(!!rawPlugins){for(var plugins=[],i=0;i<rawPlugins.length;++i){var plugin=rawPlugins[i];if(!!plugin){for(var mimeTypes=[],j=0;j<plugin.length;++j){var mimeType=plugin[j];mimeTypes.push({type:mimeType.type,suffixes:mimeType.suffixes})}plugins.push({name:plugin.name,description:plugin.description,mimeTypes})}}return plugins}}function getCanvasFingerprint(){return getRawCanvasFingerprint(doesBrowserPerformAntifingerprinting())}function getRawCanvasFingerprint(skipImages){return __awaiter(this,void 0,void 0,function(){var winding,geometry,text,_a,canvas,context,_b;return __generator(this,function(_c){switch(_c.label){case 0:return winding=!1,_a=makeCanvasContext(),canvas=_a[0],context=_a[1],isSupported(canvas,context)?[3,1]:(geometry=text="unsupported",[3,4]);case 1:return winding=doesSupportWinding(context),skipImages?(geometry=text="skipped",[3,4]):[3,2];case 2:return[4,renderImages(canvas,context)];case 3:_b=_c.sent(),geometry=_b[0],text=_b[1],_c.label=4;case 4:return[2,{winding,geometry,text}]}})})}function makeCanvasContext(){var canvas=document.createElement("canvas");return canvas.width=1,canvas.height=1,[canvas,canvas.getContext("2d")]}function isSupported(canvas,context){return!!(context&&canvas.toDataURL)}function doesSupportWinding(context){return context.rect(0,0,10,10),context.rect(2,2,6,6),!context.isPointInPath(5,5,"evenodd")}function renderImages(canvas,context){return __awaiter(this,void 0,void 0,function(){var textImage1,textImage2,geometryImage;return __generator(this,function(_a){switch(_a.label){case 0:return renderTextImage(canvas,context),[4,releaseEventLoop()];case 1:return _a.sent(),textImage1=canvasToString(canvas),textImage2=canvasToString(canvas),textImage1!==textImage2?[2,["unstable","unstable"]]:(renderGeometryImage(canvas,context),[4,releaseEventLoop()]);case 2:return _a.sent(),geometryImage=canvasToString(canvas),[2,[textImage1,geometryImage]]}})})}function renderTextImage(canvas,context){canvas.width=240,canvas.height=60,context.textBaseline="alphabetic",context.fillStyle="#f60",context.fillRect(100,1,62,20),context.fillStyle="#069",context.font='11pt "Times New Roman"';var printedText="Cwm fjordbank gly ".concat(String.fromCharCode(55357,56835));context.fillText(printedText,2,15),context.fillStyle="rgba(102, 204, 0, 0.2)",context.font="18pt Arial",context.fillText(printedText,4,45)}function renderGeometryImage(canvas,context){canvas.width=122,canvas.height=110,context.globalCompositeOperation="multiply";for(var _i=0,_a=[["#f2f",40,40],["#2ff",80,40],["#ff2",60,80]];_i<_a.length;_i++){var _b=_a[_i],color=_b[0],x=_b[1],y=_b[2];context.fillStyle=color,context.beginPath(),context.arc(x,y,40,0,Math.PI*2,!0),context.closePath(),context.fill()}context.fillStyle="#f9c",context.arc(60,60,60,0,Math.PI*2,!0),context.arc(60,60,20,0,Math.PI*2,!0),context.fill("evenodd")}function canvasToString(canvas){return canvas.toDataURL()}function doesBrowserPerformAntifingerprinting(){return isWebKit()&&isWebKit616OrNewer()&&isSafariWebKit()}function getTouchSupport(){var n=navigator,maxTouchPoints=0,touchEvent;n.maxTouchPoints!==void 0?maxTouchPoints=toInt(n.maxTouchPoints):n.msMaxTouchPoints!==void 0&&(maxTouchPoints=n.msMaxTouchPoints);try{document.createEvent("TouchEvent"),touchEvent=!0}catch{touchEvent=!1}var touchStart="ontouchstart"in window;return{maxTouchPoints,touchEvent,touchStart}}function getOsCpu(){return navigator.oscpu}function getLanguages(){var n=navigator,result=[],language=n.language||n.userLanguage||n.browserLanguage||n.systemLanguage;if(language!==void 0&&result.push([language]),Array.isArray(n.languages))isChromium()&&isChromium86OrNewer()||result.push(n.languages);else if(typeof n.languages=="string"){var languages=n.languages;languages&&result.push(languages.split(","))}return result}function getColorDepth(){return window.screen.colorDepth}function getDeviceMemory(){return replaceNaN(toFloat(navigator.deviceMemory),void 0)}function getScreenResolution(){if(!(isWebKit()&&isWebKit616OrNewer()&&isSafariWebKit()))return getRawScreenResolution()}function getRawScreenResolution(){var s=screen,parseDimension=function(value){return replaceNaN(toInt(value),null)},dimensions=[parseDimension(s.width),parseDimension(s.height)];return dimensions.sort().reverse(),dimensions}var screenFrameCheckInterval=2500,roundingPrecision=10,screenFrameBackup,screenFrameSizeTimeoutId;function watchScreenFrame(){if(screenFrameSizeTimeoutId===void 0){var checkScreenFrame=function(){var frameSize=getCurrentScreenFrame();isFrameSizeNull(frameSize)?screenFrameSizeTimeoutId=setTimeout(checkScreenFrame,screenFrameCheckInterval):(screenFrameBackup=frameSize,screenFrameSizeTimeoutId=void 0)};checkScreenFrame()}}function getRawScreenFrame(){var _this=this;return watchScreenFrame(),function(){return __awaiter(_this,void 0,void 0,function(){var frameSize;return __generator(this,function(_a){switch(_a.label){case 0:return frameSize=getCurrentScreenFrame(),isFrameSizeNull(frameSize)?screenFrameBackup?[2,__spreadArray([],screenFrameBackup,!0)]:getFullscreenElement()?[4,exitFullscreen()]:[3,2]:[3,2];case 1:_a.sent(),frameSize=getCurrentScreenFrame(),_a.label=2;case 2:return isFrameSizeNull(frameSize)||(screenFrameBackup=frameSize),[2,frameSize]}})})}}function getScreenFrame(){var _this=this;if(isWebKit()&&isWebKit616OrNewer()&&isSafariWebKit())return function(){return Promise.resolve(void 0)};var screenFrameGetter=getRawScreenFrame();return function(){return __awaiter(_this,void 0,void 0,function(){var frameSize,processSize;return __generator(this,function(_a){switch(_a.label){case 0:return[4,screenFrameGetter()];case 1:return frameSize=_a.sent(),processSize=function(sideSize){return sideSize===null?null:round(sideSize,roundingPrecision)},[2,[processSize(frameSize[0]),processSize(frameSize[1]),processSize(frameSize[2]),processSize(frameSize[3])]]}})})}}function getCurrentScreenFrame(){var s=screen;return[replaceNaN(toFloat(s.availTop),null),replaceNaN(toFloat(s.width)-toFloat(s.availWidth)-replaceNaN(toFloat(s.availLeft),0),null),replaceNaN(toFloat(s.height)-toFloat(s.availHeight)-replaceNaN(toFloat(s.availTop),0),null),replaceNaN(toFloat(s.availLeft),null)]}function isFrameSizeNull(frameSize){for(var i=0;i<4;++i)if(frameSize[i])return!1;return!0}function getHardwareConcurrency(){return replaceNaN(toInt(navigator.hardwareConcurrency),void 0)}function getTimezone(){var _a,DateTimeFormat=(_a=window.Intl)===null||_a===void 0?void 0:_a.DateTimeFormat;if(DateTimeFormat){var timezone=new DateTimeFormat().resolvedOptions().timeZone;if(timezone)return timezone}var offset=-getTimezoneOffset();return"UTC".concat(offset>=0?"+":"").concat(Math.abs(offset))}function getTimezoneOffset(){var currentYear=new Date().getFullYear();return Math.max(toFloat(new Date(currentYear,0,1).getTimezoneOffset()),toFloat(new Date(currentYear,6,1).getTimezoneOffset()))}function getSessionStorage(){try{return!!window.sessionStorage}catch{return!0}}function getLocalStorage(){try{return!!window.localStorage}catch{return!0}}function getIndexedDB(){if(!(isTrident()||isEdgeHTML()))try{return!!window.indexedDB}catch{return!0}}function getOpenDatabase(){return!!window.openDatabase}function getCpuClass(){return navigator.cpuClass}function getPlatform(){var platform=navigator.platform;return platform==="MacIntel"&&isWebKit()&&!isDesktopWebKit()?isIPad()?"iPad":"iPhone":platform}function getVendor(){return navigator.vendor||""}function getVendorFlavors(){for(var flavors=[],_i=0,_a=["chrome","safari","__crWeb","__gCrWeb","yandex","__yb","__ybro","__firefox__","__edgeTrackingPreventionStatistics","webkit","oprt","samsungAr","ucweb","UCShellJava","puffinDevice"];_i<_a.length;_i++){var key=_a[_i],value=window[key];value&&typeof value=="object"&&flavors.push(key)}return flavors.sort()}function areCookiesEnabled(){var d=document;try{d.cookie="cookietest=1; SameSite=Strict;";var result=d.cookie.indexOf("cookietest=")!==-1;return d.cookie="cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT",result}catch{return!1}}function getFilters(){var fromB64=atob;return{abpIndo:["#Iklan-Melayang","#Kolom-Iklan-728","#SidebarIklan-wrapper",'[title="ALIENBOLA" i]',fromB64("I0JveC1CYW5uZXItYWRz")],abpvn:[".quangcao","#mobileCatfish",fromB64("LmNsb3NlLWFkcw=="),'[id^="bn_bottom_fixed_"]',"#pmadv"],adBlockFinland:[".mainostila",fromB64("LnNwb25zb3JpdA=="),".ylamainos",fromB64("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"),fromB64("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd")],adBlockPersian:["#navbar_notice_50",".kadr",'TABLE[width="140px"]',"#divAgahi",fromB64("YVtocmVmXj0iaHR0cDovL2cxLnYuZndtcm0ubmV0L2FkLyJd")],adBlockWarningRemoval:["#adblock-honeypot",".adblocker-root",".wp_adblock_detect",fromB64("LmhlYWRlci1ibG9ja2VkLWFk"),fromB64("I2FkX2Jsb2NrZXI=")],adGuardAnnoyances:[".hs-sosyal","#cookieconsentdiv",'div[class^="app_gdpr"]',".as-oil",'[data-cypress="soft-push-notification-modal"]'],adGuardBase:[".BetterJsPopOverlay",fromB64("I2FkXzMwMFgyNTA="),fromB64("I2Jhbm5lcmZsb2F0MjI="),fromB64("I2NhbXBhaWduLWJhbm5lcg=="),fromB64("I0FkLUNvbnRlbnQ=")],adGuardChinese:[fromB64("LlppX2FkX2FfSA=="),fromB64("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"),"#widget-quan",fromB64("YVtocmVmKj0iLzg0OTkyMDIwLnh5eiJd"),fromB64("YVtocmVmKj0iLjE5NTZobC5jb20vIl0=")],adGuardFrench:["#pavePub",fromB64("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"),".mobile_adhesion",".widgetadv",fromB64("LmFkc19iYW4=")],adGuardGerman:['aside[data-portal-id="leaderboard"]'],adGuardJapanese:["#kauli_yad_1",fromB64("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="),fromB64("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="),fromB64("LmFkZ29vZ2xl"),fromB64("Ll9faXNib29zdFJldHVybkFk")],adGuardMobile:[fromB64("YW1wLWF1dG8tYWRz"),fromB64("LmFtcF9hZA=="),'amp-embed[type="24smi"]',"#mgid_iframe1",fromB64("I2FkX2ludmlld19hcmVh")],adGuardRussian:[fromB64("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="),fromB64("LnJlY2xhbWE="),'div[id^="smi2adblock"]',fromB64("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"),"#psyduckpockeball"],adGuardSocial:[fromB64("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="),fromB64("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="),".etsy-tweet","#inlineShare",".popup-social"],adGuardSpanishPortuguese:["#barraPublicidade","#Publicidade","#publiEspecial","#queTooltip",".cnt-publi"],adGuardTrackingProtection:["#qoo-counter",fromB64("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="),fromB64("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="),fromB64("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="),"#top100counter"],adGuardTurkish:["#backkapat",fromB64("I3Jla2xhbWk="),fromB64("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="),fromB64("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"),fromB64("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==")],bulgarian:[fromB64("dGQjZnJlZW5ldF90YWJsZV9hZHM="),"#ea_intext_div",".lapni-pop-over","#xenium_hot_offers"],easyList:[".yb-floorad",fromB64("LndpZGdldF9wb19hZHNfd2lkZ2V0"),fromB64("LnRyYWZmaWNqdW5reS1hZA=="),".textad_headline",fromB64("LnNwb25zb3JlZC10ZXh0LWxpbmtz")],easyListChina:[fromB64("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="),fromB64("LmZyb250cGFnZUFkdk0="),"#taotaole","#aafoot.top_box",".cfa_popup"],easyListCookie:[".ezmob-footer",".cc-CookieWarning","[data-cookie-number]",fromB64("LmF3LWNvb2tpZS1iYW5uZXI="),".sygnal24-gdpr-modal-wrap"],easyListCzechSlovak:["#onlajny-stickers",fromB64("I3Jla2xhbW5pLWJveA=="),fromB64("LnJla2xhbWEtbWVnYWJvYXJk"),".sklik",fromB64("W2lkXj0ic2tsaWtSZWtsYW1hIl0=")],easyListDutch:[fromB64("I2FkdmVydGVudGll"),fromB64("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="),".adstekst",fromB64("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="),"#semilo-lrectangle"],easyListGermany:["#SSpotIMPopSlider",fromB64("LnNwb25zb3JsaW5rZ3J1ZW4="),fromB64("I3dlcmJ1bmdza3k="),fromB64("I3Jla2xhbWUtcmVjaHRzLW1pdHRl"),fromB64("YVtocmVmXj0iaHR0cHM6Ly9iZDc0Mi5jb20vIl0=")],easyListItaly:[fromB64("LmJveF9hZHZfYW5udW5jaQ=="),".sb-box-pubbliredazionale",fromB64("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"),fromB64("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"),fromB64("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ==")],easyListLithuania:[fromB64("LnJla2xhbW9zX3RhcnBhcw=="),fromB64("LnJla2xhbW9zX251b3JvZG9z"),fromB64("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"),fromB64("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"),fromB64("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd")],estonian:[fromB64("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")],fanboyAnnoyances:["#ac-lre-player",".navigate-to-top","#subscribe_popup",".newsletter_holder","#back-top"],fanboyAntiFacebook:[".util-bar-module-firefly-visible"],fanboyEnhancedTrackers:[".open.pushModal","#issuem-leaky-paywall-articles-zero-remaining-nag","#sovrn_container",'div[class$="-hide"][zoompage-fontsize][style="display: block;"]',".BlockNag__Card"],fanboySocial:["#FollowUs","#meteored_share","#social_follow",".article-sharer",".community__social-desc"],frellwitSwedish:[fromB64("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="),fromB64("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="),"article.category-samarbete",fromB64("ZGl2LmhvbGlkQWRz"),"ul.adsmodern"],greekAdBlock:[fromB64("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"),fromB64("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="),fromB64("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"),"DIV.agores300","TABLE.advright"],hungarian:["#cemp_doboz",".optimonk-iframe-container",fromB64("LmFkX19tYWlu"),fromB64("W2NsYXNzKj0iR29vZ2xlQWRzIl0="),"#hirdetesek_box"],iDontCareAboutCookies:['.alert-info[data-block-track*="CookieNotice"]',".ModuleTemplateCookieIndicator",".o--cookies--container","#cookies-policy-sticky","#stickyCookieBar"],icelandicAbp:[fromB64("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ==")],latvian:[fromB64("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0="),fromB64("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==")],listKr:[fromB64("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="),fromB64("I2xpdmVyZUFkV3JhcHBlcg=="),fromB64("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="),fromB64("aW5zLmZhc3R2aWV3LWFk"),".revenue_unit_item.dable"],listeAr:[fromB64("LmdlbWluaUxCMUFk"),".right-and-left-sponsers",fromB64("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="),fromB64("YVtocmVmKj0iYm9vcmFxLm9yZyJd"),fromB64("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd")],listeFr:[fromB64("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="),fromB64("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="),fromB64("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="),".site-pub-interstitiel",'div[id^="crt-"][data-criteo-id]'],officialPolish:["#ceneo-placeholder-ceneo-12",fromB64("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"),fromB64("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="),fromB64("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="),fromB64("ZGl2I3NrYXBpZWNfYWQ=")],ro:[fromB64("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"),fromB64("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"),fromB64("YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0="),fromB64("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd"),'a[href^="/url/"]'],ruAd:[fromB64("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"),fromB64("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="),fromB64("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="),"#pgeldiz",".yandex-rtb-block"],thaiAds:["a[href*=macau-uta-popup]",fromB64("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="),fromB64("LmFkczMwMHM="),".bumq",".img-kosana"],webAnnoyancesUltralist:["#mod-social-share-2","#social-tools",fromB64("LmN0cGwtZnVsbGJhbm5lcg=="),".zergnet-recommend",".yt.btn-link.btn-md.btn"]}}function getDomBlockers(_a){var _b=_a===void 0?{}:_a,debug=_b.debug;return __awaiter(this,void 0,void 0,function(){var filters,filterNames,allSelectors,blockedSelectors,activeBlockers,_c;return __generator(this,function(_d){switch(_d.label){case 0:return isApplicable()?(filters=getFilters(),filterNames=Object.keys(filters),allSelectors=(_c=[]).concat.apply(_c,filterNames.map(function(filterName){return filters[filterName]})),[4,getBlockedSelectors(allSelectors)]):[2,void 0];case 1:return blockedSelectors=_d.sent(),debug&&printDebug(filters,blockedSelectors),activeBlockers=filterNames.filter(function(filterName){var selectors=filters[filterName],blockedCount=countTruthy(selectors.map(function(selector){return blockedSelectors[selector]}));return blockedCount>selectors.length*.6}),activeBlockers.sort(),[2,activeBlockers]}})})}function isApplicable(){return isWebKit()||isAndroid()}function getBlockedSelectors(selectors){var _a;return __awaiter(this,void 0,void 0,function(){var d,root,elements,blockedSelectors,i,element,holder,i;return __generator(this,function(_b){switch(_b.label){case 0:for(d=document,root=d.createElement("div"),elements=new Array(selectors.length),blockedSelectors={},forceShow(root),i=0;i<selectors.length;++i)element=selectorToElement(selectors[i]),element.tagName==="DIALOG"&&element.show(),holder=d.createElement("div"),forceShow(holder),holder.appendChild(element),root.appendChild(holder),elements[i]=element;_b.label=1;case 1:return d.body?[3,3]:[4,wait(50)];case 2:return _b.sent(),[3,1];case 3:return d.body.appendChild(root),[4,releaseEventLoop()];case 4:_b.sent();try{for(i=0;i<selectors.length;++i)elements[i].offsetParent||(blockedSelectors[selectors[i]]=!0)}finally{(_a=root.parentNode)===null||_a===void 0||_a.removeChild(root)}return[2,blockedSelectors]}})})}function forceShow(element){element.style.setProperty("visibility","hidden","important"),element.style.setProperty("display","block","important")}function printDebug(filters,blockedSelectors){for(var message="DOM blockers debug:\n```",_i=0,_a=Object.keys(filters);_i<_a.length;_i++){var filterName=_a[_i];message+=`
3
3
  `.concat(filterName,":");for(var _b=0,_c=filters[filterName];_b<_c.length;_b++){var selector=_c[_b];message+=`
4
4
  `.concat(blockedSelectors[selector]?"\u{1F6AB}":"\u27A1\uFE0F"," ").concat(selector)}}console.log("".concat(message,"\n```"))}function getColorGamut(){for(var _i=0,_a=["rec2020","p3","srgb"];_i<_a.length;_i++){var gamut=_a[_i];if(matchMedia("(color-gamut: ".concat(gamut,")")).matches)return gamut}}function areColorsInverted(){if(doesMatch$4("inverted"))return!0;if(doesMatch$4("none"))return!1}function doesMatch$4(value){return matchMedia("(inverted-colors: ".concat(value,")")).matches}function areColorsForced(){if(doesMatch$3("active"))return!0;if(doesMatch$3("none"))return!1}function doesMatch$3(value){return matchMedia("(forced-colors: ".concat(value,")")).matches}var maxValueToCheck=100;function getMonochromeDepth(){if(!!matchMedia("(min-monochrome: 0)").matches){for(var i=0;i<=maxValueToCheck;++i)if(matchMedia("(max-monochrome: ".concat(i,")")).matches)return i;throw new Error("Too high value")}}function getContrastPreference(){if(doesMatch$2("no-preference"))return 0;if(doesMatch$2("high")||doesMatch$2("more"))return 1;if(doesMatch$2("low")||doesMatch$2("less"))return-1;if(doesMatch$2("forced"))return 10}function doesMatch$2(value){return matchMedia("(prefers-contrast: ".concat(value,")")).matches}function isMotionReduced(){if(doesMatch$1("reduce"))return!0;if(doesMatch$1("no-preference"))return!1}function doesMatch$1(value){return matchMedia("(prefers-reduced-motion: ".concat(value,")")).matches}function isHDR(){if(doesMatch("high"))return!0;if(doesMatch("standard"))return!1}function doesMatch(value){return matchMedia("(dynamic-range: ".concat(value,")")).matches}var M=Math,fallbackFn=function(){return 0};function getMathFingerprint(){var acos=M.acos||fallbackFn,acosh=M.acosh||fallbackFn,asin=M.asin||fallbackFn,asinh=M.asinh||fallbackFn,atanh=M.atanh||fallbackFn,atan=M.atan||fallbackFn,sin=M.sin||fallbackFn,sinh=M.sinh||fallbackFn,cos=M.cos||fallbackFn,cosh=M.cosh||fallbackFn,tan=M.tan||fallbackFn,tanh=M.tanh||fallbackFn,exp=M.exp||fallbackFn,expm1=M.expm1||fallbackFn,log1p=M.log1p||fallbackFn,powPI=function(value){return M.pow(M.PI,value)},acoshPf=function(value){return M.log(value+M.sqrt(value*value-1))},asinhPf=function(value){return M.log(value+M.sqrt(value*value+1))},atanhPf=function(value){return M.log((1+value)/(1-value))/2},sinhPf=function(value){return M.exp(value)-1/M.exp(value)/2},coshPf=function(value){return(M.exp(value)+1/M.exp(value))/2},expm1Pf=function(value){return M.exp(value)-1},tanhPf=function(value){return(M.exp(2*value)-1)/(M.exp(2*value)+1)},log1pPf=function(value){return M.log(1+value)};return{acos:acos(.12312423423423424),acosh:acosh(1e308),acoshPf:acoshPf(1e154),asin:asin(.12312423423423424),asinh:asinh(1),asinhPf:asinhPf(1),atanh:atanh(.5),atanhPf:atanhPf(.5),atan:atan(.5),sin:sin(-1e300),sinh:sinh(1),sinhPf:sinhPf(1),cos:cos(10.000000000123),cosh:cosh(1),coshPf:coshPf(1),tan:tan(-1e300),tanh:tanh(1),tanhPf:tanhPf(1),exp:exp(1),expm1:expm1(1),expm1Pf:expm1Pf(1),log1p:log1p(10),log1pPf:log1pPf(10),powPI:powPI(-100)}}var defaultText="mmMwWLliI0fiflO&1",presets={default:[],apple:[{font:"-apple-system-body"}],serif:[{fontFamily:"serif"}],sans:[{fontFamily:"sans-serif"}],mono:[{fontFamily:"monospace"}],min:[{fontSize:"1px"}],system:[{fontFamily:"system-ui"}]};function getFontPreferences(){return withNaturalFonts(function(document2,container){for(var elements={},sizes={},_i=0,_a=Object.keys(presets);_i<_a.length;_i++){var key=_a[_i],_b=presets[key],_c=_b[0],style=_c===void 0?{}:_c,_d=_b[1],text=_d===void 0?defaultText:_d,element=document2.createElement("span");element.textContent=text,element.style.whiteSpace="nowrap";for(var _e=0,_f=Object.keys(style);_e<_f.length;_e++){var name_1=_f[_e],value=style[name_1];value!==void 0&&(element.style[name_1]=value)}elements[key]=element,container.appendChild(document2.createElement("br")),container.appendChild(element)}for(var _g=0,_h=Object.keys(presets);_g<_h.length;_g++){var key=_h[_g];sizes[key]=elements[key].getBoundingClientRect().width}return sizes})}function withNaturalFonts(action,containerWidthPx){return containerWidthPx===void 0&&(containerWidthPx=4e3),withIframe(function(_,iframeWindow){var iframeDocument=iframeWindow.document,iframeBody=iframeDocument.body,bodyStyle=iframeBody.style;bodyStyle.width="".concat(containerWidthPx,"px"),bodyStyle.webkitTextSizeAdjust=bodyStyle.textSizeAdjust="none",isChromium()?iframeBody.style.zoom="".concat(1/iframeWindow.devicePixelRatio):isWebKit()&&(iframeBody.style.zoom="reset");var linesOfText=iframeDocument.createElement("div");return linesOfText.textContent=__spreadArray([],Array(containerWidthPx/20<<0),!0).map(function(){return"word"}).join(" "),iframeBody.appendChild(linesOfText),action(iframeDocument,iframeBody)},'<!doctype html><html><head><meta name="viewport" content="width=device-width, initial-scale=1">')}function isPdfViewerEnabled(){return navigator.pdfViewerEnabled}function getArchitecture(){var f=new Float32Array(1),u8=new Uint8Array(f.buffer);return f[0]=1/0,f[0]=f[0]-f[0],u8[3]}function getApplePayState(){var ApplePaySession=window.ApplePaySession;if(typeof ApplePaySession?.canMakePayments!="function")return-1;try{return ApplePaySession.canMakePayments()?1:0}catch(error){return getStateFromError(error)}}function getStateFromError(error){if(error instanceof Error){if(error.name==="InvalidAccessError"){if(/\bfrom\b.*\binsecure\b/i.test(error.message))return-2;if(/\bdifferent\b.*\borigin\b.*top.level\b.*\bframe\b/i.test(error.message))return-3}if(error.name==="SecurityError"&&/\bthird.party iframes?.*\bnot.allowed\b/i.test(error.message))return-3}throw error}function getPrivateClickMeasurement(){var _a,link=document.createElement("a"),sourceId=(_a=link.attributionSourceId)!==null&&_a!==void 0?_a:link.attributionsourceid;return sourceId===void 0?void 0:String(sourceId)}var STATUS_NO_GL_CONTEXT=-1,STATUS_GET_PARAMETER_NOT_A_FUNCTION=-2,validContextParameters=new Set([10752,2849,2884,2885,2886,2928,2929,2930,2931,2932,2960,2961,2962,2963,2964,2965,2966,2967,2968,2978,3024,3042,3088,3089,3106,3107,32773,32777,32777,32823,32824,32936,32937,32938,32939,32968,32969,32970,32971,3317,33170,3333,3379,3386,33901,33902,34016,34024,34076,3408,3410,3411,3412,3413,3414,3415,34467,34816,34817,34818,34819,34877,34921,34930,35660,35661,35724,35738,35739,36003,36004,36005,36347,36348,36349,37440,37441,37443,7936,7937,7938]),validExtensionParams=new Set([34047,35723,36063,34852,34853,34854,34229,36392,36795,38449]),shaderTypes=["FRAGMENT_SHADER","VERTEX_SHADER"],precisionTypes=["LOW_FLOAT","MEDIUM_FLOAT","HIGH_FLOAT","LOW_INT","MEDIUM_INT","HIGH_INT"],rendererInfoExtensionName="WEBGL_debug_renderer_info";function getWebGlBasics(_a){var _b,_c,_d,_e,_f,_g,cache=_a.cache,gl=getWebGLContext(cache);if(!gl)return STATUS_NO_GL_CONTEXT;if(!isValidParameterGetter(gl))return STATUS_GET_PARAMETER_NOT_A_FUNCTION;var debugExtension=shouldAvoidDebugRendererInfo()?null:gl.getExtension(rendererInfoExtensionName);return{version:((_b=gl.getParameter(gl.VERSION))===null||_b===void 0?void 0:_b.toString())||"",vendor:((_c=gl.getParameter(gl.VENDOR))===null||_c===void 0?void 0:_c.toString())||"",vendorUnmasked:debugExtension?(_d=gl.getParameter(debugExtension.UNMASKED_VENDOR_WEBGL))===null||_d===void 0?void 0:_d.toString():"",renderer:((_e=gl.getParameter(gl.RENDERER))===null||_e===void 0?void 0:_e.toString())||"",rendererUnmasked:debugExtension?(_f=gl.getParameter(debugExtension.UNMASKED_RENDERER_WEBGL))===null||_f===void 0?void 0:_f.toString():"",shadingLanguageVersion:((_g=gl.getParameter(gl.SHADING_LANGUAGE_VERSION))===null||_g===void 0?void 0:_g.toString())||""}}function getWebGlExtensions(_a){var cache=_a.cache,gl=getWebGLContext(cache);if(!gl)return STATUS_NO_GL_CONTEXT;if(!isValidParameterGetter(gl))return STATUS_GET_PARAMETER_NOT_A_FUNCTION;var extensions=gl.getSupportedExtensions(),contextAttributes=gl.getContextAttributes(),attributes=[],parameters=[],extensionParameters=[],shaderPrecisions=[];if(contextAttributes)for(var _i=0,_b=Object.keys(contextAttributes);_i<_b.length;_i++){var attributeName=_b[_i];attributes.push("".concat(attributeName,"=").concat(contextAttributes[attributeName]))}for(var constants=getConstantsFromPrototype(gl),_c=0,constants_1=constants;_c<constants_1.length;_c++){var constant=constants_1[_c],code=gl[constant];parameters.push("".concat(constant,"=").concat(code).concat(validContextParameters.has(code)?"=".concat(gl.getParameter(code)):""))}if(extensions)for(var _d=0,extensions_1=extensions;_d<extensions_1.length;_d++){var name_1=extensions_1[_d];if(!(name_1===rendererInfoExtensionName&&shouldAvoidDebugRendererInfo())){var extension=gl.getExtension(name_1);if(!!extension)for(var _e=0,_f=getConstantsFromPrototype(extension);_e<_f.length;_e++){var constant=_f[_e],code=extension[constant];extensionParameters.push("".concat(constant,"=").concat(code).concat(validExtensionParams.has(code)?"=".concat(gl.getParameter(code)):""))}}}for(var _g=0,shaderTypes_1=shaderTypes;_g<shaderTypes_1.length;_g++)for(var shaderType=shaderTypes_1[_g],_h=0,precisionTypes_1=precisionTypes;_h<precisionTypes_1.length;_h++){var precisionType=precisionTypes_1[_h],shaderPrecision=getShaderPrecision(gl,shaderType,precisionType);shaderPrecisions.push("".concat(shaderType,".").concat(precisionType,"=").concat(shaderPrecision.join(",")))}return extensionParameters.sort(),parameters.sort(),{contextAttributes:attributes,parameters,shaderPrecisions,extensions,extensionParameters}}function getWebGLContext(cache){if(cache.webgl)return cache.webgl.context;var canvas=document.createElement("canvas"),context;canvas.addEventListener("webglCreateContextError",function(){return context=void 0});for(var _i=0,_a=["webgl","experimental-webgl"];_i<_a.length;_i++){var type=_a[_i];try{context=canvas.getContext(type)}catch{}if(context)break}return cache.webgl={context},context}function getShaderPrecision(gl,shaderType,precisionType){var shaderPrecision=gl.getShaderPrecisionFormat(gl[shaderType],gl[precisionType]);return shaderPrecision?[shaderPrecision.rangeMin,shaderPrecision.rangeMax,shaderPrecision.precision]:[]}function getConstantsFromPrototype(obj){var keys=Object.keys(obj.__proto__);return keys.filter(isConstantLike)}function isConstantLike(key){return typeof key=="string"&&!key.match(/[^A-Z0-9_x]/)}function shouldAvoidDebugRendererInfo(){return isGecko()}function isValidParameterGetter(gl){return typeof gl.getParameter=="function"}var sources={fonts:getFonts,domBlockers:getDomBlockers,fontPreferences:getFontPreferences,audio:getAudioFingerprint,screenFrame:getScreenFrame,canvas:getCanvasFingerprint,osCpu:getOsCpu,languages:getLanguages,colorDepth:getColorDepth,deviceMemory:getDeviceMemory,screenResolution:getScreenResolution,hardwareConcurrency:getHardwareConcurrency,timezone:getTimezone,sessionStorage:getSessionStorage,localStorage:getLocalStorage,indexedDB:getIndexedDB,openDatabase:getOpenDatabase,cpuClass:getCpuClass,platform:getPlatform,plugins:getPlugins,touchSupport:getTouchSupport,vendor:getVendor,vendorFlavors:getVendorFlavors,cookiesEnabled:areCookiesEnabled,colorGamut:getColorGamut,invertedColors:areColorsInverted,forcedColors:areColorsForced,monochrome:getMonochromeDepth,contrast:getContrastPreference,reducedMotion:isMotionReduced,hdr:isHDR,math:getMathFingerprint,pdfViewerEnabled:isPdfViewerEnabled,architecture:getArchitecture,applePay:getApplePayState,privateClickMeasurement:getPrivateClickMeasurement,webGlBasics:getWebGlBasics,webGlExtensions:getWebGlExtensions};function loadBuiltinSources(options){return loadSources(sources,options,[])}var commentTemplate="$ if upgrade to Pro: https://fpjs.dev/pro";function getConfidence(components){var openConfidenceScore=getOpenConfidenceScore(components),proConfidenceScore=deriveProConfidenceScore(openConfidenceScore);return{score:openConfidenceScore,comment:commentTemplate.replace(/\$/g,"".concat(proConfidenceScore))}}function getOpenConfidenceScore(components){if(isAndroid())return .4;if(isWebKit())return isDesktopWebKit()&&!(isWebKit616OrNewer()&&isSafariWebKit())?.5:.3;var platform="value"in components.platform?components.platform.value:"";return/^Win/.test(platform)?.6:/^Mac/.test(platform)?.5:.7}function deriveProConfidenceScore(openConfidenceScore){return round(.99+.01*openConfidenceScore,1e-4)}function componentsToCanonicalString(components){for(var result="",_i=0,_a=Object.keys(components).sort();_i<_a.length;_i++){var componentKey=_a[_i],component=components[componentKey],value="error"in component?"error":JSON.stringify(component.value);result+="".concat(result?"|":"").concat(componentKey.replace(/([:|\\])/g,"\\$1"),":").concat(value)}return result}function componentsToDebugString(components){return JSON.stringify(components,function(_key,value){return value instanceof Error?errorToObject(value):value},2)}function hashComponents(components){return x64hash128(componentsToCanonicalString(components))}function makeLazyGetResult(components){var visitorIdCache,confidence=getConfidence(components);return{get visitorId(){return visitorIdCache===void 0&&(visitorIdCache=hashComponents(this.components)),visitorIdCache},set visitorId(visitorId){visitorIdCache=visitorId},confidence,components,version}}function prepareForSources(delayFallback){return delayFallback===void 0&&(delayFallback=50),requestIdleCallbackIfAvailable(delayFallback,delayFallback*2)}function makeAgent(getComponents,debug){var creationTime=Date.now();return{get:function(options){return __awaiter(this,void 0,void 0,function(){var startTime,components,result;return __generator(this,function(_a){switch(_a.label){case 0:return startTime=Date.now(),[4,getComponents()];case 1:return components=_a.sent(),result=makeLazyGetResult(components),(debug||options?.debug)&&console.log("Copy the text below to get the debug data:\n\n```\nversion: ".concat(result.version,`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mxcad",
3
- "version": "1.0.147",
3
+ "version": "1.0.149",
4
4
  "main": "./dist/mxcad.umd.js",
5
5
  "module": "./dist/mxcad.es.js",
6
6
  "typings": "dist/mxcad.d.ts",