mxcad 1.0.74 → 1.0.76

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.es.js CHANGED
@@ -1,11 +1,11 @@
1
- import { MxFun as h, MrxDbgUiPrPoint as T, MxCursorType as dD, MrxDbgUtils as hD, DynamicInputType as ZD, DetailedResult as FD, store as wD, loadCoreCode as YD, MxPaintBrush as L, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as yD, MxDbLine as Z, MxDbPolyline as QD, MxDbCircleArc as J, Mx3PointArc as XD, MxDbEllipseShape as DC, McEdGetPointWorldDrawObject as CC, MxDbEllipse as BC } from "mxdraw";
2
- function gD(E) {
1
+ import { MxFun as h, MrxDbgUiPrPoint as O, MxCursorType as bD, MrxDbgUtils as fD, DynamicInputType as xD, DetailedResult as iD, MrxDbgUiPrDist as BC, store as MD, loadCoreCode as EC, MxPaintBrush as v, MrxDbgUiPrBaseReturn as T, MxDbCircleShape as PD, MxDbLine as Q, MxDbPolyline as FC, MxDbCircleArc as Y, Mx3PointArc as AC, MxDbEllipseShape as tC, McEdGetPointWorldDrawObject as eC, MxDbEllipse as iC } from "mxdraw";
2
+ function TD(E) {
3
3
  return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function bD(E) {
5
+ function kD(E) {
6
6
  return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function xD({
8
+ async function RD({
9
9
  blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
@@ -46,24 +46,24 @@ async function xD({
46
46
  console.error(B.name, B.message);
47
47
  }
48
48
  }
49
- function fD(E, D) {
49
+ function OD(E, D) {
50
50
  const C = document.createElement("a");
51
51
  C.href = window.URL.createObjectURL(E), C.download = D, C.click();
52
52
  }
53
- function MD(E, D) {
53
+ function SD(E, D) {
54
54
  fetch(E).then((C) => C.blob()).then((C) => {
55
55
  const B = document.createElement("a");
56
56
  B.href = window.URL.createObjectURL(C), B.download = D, B.click();
57
57
  });
58
58
  }
59
- const _ = {
60
- b64Encode: gD,
61
- b64Decode: bD,
62
- saveAsFileDialog: xD,
63
- downloadFile: fD,
64
- downloadFileFromUrl: MD
59
+ const J = {
60
+ b64Encode: TD,
61
+ b64Decode: kD,
62
+ saveAsFileDialog: RD,
63
+ downloadFile: OD,
64
+ downloadFileFromUrl: SD
65
65
  };
66
- class EC {
66
+ class rC {
67
67
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
68
68
  encodeToGb2312(D) {
69
69
  for (var C = "", B = 0; B < D.length; B++) {
@@ -71,8 +71,8 @@ class EC {
71
71
  if (F == " ")
72
72
  C += "+";
73
73
  else if (A >= 19968 && A <= 40869) {
74
- let e = A - 19968;
75
- C += "%" + this.z.substr(e * 4, 2) + "%" + this.z.substr(e * 4 + 2, 2);
74
+ let t = A - 19968;
75
+ C += "%" + this.z.substr(t * 4, 2) + "%" + this.z.substr(t * 4 + 2, 2);
76
76
  } else
77
77
  C += "%" + D.charCodeAt(B).toString(16);
78
78
  }
@@ -90,11 +90,11 @@ class EC {
90
90
  var A = D.charAt(B);
91
91
  if (isNaN(parseInt(A)))
92
92
  try {
93
- var e = D.substr(B, 2) + D.substr(B + 3, 2);
93
+ var t = D.substr(B, 2) + D.substr(B + 3, 2);
94
94
  B = B + 4;
95
- for (var t = -1; (t = this.z.indexOf(e, t + 1)) != -1; )
96
- if (t % 4 == 0) {
97
- C += String.fromCharCode(t / 4 + 19968);
95
+ for (var e = -1; (e = this.z.indexOf(t, e + 1)) != -1; )
96
+ if (e % 4 == 0) {
97
+ C += String.fromCharCode(e / 4 + 19968);
98
98
  break;
99
99
  }
100
100
  } catch {
@@ -112,13 +112,16 @@ class EC {
112
112
  return C;
113
113
  }
114
114
  }
115
- let g = new EC();
115
+ let P = new rC();
116
116
  class a {
117
117
  static kOrigin;
118
118
  imp;
119
119
  constructor(D, C, B) {
120
120
  this.imp = new i.mxcadassemblyimp.MdGePoint3d(), D instanceof Object ? (this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z) : (this.imp.x = D || 0, this.imp.y = C || 0, this.imp.z = B || 0);
121
121
  }
122
+ toVector3() {
123
+ return new THREE.Vector3(this.imp.x, this.imp.y, this.imp.z);
124
+ }
122
125
  copy(D) {
123
126
  return this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z, this;
124
127
  }
@@ -132,7 +135,7 @@ class a {
132
135
  return this.imp.subvec(D.imp), this;
133
136
  }
134
137
  sub(D) {
135
- return new w(this.imp.sub(D.imp));
138
+ return new y(this.imp.sub(D.imp));
136
139
  }
137
140
  distanceTo(D) {
138
141
  return this.imp.distanceTo(D.imp);
@@ -162,10 +165,11 @@ class a {
162
165
  this.imp.z = D;
163
166
  }
164
167
  }
165
- class w {
168
+ class y {
166
169
  static kXAxis;
167
170
  static kYAxis;
168
171
  static kZAxis;
172
+ static kNegateZAxis;
169
173
  imp;
170
174
  constructor(D, C, B) {
171
175
  this.imp = new i.mxcadassemblyimp.MdGeVector3d(), D instanceof Object ? (this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z) : (this.imp.x = D || 0, this.imp.y = C || 0, this.imp.z = B || 0);
@@ -174,7 +178,7 @@ class w {
174
178
  return this.imp.x = D.imp.x, this.imp.y = D.imp.y, this.imp.z = D.imp.z, this;
175
179
  }
176
180
  clone() {
177
- return new w(this.imp);
181
+ return new y(this.imp);
178
182
  }
179
183
  rotateBy(D, C) {
180
184
  return this.imp.rotateBy(D, C.imp), this;
@@ -207,7 +211,7 @@ class w {
207
211
  return this.imp.dotProduct(D.imp);
208
212
  }
209
213
  crossProduct(D) {
210
- let C = new w();
214
+ let C = new y();
211
215
  return C.imp = this.imp.crossProduct(D.imp), C;
212
216
  }
213
217
  isEqualTo(D) {
@@ -232,17 +236,17 @@ class w {
232
236
  this.imp.z = D;
233
237
  }
234
238
  }
235
- class V {
239
+ class I {
236
240
  static kIdentity;
237
241
  imp;
238
242
  constructor(D) {
239
- this.imp = i.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
243
+ this.imp = new i.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
240
244
  }
241
245
  copy(D) {
242
246
  return this.imp.copy(D.imp), this;
243
247
  }
244
248
  clone() {
245
- return new V(this.imp);
249
+ return new I(this.imp);
246
250
  }
247
251
  setToIdentity() {
248
252
  return this.imp.setToIdentity(), this;
@@ -290,7 +294,7 @@ class V {
290
294
  return this.imp.getData(D, C);
291
295
  }
292
296
  }
293
- class FC {
297
+ class sC {
294
298
  imp;
295
299
  constructor(D) {
296
300
  this.imp = new i.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
@@ -311,7 +315,7 @@ class FC {
311
315
  this.imp.setAt(D, C);
312
316
  }
313
317
  }
314
- class TD {
318
+ class LD {
315
319
  imp;
316
320
  constructor(D) {
317
321
  this.imp = new i.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
@@ -326,18 +330,18 @@ class TD {
326
330
  return this.imp.length();
327
331
  }
328
332
  at(D, C = !0) {
329
- return C ? g.decodeFromGb2312(this.imp.at(D)) : this.imp.at(D);
333
+ return C ? P.decodeFromGb2312(this.imp.at(D)) : this.imp.at(D);
330
334
  }
331
335
  setAt(D, C, B = !0) {
332
- B ? this.imp.setAt(D, g.encodeToGb2312(C)) : this.imp.setAt(D, C);
336
+ B ? this.imp.setAt(D, P.encodeToGb2312(C)) : this.imp.setAt(D, C);
333
337
  }
334
338
  forEach(D, C = !0) {
335
339
  let B = this.imp.length();
336
340
  for (let F = 0; F < B; F++)
337
- D(C ? g.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
341
+ D(C ? P.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
338
342
  }
339
343
  }
340
- class AC {
344
+ class nC {
341
345
  imp;
342
346
  constructor(D) {
343
347
  this.imp = new i.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
@@ -358,13 +362,13 @@ class AC {
358
362
  this.imp.setAt(D, C.imp);
359
363
  }
360
364
  }
361
- const eC = new FinalizationRegistry((E) => {
365
+ const oC = new FinalizationRegistry((E) => {
362
366
  i.App.DestroyObject(E);
363
- }), tC = {};
364
- class G {
367
+ }), aC = {};
368
+ class K {
365
369
  imp = 0;
366
370
  constructor(D) {
367
- this.imp = D, this.imp && eC.register(this, D, tC);
371
+ this.imp = D, this.imp && oC.register(this, D, aC);
368
372
  }
369
373
  getImp() {
370
374
  return this.imp;
@@ -380,18 +384,18 @@ class G {
380
384
  }
381
385
  getJson() {
382
386
  let D = this.imp.getJson();
383
- return g.decodeFromGb2312(D);
387
+ return P.decodeFromGb2312(D);
384
388
  }
385
389
  setJson(D) {
386
- let C = g.encodeToGb2312(D);
390
+ let C = P.encodeToGb2312(D);
387
391
  return this.imp.setJson(C);
388
392
  }
389
393
  isKindOf(D) {
390
394
  return this.imp.isKindOf(D);
391
395
  }
392
396
  }
393
- var f = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(f || {});
394
- class M {
397
+ var k = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(k || {});
398
+ class R {
395
399
  id;
396
400
  type;
397
401
  constructor(D, C) {
@@ -401,11 +405,17 @@ class M {
401
405
  return this.type != 2 && this.id != 0;
402
406
  }
403
407
  erase() {
404
- this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && $.eraseEntity(this.id);
408
+ this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && U.eraseEntity(this.id);
405
409
  }
406
410
  getMcDbObject() {
407
411
  return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
408
412
  }
413
+ getMcDbEntity() {
414
+ return this.type == 0 && i.App.ObjectIdIsKindOf(this.id, "McDbEntity") ? i.App.ObjectIdToObject(this.id) : null;
415
+ }
416
+ getMcDbCurve() {
417
+ return this.type == 0 && i.App.ObjectIdIsKindOf(this.id, "McDbCurve") ? i.App.ObjectIdToObject(this.id) : null;
418
+ }
409
419
  clone() {
410
420
  if (this.type == 0) {
411
421
  let D = i.App.getImp().ObjectIdToMdObject(this.id);
@@ -430,7 +440,7 @@ class M {
430
440
  return this.type == 1 ? h.getCurrentDraw().getMxEntity(this.id) : null;
431
441
  }
432
442
  }
433
- class v extends G {
443
+ class j extends K {
434
444
  constructor(D) {
435
445
  super(D);
436
446
  }
@@ -448,13 +458,37 @@ class v extends G {
448
458
  return this.imp.GetHandle();
449
459
  }
450
460
  GetDatabase() {
451
- return new oD(this.imp.GetDatabase());
461
+ return new mD(this.imp.GetDatabase());
452
462
  }
453
463
  GetOwnerID() {
454
464
  return this.imp.GetOwnerID();
455
465
  }
456
466
  }
457
- var tD;
467
+ class nD {
468
+ aryVal = [];
469
+ constructor(D) {
470
+ if (D) {
471
+ let C = 0, B = D.length();
472
+ for (; C < B; C++) {
473
+ let F = D.release(C), A = i.App.CreateCloneObject(F);
474
+ A != null && this.aryVal.push(A);
475
+ }
476
+ i.App.DestroyObject(D);
477
+ }
478
+ }
479
+ forEach(D) {
480
+ let C = this.aryVal.length;
481
+ for (let B = 0; B < C; B++)
482
+ D(this.aryVal[B]);
483
+ }
484
+ length() {
485
+ return this.aryVal.length;
486
+ }
487
+ empty() {
488
+ return this.aryVal.length == 0;
489
+ }
490
+ }
491
+ var oD;
458
492
  ((E) => {
459
493
  ((D) => {
460
494
  D[D.kTextLeft = 0] = "kTextLeft", D[D.kTextCenter = 1] = "kTextCenter", D[D.kTextRight = 2] = "kTextRight", D[D.kTextAlign = 3] = "kTextAlign", D[D.kTextMid = 4] = "kTextMid", D[D.kTextFit = 5] = "kTextFit";
@@ -465,8 +499,8 @@ var tD;
465
499
  })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
466
500
  D[D.kLnWt000 = 0] = "kLnWt000", D[D.kLnWt005 = 5] = "kLnWt005", D[D.kLnWt009 = 9] = "kLnWt009", D[D.kLnWt013 = 13] = "kLnWt013", D[D.kLnWt015 = 15] = "kLnWt015", D[D.kLnWt018 = 18] = "kLnWt018", D[D.kLnWt020 = 20] = "kLnWt020", D[D.kLnWt025 = 25] = "kLnWt025", D[D.kLnWt030 = 30] = "kLnWt030", D[D.kLnWt035 = 35] = "kLnWt035", D[D.kLnWt040 = 40] = "kLnWt040", D[D.kLnWt050 = 50] = "kLnWt050", D[D.kLnWt053 = 53] = "kLnWt053", D[D.kLnWt060 = 60] = "kLnWt060", D[D.kLnWt070 = 70] = "kLnWt070", D[D.kLnWt080 = 80] = "kLnWt080", D[D.kLnWt090 = 90] = "kLnWt090", D[D.kLnWt100 = 100] = "kLnWt100", D[D.kLnWt106 = 106] = "kLnWt106", D[D.kLnWt120 = 120] = "kLnWt120", D[D.kLnWt140 = 140] = "kLnWt140", D[D.kLnWt158 = 158] = "kLnWt158", D[D.kLnWt200 = 200] = "kLnWt200", D[D.kLnWt211 = 211] = "kLnWt211", D[D.kLnWtByLayer = -1] = "kLnWtByLayer", D[D.kLnWtByBlock = -2] = "kLnWtByBlock", D[D.kLnWtByLwDefault = -3] = "kLnWtByLwDefault";
467
501
  })(E.LineWeight || (E.LineWeight = {}));
468
- })(tD || (tD = {}));
469
- class I {
502
+ })(oD || (oD = {}));
503
+ class H {
470
504
  imp;
471
505
  constructor(D, C, B) {
472
506
  this.imp = new i.mxcadassemblyimp.MdCmColor(), D instanceof Object ? (this.imp.red = D.red, this.imp.green = D.green, this.imp.blue = D.blue, this.imp.method = D.method, this.imp.n = D.n, this.imp.colorIndex = D.colorIndex) : typeof D == "number" && typeof C == "number" && typeof B == "number" && this.imp.setRGB(D, C, B);
@@ -478,7 +512,7 @@ class I {
478
512
  return this.imp.red = D.imp.red, this.imp.green = D.imp.green, this.imp.blue = D.imp.blue, this.imp.method = D.imp.method, this.imp.n = D.imp.n, this.imp.colorIndex = D.imp.colorIndex, this;
479
513
  }
480
514
  clone() {
481
- return new I(this.imp);
515
+ return new H(this.imp);
482
516
  }
483
517
  setColorIndex(D) {
484
518
  this.imp.setColorIndex(D);
@@ -523,7 +557,7 @@ class I {
523
557
  this.imp.colorIndex = D;
524
558
  }
525
559
  }
526
- class iC extends v {
560
+ class uC extends j {
527
561
  constructor(D) {
528
562
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
529
563
  }
@@ -552,13 +586,13 @@ class iC extends v {
552
586
  this.imp.setIsLocked(D);
553
587
  }
554
588
  get color() {
555
- return new I(this.imp.color());
589
+ return new H(this.imp.color());
556
590
  }
557
591
  set color(D) {
558
592
  this.imp.setColor(D.getImp());
559
593
  }
560
594
  get linetypeObjectId() {
561
- return new M(this.imp.linetypeObjectId(), f.kMxCAD);
595
+ return new R(this.imp.linetypeObjectId(), k.kMxCAD);
562
596
  }
563
597
  set linetypeObjectId(D) {
564
598
  this.imp.setLinetypeObjectId(D.id);
@@ -570,39 +604,39 @@ class iC extends v {
570
604
  this.imp.setLineWeight(D);
571
605
  }
572
606
  }
573
- class kD extends v {
607
+ class vD extends j {
574
608
  constructor(D) {
575
609
  super(D);
576
610
  }
577
611
  }
578
- class PD extends v {
612
+ class ID extends j {
579
613
  constructor(D) {
580
614
  super(D);
581
615
  }
582
616
  }
583
- class SD extends v {
617
+ class jD extends j {
584
618
  constructor(D) {
585
619
  super(D);
586
620
  }
587
621
  }
588
- class oD extends G {
622
+ class mD extends K {
589
623
  constructor(D) {
590
624
  super(D);
591
625
  }
592
626
  GetLayerTable() {
593
- return new kD(this.imp.GetLayerTable());
627
+ return new vD(this.imp.GetLayerTable());
594
628
  }
595
629
  GetLinetypeTable() {
596
- return new PD(this.imp.GetLinetypeTable());
630
+ return new ID(this.imp.GetLinetypeTable());
597
631
  }
598
632
  GetTextStyleTable() {
599
- return new SD(this.imp.GetTextStyleTable());
633
+ return new jD(this.imp.GetTextStyleTable());
600
634
  }
601
635
  GetBlockTable() {
602
- return new vD(this.imp.GetBlockTable());
636
+ return new VD(this.imp.GetBlockTable());
603
637
  }
604
638
  CurrentSpace() {
605
- return new CD(this.imp.CurrentSpace());
639
+ return new ED(this.imp.CurrentSpace());
606
640
  }
607
641
  GetCurrentlyLineTypeScale() {
608
642
  return this.imp.GetCurrentlyLineTypeScale();
@@ -612,22 +646,22 @@ class oD extends G {
612
646
  }
613
647
  GetCurrentlyLineTypeName() {
614
648
  let D = this.imp.GetCurrentlyLineTypeName();
615
- return g.decodeFromGb2312(D);
649
+ return P.decodeFromGb2312(D);
616
650
  }
617
651
  SetCurrentlyLineTypeName(D) {
618
- let C = g.encodeToGb2312(D);
652
+ let C = P.encodeToGb2312(D);
619
653
  this.imp.SetCurrentlyLineTypeName(C);
620
654
  }
621
655
  GetCurrentlyLayerName() {
622
656
  let D = this.imp.GetCurrentlyLayerName();
623
- return g.decodeFromGb2312(D);
657
+ return P.decodeFromGb2312(D);
624
658
  }
625
659
  SetCurrentlyLayerName(D) {
626
- let C = g.encodeToGb2312(D);
660
+ let C = P.encodeToGb2312(D);
627
661
  this.imp.SetCurrentlyLayerName(C);
628
662
  }
629
663
  GetCurrentlyTrueColor() {
630
- return new I(this.imp.GetCurrentlyTrueColor());
664
+ return new H(this.imp.GetCurrentlyTrueColor());
631
665
  }
632
666
  GetCurrentlyDrawColor() {
633
667
  let D = this.imp.GetCurrentlyDrawColor(), C = new THREE.Color();
@@ -644,14 +678,14 @@ class oD extends G {
644
678
  }
645
679
  GetCurrentlyTextStyleName() {
646
680
  let D = this.imp.GetCurrentlyTextStyleName();
647
- return g.decodeFromGb2312(D);
681
+ return P.decodeFromGb2312(D);
648
682
  }
649
683
  SetCurrentlyTextStyle(D) {
650
- let C = g.encodeToGb2312(D);
684
+ let C = P.encodeToGb2312(D);
651
685
  this.imp.SetCurrentlyTextStyle(C);
652
686
  }
653
687
  }
654
- class RD extends G {
688
+ class GD extends K {
655
689
  constructor(D) {
656
690
  super(D);
657
691
  }
@@ -662,25 +696,25 @@ class RD extends G {
662
696
  return this.imp.done();
663
697
  }
664
698
  getEntityId() {
665
- return new M(this.imp.getEntityId(), f.kMxCAD);
699
+ return new R(this.imp.getEntityId(), k.kMxCAD);
666
700
  }
667
701
  step(D = !0, C = !0) {
668
702
  return this.imp.step(D, C);
669
703
  }
670
704
  }
671
- class CD extends v {
705
+ class ED extends j {
672
706
  constructor(D) {
673
707
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
674
708
  }
675
709
  appendAcDbEntity(D) {
676
- return new M(
710
+ return new R(
677
711
  this.imp.appendAcDbEntity(D.getImp()),
678
- f.kMxCAD
712
+ k.kMxCAD
679
713
  );
680
714
  }
681
715
  newIterator(D = !0, C = !0) {
682
716
  let B = this.imp.newIterator(D, C);
683
- return new RD(B);
717
+ return new GD(B);
684
718
  }
685
719
  get origin() {
686
720
  return new a(this.imp.origin());
@@ -688,8 +722,19 @@ class CD extends v {
688
722
  set origin(D) {
689
723
  this.imp.setOrigin(D.imp);
690
724
  }
725
+ getBoundingBox() {
726
+ let D = this.imp.getBoundingBox();
727
+ return D.length() < 2 ? { minPt: new a(), maxPt: new a(), ret: !1 } : {
728
+ minPt: new a(D.at(0)),
729
+ maxPt: new a(D.at(1)),
730
+ ret: !0
731
+ };
732
+ }
733
+ invalidBoundingBoxBuffer() {
734
+ this.imp.invalidBoundingBoxBuffer();
735
+ }
691
736
  }
692
- class LD extends G {
737
+ class WD extends K {
693
738
  constructor(D) {
694
739
  super(D);
695
740
  }
@@ -701,41 +746,41 @@ class LD extends G {
701
746
  }
702
747
  getRecord() {
703
748
  let D = this.imp.getRecord();
704
- return new CD(D);
749
+ return new ED(D);
705
750
  }
706
751
  step(D = !0, C = !0) {
707
752
  this.imp.start(D, C);
708
753
  }
709
754
  }
710
- class vD extends v {
755
+ class VD extends j {
711
756
  constructor(D) {
712
757
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
713
758
  }
714
759
  getAt(D) {
715
760
  let C = this.getAt(D);
716
- return C && new CD(C);
761
+ return C && new ED(C);
717
762
  }
718
763
  has(D) {
719
764
  return this.imp.has(D);
720
765
  }
721
766
  newIterator(D = !0, C = !0) {
722
767
  let B = this.imp.newIterator(D, C);
723
- return new LD(B);
768
+ return new WD(B);
724
769
  }
725
770
  add(D) {
726
771
  return this.imp.add(D.getImp());
727
772
  }
728
773
  }
729
- class j extends v {
774
+ class G extends j {
730
775
  constructor(D) {
731
776
  super(D);
732
777
  }
733
778
  explode() {
734
779
  let D = this.imp.explode();
735
- return new q(D);
780
+ return new AD(D);
736
781
  }
737
782
  get trueColor() {
738
- return new I(this.imp.TrueColor());
783
+ return new H(this.imp.TrueColor());
739
784
  }
740
785
  set trueColor(D) {
741
786
  this.imp.SetTrueColor(D.getImp());
@@ -798,16 +843,16 @@ class j extends v {
798
843
  let D = this.imp.GetBoundingBox();
799
844
  if (D) {
800
845
  let C = {
801
- minPt: new a(D.AtPoint(0).val),
802
- maxPt: new a(D.AtPoint(1).val),
803
- ret: 0
846
+ minPt: new a(D.AtPoint(0)),
847
+ maxPt: new a(D.AtPoint(1)),
848
+ ret: !0
804
849
  };
805
850
  return i.App.DestroyObject(D), C;
806
851
  } else
807
- return { minPt: new a(), maxPt: new a(), ret: 1 };
852
+ return { minPt: new a(), maxPt: new a(), ret: !1 };
808
853
  }
809
854
  }
810
- class N extends j {
855
+ class V extends G {
811
856
  constructor(D) {
812
857
  super(D);
813
858
  }
@@ -858,13 +903,13 @@ class N extends j {
858
903
  }
859
904
  getFirstDeriv(D) {
860
905
  return {
861
- val: new w(this.imp.getFirstDeriv(D)),
906
+ val: new y(this.imp.getFirstDeriv(D)),
862
907
  ret: i.getCallResult()
863
908
  };
864
909
  }
865
910
  getFirstDerivEx(D) {
866
911
  return {
867
- val: new w(this.imp.getFirstDerivEx(D.imp)),
912
+ val: new y(this.imp.getFirstDerivEx(D.imp)),
868
913
  ret: i.getCallResult()
869
914
  };
870
915
  }
@@ -876,26 +921,26 @@ class N extends j {
876
921
  }
877
922
  offsetCurves(D, C) {
878
923
  let B = this.imp.offsetCurves(D, C.imp);
879
- return new q(B);
924
+ return new nD(B);
880
925
  }
881
926
  splitCurves(D) {
882
927
  let C = this.imp.splitCurves(D);
883
- return new q(C);
928
+ return new nD(C);
884
929
  }
885
930
  getArea() {
886
931
  return { val: this.imp.getArea(), ret: i.getCallResult() };
887
932
  }
888
933
  getSamplePoints(D) {
889
934
  let C = this.imp.getSamplePoints(D);
890
- return new q(C);
935
+ return new AD(C);
891
936
  }
892
937
  getLength() {
893
938
  return { val: this.imp.getLength(), ret: i.getCallResult() };
894
939
  }
895
940
  }
896
- class Y extends N {
897
- constructor(D, C, B, F, A, e) {
898
- D instanceof Object ? D instanceof a ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof a && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new a(D, C, B), this.endPoint = new a(F, A, e));
941
+ class X extends V {
942
+ constructor(D, C, B, F, A, t) {
943
+ D instanceof Object ? D instanceof a ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof a && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new a(D, C, B), this.endPoint = new a(F, A, t));
899
944
  }
900
945
  get startPoint() {
901
946
  return new a(this.imp.startPoint());
@@ -910,7 +955,7 @@ class Y extends N {
910
955
  this.imp.setEndPoint(D.imp);
911
956
  }
912
957
  }
913
- class iD extends j {
958
+ class aD extends G {
914
959
  constructor(D) {
915
960
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
916
961
  }
@@ -951,10 +996,10 @@ class iD extends j {
951
996
  this.imp.setWidthFactor(D);
952
997
  }
953
998
  get textString() {
954
- return g.decodeFromGb2312(this.imp.textString());
999
+ return P.decodeFromGb2312(this.imp.textString());
955
1000
  }
956
1001
  set textString(D) {
957
- this.imp.setTextString(g.encodeToGb2312(D));
1002
+ this.imp.setTextString(P.encodeToGb2312(D));
958
1003
  }
959
1004
  get horizontalMode() {
960
1005
  return this.imp.horizontalMode();
@@ -969,7 +1014,7 @@ class iD extends j {
969
1014
  this.imp.setVerticalMode(D);
970
1015
  }
971
1016
  }
972
- class Q extends j {
1017
+ class DD extends G {
973
1018
  constructor(D) {
974
1019
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
975
1020
  }
@@ -1004,13 +1049,13 @@ class Q extends j {
1004
1049
  this.imp.setAttachment(D);
1005
1050
  }
1006
1051
  get contents() {
1007
- return g.decodeFromGb2312(this.imp.contents());
1052
+ return P.decodeFromGb2312(this.imp.contents());
1008
1053
  }
1009
1054
  set contents(D) {
1010
- this.imp.setContents(g.encodeToGb2312(D));
1055
+ this.imp.setContents(P.encodeToGb2312(D));
1011
1056
  }
1012
1057
  }
1013
- class O extends N {
1058
+ class W extends V {
1014
1059
  constructor(D, C, B, F) {
1015
1060
  D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbCircle()), typeof D == "number" && (this.imp.setCenter(new a(D, C, B).imp), this.imp.setRadius(F)));
1016
1061
  }
@@ -1030,7 +1075,7 @@ class O extends N {
1030
1075
  this.imp.setRadius(D);
1031
1076
  }
1032
1077
  }
1033
- class X extends N {
1078
+ class CD extends V {
1034
1079
  constructor(D) {
1035
1080
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
1036
1081
  }
@@ -1048,8 +1093,8 @@ class X extends N {
1048
1093
  }
1049
1094
  addVertexAt(D, C = 0, B = 0, F = 0, A = 0) {
1050
1095
  if (D instanceof THREE.Vector3) {
1051
- let e = new i.mxcadassemblyimp.MdGePoint3d();
1052
- return e.x = D.x, e.y = D.y, e.z = D.z, this.imp.addVertexAt(A, e, C, B, F);
1096
+ let t = new i.mxcadassemblyimp.MdGePoint3d();
1097
+ return t.x = D.x, t.y = D.y, t.z = D.z, this.imp.addVertexAt(A, t, C, B, F);
1053
1098
  } else
1054
1099
  return this.imp.addVertexAt(A, D.imp, C, B, F);
1055
1100
  }
@@ -1079,12 +1124,12 @@ class X extends N {
1079
1124
  return this.imp.setBulgeAt(D, C);
1080
1125
  }
1081
1126
  }
1082
- class rD extends j {
1127
+ class uD extends G {
1083
1128
  constructor(D) {
1084
1129
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
1085
1130
  }
1086
1131
  get blockTableRecordId() {
1087
- return new M(this.imp.blockTableRecord(), f.kMxCAD);
1132
+ return new R(this.imp.blockTableRecord(), k.kMxCAD);
1088
1133
  }
1089
1134
  set blockTableRecordId(D) {
1090
1135
  this.imp.setBlockTableRecordId(D.id);
@@ -1108,13 +1153,13 @@ class rD extends j {
1108
1153
  this.imp.setRotation(D);
1109
1154
  }
1110
1155
  get blockTransform() {
1111
- return new V(this.imp.blockTransform());
1156
+ return new I(this.imp.blockTransform());
1112
1157
  }
1113
1158
  set blockTransform(D) {
1114
1159
  this.imp.setBlockTransform(D.imp);
1115
1160
  }
1116
1161
  }
1117
- class aD extends j {
1162
+ class pD extends G {
1118
1163
  constructor(D) {
1119
1164
  super(D);
1120
1165
  }
@@ -1152,7 +1197,7 @@ class aD extends j {
1152
1197
  this.imp.setTextRotation(D);
1153
1198
  }
1154
1199
  get dimensionStyle() {
1155
- return new M(this.imp.dimensionStyle(), f.kMxCAD);
1200
+ return new R(this.imp.dimensionStyle(), k.kMxCAD);
1156
1201
  }
1157
1202
  set dimensionStyle(D) {
1158
1203
  this.imp.setDimensionStyle(D.id);
@@ -1191,16 +1236,16 @@ class aD extends j {
1191
1236
  this.imp.SetDimVarString(D, C);
1192
1237
  }
1193
1238
  getDimVarObjectId(D) {
1194
- return new M(
1239
+ return new R(
1195
1240
  this.imp.GetDimVarObjectId(D),
1196
- f.kMxCAD
1241
+ k.kMxCAD
1197
1242
  );
1198
1243
  }
1199
1244
  setDimVarObjectId(D, C) {
1200
1245
  this.imp.SetDimVarObjectId(D, C.id);
1201
1246
  }
1202
1247
  }
1203
- class sD extends aD {
1248
+ class lD extends pD {
1204
1249
  constructor(D) {
1205
1250
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
1206
1251
  }
@@ -1229,7 +1274,7 @@ class sD extends aD {
1229
1274
  this.imp.setOblique(D);
1230
1275
  }
1231
1276
  }
1232
- class nD extends aD {
1277
+ class cD extends pD {
1233
1278
  constructor(D) {
1234
1279
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
1235
1280
  }
@@ -1264,7 +1309,7 @@ class nD extends aD {
1264
1309
  this.imp.setRotation(D);
1265
1310
  }
1266
1311
  }
1267
- class DD extends N {
1312
+ class BD extends V {
1268
1313
  constructor(D) {
1269
1314
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1270
1315
  }
@@ -1295,20 +1340,20 @@ class DD extends N {
1295
1340
  set endAngle(D) {
1296
1341
  this.imp.setEndAngle(D);
1297
1342
  }
1298
- computeArc(D, C, B, F, A, e) {
1343
+ computeArc(D, C, B, F, A, t) {
1299
1344
  return this.imp.computeArc(
1300
1345
  D,
1301
1346
  C,
1302
1347
  B,
1303
1348
  F,
1304
1349
  A,
1305
- e
1350
+ t
1306
1351
  );
1307
1352
  }
1308
1353
  }
1309
- class uD extends N {
1310
- constructor(D, C, B, F, A, e, t, r, s) {
1311
- D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (t || (t = 1), typeof r != "number" && (r = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.Init(new a(D, C, B).imp, new w(F, A, e).imp, t, r, s)));
1354
+ class FD extends V {
1355
+ constructor(D, C, B, F, A, t, e, r, s) {
1356
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (e || (e = 1), typeof r != "number" && (r = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.InitData(new a(D, C, B).imp, new y(F, A, t).imp, e, r, s)));
1312
1357
  }
1313
1358
  setCenter(D, C, B) {
1314
1359
  this.imp.setCenter(new a(D, C, B).imp);
@@ -1320,19 +1365,19 @@ class uD extends N {
1320
1365
  this.imp.setCenter(D.imp);
1321
1366
  }
1322
1367
  setMajorAxis(D, C, B) {
1323
- this.imp.setMajorAxis(new w(D, C, B).imp);
1368
+ this.imp.setMajorAxis(new y(D, C, B).imp);
1324
1369
  }
1325
1370
  get majorAxis() {
1326
- return new w(this.imp.majorAxis());
1371
+ return new y(this.imp.majorAxis());
1327
1372
  }
1328
1373
  set majorAxis(D) {
1329
1374
  this.imp.setMajorAxis(D.imp);
1330
1375
  }
1331
1376
  setMinorAxis(D, C, B) {
1332
- this.imp.setMinorAxis(new w(D, C, B).imp);
1377
+ this.imp.setMinorAxis(new y(D, C, B).imp);
1333
1378
  }
1334
1379
  get minorAxis() {
1335
- return new w(this.imp.minorAxis());
1380
+ return new y(this.imp.minorAxis());
1336
1381
  }
1337
1382
  set minorAxis(D) {
1338
1383
  this.imp.setMinorAxis(D.imp);
@@ -1356,11 +1401,25 @@ class uD extends N {
1356
1401
  this.imp.setEndAngle(D);
1357
1402
  }
1358
1403
  }
1359
- function z(E = null) {
1404
+ class dD extends G {
1405
+ constructor(D, C, B) {
1406
+ D instanceof Object ? D instanceof a ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbPoint()), this.imp.setPosition(D.imp)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbPoint()), typeof D == "number" && this.imp.setPosition(new a(D, C, B).imp));
1407
+ }
1408
+ setPosition(D, C, B) {
1409
+ this.imp.setPosition(new a(D, C, B).imp);
1410
+ }
1411
+ get position() {
1412
+ return new a(this.imp.position());
1413
+ }
1414
+ set position(D) {
1415
+ this.imp.setPosition(D.imp);
1416
+ }
1417
+ }
1418
+ function N(E = null) {
1360
1419
  let D;
1361
1420
  return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1362
1421
  }
1363
- class q extends G {
1422
+ class AD extends K {
1364
1423
  constructor(D) {
1365
1424
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
1366
1425
  }
@@ -1380,7 +1439,7 @@ class q extends G {
1380
1439
  if (this.imp.AtObjectName(D) == "McDbMText") {
1381
1440
  let B = this.imp.AtObjectMdDbMText(D);
1382
1441
  if (B)
1383
- return { val: new Q(B), ret: i.getCallResult() };
1442
+ return { val: new DD(B), ret: i.getCallResult() };
1384
1443
  }
1385
1444
  return { val: void 0, ret: -1 };
1386
1445
  }
@@ -1388,10 +1447,10 @@ class q extends G {
1388
1447
  this.imp.AddObject(D.getImp());
1389
1448
  }
1390
1449
  AtObjectId(D) {
1391
- return { val: new M(this.imp.AtObjectId(D), f.kMxCAD), ret: i.getCallResult() };
1450
+ return { val: new R(this.imp.AtObjectId(D), k.kMxCAD), ret: i.getCallResult() };
1392
1451
  }
1393
1452
  AtString(D, C = !0) {
1394
- return C ? { val: g.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1453
+ return C ? { val: P.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1395
1454
  }
1396
1455
  AtPoint(D) {
1397
1456
  return { val: new a(this.imp.AtPoint(D)), ret: i.getCallResult() };
@@ -1409,7 +1468,10 @@ class q extends G {
1409
1468
  return this.imp.AddObjectId(D, C);
1410
1469
  }
1411
1470
  AddString(D, C = -10, B = !0) {
1412
- return B ? this.imp.AddString(g.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1471
+ return B ? this.imp.AddString(P.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1472
+ }
1473
+ AddMcDbEntityTypes(D) {
1474
+ return this.imp.AddString(D, 5020);
1413
1475
  }
1414
1476
  AddPoint(D, C = -10) {
1415
1477
  return this.imp.AddPoint(D.imp, C);
@@ -1421,7 +1483,7 @@ class q extends G {
1421
1483
  this.imp.Remove(D);
1422
1484
  }
1423
1485
  }
1424
- class OD {
1486
+ class UD {
1425
1487
  imp;
1426
1488
  constructor() {
1427
1489
  }
@@ -1433,59 +1495,64 @@ class OD {
1433
1495
  }
1434
1496
  findEntAtPoint(D, C, B, F = -1, A = null) {
1435
1497
  this.init();
1436
- let e = this.imp.findEntAtPoint(D, C, B, F, z(A));
1437
- return new M(e, f.kMxCAD);
1438
- }
1439
- selectEnt(D, C = null) {
1440
- return this.init(), new Promise(async (B) => {
1441
- const F = new T();
1442
- D && F.setMessage(D), F.setCursorType(dD.kRect);
1443
- let A = await F.go();
1444
- if (!A) {
1445
- B([]);
1498
+ let t = this.imp.findEntAtPoint(D, C, B, F, N(A));
1499
+ return new R(t, k.kMxCAD);
1500
+ }
1501
+ selectEnt(D, C = null, B = !0) {
1502
+ return this.init(), new Promise(async (F) => {
1503
+ const A = new O();
1504
+ D && A.setMessage(D), A.setCursorType(bD.kRect), A.setDisableOsnap(!0);
1505
+ let t = await A.go();
1506
+ if (!t) {
1507
+ F([]);
1446
1508
  return;
1447
1509
  }
1448
- hD.findEntAtPoint(A).then((e) => {
1449
- let t = [];
1450
- e.forEach((s) => {
1451
- t.push(new M(s, f.kMxDraw));
1510
+ if (B)
1511
+ fD.findEntAtPoint(t).then((e) => {
1512
+ let r = [];
1513
+ e.forEach((o) => {
1514
+ r.push(new R(o, k.kMxDraw));
1515
+ });
1516
+ let s = this.findEntAtPoint(t.x, t.y, t.z, -1, C);
1517
+ s.isValid() && r.push(s), F(r);
1452
1518
  });
1453
- let r = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1454
- r.isValid() && t.push(r), B(t);
1455
- });
1519
+ else {
1520
+ let e = [], r = this.findEntAtPoint(t.x, t.y, t.z, -1, C);
1521
+ r.isValid() && e.push(r), F(e);
1522
+ }
1456
1523
  });
1457
1524
  }
1458
1525
  getCurrentSelect() {
1459
1526
  let D = [];
1460
1527
  return h.getCurrentDraw().getMxCurrentSelect().forEach((F) => {
1461
- D.push(new M(F, f.kMxDraw));
1528
+ D.push(new R(F, k.kMxDraw));
1462
1529
  }), h.getCurrentDraw().getMxCADCurrentSelect().forEach((F) => {
1463
- D.push(new M(F, f.kMxCAD));
1530
+ D.push(new R(F, k.kMxCAD));
1464
1531
  }), D;
1465
1532
  }
1466
1533
  init() {
1467
1534
  this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
1468
1535
  }
1469
1536
  }
1470
- let $ = new OD();
1471
- class BD extends G {
1537
+ let U = new UD();
1538
+ class Z extends K {
1472
1539
  constructor() {
1473
1540
  super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
1474
1541
  }
1475
1542
  allSelect(D = null) {
1476
- return this.imp.allSelect(z(D));
1543
+ return this.imp.allSelect(N(D));
1477
1544
  }
1478
1545
  pointSelect(D, C, B = null, F = -1) {
1479
- return this.imp.pointSelect(D, C, z(B), F);
1546
+ return this.imp.pointSelect(D, C, N(B), F);
1480
1547
  }
1481
1548
  crossingSelect(D, C, B, F, A = null) {
1482
- return this.imp.crossingSelect(D, C, B, F, z(A));
1549
+ return this.imp.crossingSelect(D, C, B, F, N(A));
1483
1550
  }
1484
1551
  count() {
1485
1552
  return this.imp.count();
1486
1553
  }
1487
1554
  item(D) {
1488
- return new M(this.imp.item(D), f.kMxCAD);
1555
+ return new R(this.imp.item(D), k.kMxCAD);
1489
1556
  }
1490
1557
  forEach(D) {
1491
1558
  let C = this.imp.count();
@@ -1499,61 +1566,231 @@ class BD extends G {
1499
1566
  return D;
1500
1567
  }
1501
1568
  async userSelect(D, C = null) {
1502
- let B = new T();
1503
- D && B.setMessage(D), B.setCursorType(dD.kRect), B.setDynamicInputType(ZD.kDynTip);
1569
+ let B = new O();
1570
+ D && B.setMessage(D), B.setCursorType(bD.kRect), B.setDynamicInputType(xD.kDynTip), B.setDisableOsnap(!0);
1504
1571
  let F = 0;
1505
1572
  for (; ; ) {
1506
1573
  let A = await B.go();
1507
1574
  if (F = B.getDetailedResult(), !A)
1508
1575
  break;
1509
- let e = await hD.getCorner(A, D, !0, (t) => {
1510
- F = t.detailedResult;
1576
+ let t = await fD.getCorner(A, D, !0, (e) => {
1577
+ F = e.detailedResult;
1511
1578
  });
1512
- if (!e)
1579
+ if (!t)
1513
1580
  break;
1514
- this.imp.userSelect(A.x, A.y, e.x, e.y, z(C));
1581
+ this.imp.userSelect(A.x, A.y, t.x, t.y, N(C));
1515
1582
  }
1516
- return this.imp.highlightEntity(!1), F == FD.kEcsIn || F == FD.kNewCommadIn || F == FD.kUnknown ? new Promise((A) => {
1583
+ return this.imp.highlightEntity(!1), F == iD.kEcsIn || F == iD.kNewCommadIn || F == iD.kUnknown ? new Promise((A) => {
1517
1584
  A(!1);
1518
1585
  }) : new Promise((A) => {
1519
1586
  A(!0);
1520
1587
  });
1521
1588
  }
1522
1589
  }
1523
- class K {
1590
+ class z {
1591
+ imp;
1592
+ constructor() {
1593
+ this.imp = new O();
1594
+ }
1595
+ go() {
1596
+ return new Promise((D) => {
1597
+ this.imp.go((C) => {
1598
+ C != 0 ? D(null) : D(new a(this.imp.value()));
1599
+ });
1600
+ });
1601
+ }
1602
+ keyWords() {
1603
+ return this.imp.keyWords();
1604
+ }
1605
+ setKeyWords(D) {
1606
+ this.imp.setKeyWords(D);
1607
+ }
1608
+ message() {
1609
+ return this.imp.message();
1610
+ }
1611
+ setMessage(D) {
1612
+ this.imp.setMessage(D);
1613
+ }
1614
+ keyWordPicked() {
1615
+ return this.imp.keyWordPicked();
1616
+ }
1617
+ isKeyWordPicked(D) {
1618
+ return this.imp.isKeyWordPicked(D);
1619
+ }
1620
+ setUserDraw(D) {
1621
+ this.imp.setUserDraw((C, B) => {
1622
+ D(new a(C), B);
1623
+ });
1624
+ }
1625
+ value() {
1626
+ return new a(this.imp.value());
1627
+ }
1628
+ getCADValue() {
1629
+ return this.imp.getCADValue();
1630
+ }
1631
+ basePt() {
1632
+ return new a(this.imp.basePt());
1633
+ }
1634
+ setBasePt(D) {
1635
+ this.imp.setBasePt(D.toVector3());
1636
+ }
1637
+ setUseBasePt(D) {
1638
+ this.imp.setUseBasePt(D);
1639
+ }
1640
+ getDetailedResult() {
1641
+ return this.imp.getDetailedResult();
1642
+ }
1643
+ getStatus() {
1644
+ return this.imp.getStatus();
1645
+ }
1646
+ drawReserve(D) {
1647
+ this.imp.drawReserve(D);
1648
+ }
1649
+ setInputToucheType(D) {
1650
+ this.imp.setInputToucheType(D);
1651
+ }
1652
+ getInputToucheType() {
1653
+ return this.imp.getInputToucheType();
1654
+ }
1655
+ setCursorType(D) {
1656
+ this.imp.setCursorType(D);
1657
+ }
1658
+ getCursorType() {
1659
+ return this.imp.getCursorType();
1660
+ }
1661
+ setDynamicInputType(D) {
1662
+ this.imp.setDynamicInputType(D);
1663
+ }
1664
+ getDynamicInputType() {
1665
+ return this.imp.getDynamicInputType();
1666
+ }
1667
+ isDisableDynInput() {
1668
+ return this.imp.isDisableDynInput();
1669
+ }
1670
+ setDisableDynInput(D) {
1671
+ this.imp.setDisableDynInput(D);
1672
+ }
1673
+ setDisableOsnap(D) {
1674
+ this.imp.setDisableOsnap(D);
1675
+ }
1676
+ isDisableOsnap() {
1677
+ return this.imp.isDisableOsnap();
1678
+ }
1679
+ }
1680
+ class zD {
1681
+ imp;
1682
+ constructor() {
1683
+ this.imp = new BC();
1684
+ }
1685
+ keyWords() {
1686
+ return this.imp.keyWords();
1687
+ }
1688
+ setKeyWords(D) {
1689
+ return this.imp.setKeyWords(D);
1690
+ }
1691
+ message() {
1692
+ return this.imp.message();
1693
+ }
1694
+ setMessage(D) {
1695
+ return this.imp.setMessage(D);
1696
+ }
1697
+ keyWordPicked() {
1698
+ return this.imp.keyWordPicked();
1699
+ }
1700
+ isKeyWordPicked(D) {
1701
+ return this.imp.isKeyWordPicked(D);
1702
+ }
1703
+ setUserDraw(D) {
1704
+ this.imp.setUserDraw((C, B) => {
1705
+ D(new a(C), B);
1706
+ });
1707
+ }
1708
+ value() {
1709
+ return this.imp.value();
1710
+ }
1711
+ basePt() {
1712
+ return new a(this.imp.basePt());
1713
+ }
1714
+ setBasePt(D) {
1715
+ this.imp.setBasePt(D.toVector3());
1716
+ }
1717
+ setUseBasePt(D) {
1718
+ return this.imp.setUseBasePt(D);
1719
+ }
1720
+ getDetailedResult() {
1721
+ return this.imp.getDetailedResult();
1722
+ }
1723
+ getStatus() {
1724
+ return this.imp.getStatus();
1725
+ }
1726
+ go() {
1727
+ return new Promise((D) => {
1728
+ this.imp.go((C) => {
1729
+ C != 0 ? D(null) : D(this.imp.value());
1730
+ });
1731
+ });
1732
+ }
1733
+ drawReserve(D) {
1734
+ return this.imp.drawReserve(D);
1735
+ }
1736
+ setInputToucheType(D) {
1737
+ return this.imp.setInputToucheType(D);
1738
+ }
1739
+ getInputToucheType() {
1740
+ return this.imp.getInputToucheType();
1741
+ }
1742
+ setCursorType(D) {
1743
+ this.imp.setCursorType(D);
1744
+ }
1745
+ getCursorType() {
1746
+ return this.imp.getCursorType();
1747
+ }
1748
+ setDynamicInputType(D) {
1749
+ this.imp.setDynamicInputType(D);
1750
+ }
1751
+ getDynamicInputType() {
1752
+ return this.imp.getDynamicInputType();
1753
+ }
1754
+ isDisableDynInput() {
1755
+ return this.imp.isDisableDynInput();
1756
+ }
1757
+ setDisableDynInput(D) {
1758
+ return this.imp.setDisableDynInput(D);
1759
+ }
1760
+ setDisableOsnap(D) {
1761
+ return this.imp.setDisableOsnap(D);
1762
+ }
1763
+ isDisableOsnap() {
1764
+ return this.imp.isDisableOsnap();
1765
+ }
1766
+ }
1767
+ class _ {
1524
1768
  imp;
1525
- mxObject;
1526
1769
  static currentFileName;
1527
1770
  constructor(D) {
1528
1771
  this.imp = D;
1529
1772
  }
1530
1773
  initMxObject(D) {
1531
- this.mxObject = D;
1774
+ this.imp.mxdrawObject = D;
1532
1775
  }
1533
1776
  getMxDrawObject() {
1534
- return this.mxObject;
1777
+ return this.imp.mxdrawObject;
1535
1778
  }
1536
1779
  getImp() {
1537
1780
  return this.imp;
1538
1781
  }
1539
- updateDisplay(D, C) {
1540
- this.imp.updateDisplay(D, C);
1541
- }
1542
- test() {
1543
- this.imp.test();
1544
- }
1545
1782
  openWebFile(D, C, B = !0) {
1546
- let F = Math.round(Math.random() * 1e7);
1783
+ let F = this.imp.mxdrawObject, A = Math.round(Math.random() * 1e7);
1547
1784
  if (C) {
1548
- let A = this, e = (t, r) => {
1549
- A.mxObject.removeEventFuction("openFileComplete", e), F == r && C(t);
1785
+ let t = (e, r) => {
1786
+ F.removeEventFuction("openFileComplete", t), A == r && C(e);
1550
1787
  };
1551
- A.mxObject.addEvent("openFileComplete", e);
1788
+ F.addEvent("openFileComplete", t);
1552
1789
  }
1553
- return K.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, F);
1790
+ return _.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, A);
1554
1791
  }
1555
1792
  getCurrentFileName() {
1556
- return K.currentFileName;
1793
+ return _.currentFileName;
1557
1794
  }
1558
1795
  saveFileToUrl(D, C) {
1559
1796
  const B = window;
@@ -1564,12 +1801,12 @@ class K {
1564
1801
  saveFile(D, C, B = !0, F = !0) {
1565
1802
  D || (D = this.getCurrentFileName()), D.indexOf(".") == -1 && (D += ".mxweb");
1566
1803
  const A = window;
1567
- return A.mx_saveFile_call = (e) => {
1568
- if (C && C(e), !!e) {
1804
+ return A.mx_saveFile_call = (t) => {
1805
+ if (C && C(t), !!t) {
1569
1806
  if (B) {
1570
- let t;
1571
- /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? t = new Blob([e.buffer], { type: "application/octet-stream" }) : t = new Blob([e.buffer], { type: "application/octet-binary" }), F ? _.saveAsFileDialog({
1572
- blob: t,
1807
+ let e;
1808
+ /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? e = new Blob([t.buffer], { type: "application/octet-stream" }) : e = new Blob([t.buffer], { type: "application/octet-binary" }), F ? J.saveAsFileDialog({
1809
+ blob: e,
1573
1810
  filename: D,
1574
1811
  types: [{
1575
1812
  description: "mxweb File",
@@ -1577,14 +1814,14 @@ class K {
1577
1814
  "application/octet-stream": [".mxweb"]
1578
1815
  }
1579
1816
  }]
1580
- }) : _.downloadFile(t, D);
1817
+ }) : J.downloadFile(e, D);
1581
1818
  }
1582
1819
  A.mx_saveFile_call = null;
1583
1820
  }
1584
1821
  }, this.imp.saveFile(D);
1585
1822
  }
1586
1823
  GetDatabase() {
1587
- return this.imp.McDbDatabase || (this.imp.McDbDatabase = new oD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1824
+ return this.imp.McDbDatabase || (this.imp.McDbDatabase = new mD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1588
1825
  }
1589
1826
  GetSysVarString(D) {
1590
1827
  return this.imp.GetSysVarString(D);
@@ -1605,7 +1842,7 @@ class K {
1605
1842
  return this.imp.SetSysVarLong(D, C);
1606
1843
  }
1607
1844
  get DrawColor() {
1608
- return new I(this.imp.GetDrawColor());
1845
+ return new H(this.imp.GetDrawColor());
1609
1846
  }
1610
1847
  set DrawColor(D) {
1611
1848
  this.imp.SetDrawColor(D.getImp());
@@ -1652,8 +1889,8 @@ class K {
1652
1889
  AddLinetypeEx(D, C, B) {
1653
1890
  this.imp.AddLinetypeEx(D, C, B);
1654
1891
  }
1655
- DrawLine(D, C, B, F, A, e) {
1656
- return this.imp.DrawLine(D, C, B, F, A, e);
1892
+ DrawLine(D, C, B, F, A, t) {
1893
+ return this.imp.DrawLine(D, C, B, F, A, t);
1657
1894
  }
1658
1895
  AddDimStyle(D, C, B, F, A) {
1659
1896
  return this.imp.AddDimStyle(D, C, B, F, A);
@@ -1679,8 +1916,8 @@ class K {
1679
1916
  DrawArc(D, C, B, F, A) {
1680
1917
  return this.imp.DrawArc(D, C, B, F, A);
1681
1918
  }
1682
- DrawArc2(D, C, B, F, A, e) {
1683
- return this.imp.DrawArc2(D, C, B, F, A, e);
1919
+ DrawArc2(D, C, B, F, A, t) {
1920
+ return this.imp.DrawArc2(D, C, B, F, A, t);
1684
1921
  }
1685
1922
  DrawCircle(D, C, B) {
1686
1923
  return this.imp.DrawCircle(D, C, B);
@@ -1688,35 +1925,35 @@ class K {
1688
1925
  DrawEllipse(D, C, B, F, A) {
1689
1926
  return this.imp.DrawEllipse(D, C, B, F, A);
1690
1927
  }
1691
- DrawEllipseArc(D, C, B, F, A, e, t) {
1692
- return this.imp.DrawEllipseArc(D, C, B, F, A, e, t);
1928
+ DrawEllipseArc(D, C, B, F, A, t, e) {
1929
+ return this.imp.DrawEllipseArc(D, C, B, F, A, t, e);
1693
1930
  }
1694
1931
  DrawPoint(D, C) {
1695
1932
  return this.imp.DrawPoint(D, C);
1696
1933
  }
1697
- DrawSolid(D, C, B, F, A, e, t, r) {
1698
- return this.imp.DrawSolid(D, C, B, F, A, e, t, r);
1934
+ DrawSolid(D, C, B, F, A, t, e, r) {
1935
+ return this.imp.DrawSolid(D, C, B, F, A, t, e, r);
1699
1936
  }
1700
- DrawMText(D, C, B, F, A, e, t) {
1701
- return this.imp.DrawMText(D, C, B, F, A, e, t);
1937
+ DrawMText(D, C, B, F, A, t, e) {
1938
+ return this.imp.DrawMText(D, C, B, F, A, t, e);
1702
1939
  }
1703
- DrawText(D, C, B, F, A, e, t) {
1704
- return this.imp.DrawTextDrawText(D, C, B, F, A, e, t);
1940
+ DrawText(D, C, B, F, A, t, e) {
1941
+ return this.imp.DrawTextDrawText(D, C, B, F, A, t, e);
1705
1942
  }
1706
1943
  DrawBlockReference(D, C, B, F, A) {
1707
1944
  return this.imp.DrawBlockReference(D, C, B, F, A);
1708
1945
  }
1709
- DrawDimAligned(D, C, B, F, A, e) {
1710
- return this.imp.DrawDimAligned(D, C, B, F, A, e);
1946
+ DrawDimAligned(D, C, B, F, A, t) {
1947
+ return this.imp.DrawDimAligned(D, C, B, F, A, t);
1711
1948
  }
1712
- DrawDimAngular(D, C, B, F, A, e, t, r) {
1713
- return this.imp.DrawDimAngular(D, C, B, F, A, e, t, r);
1949
+ DrawDimAngular(D, C, B, F, A, t, e, r) {
1950
+ return this.imp.DrawDimAngular(D, C, B, F, A, t, e, r);
1714
1951
  }
1715
1952
  DrawDimDiametric(D, C, B, F, A) {
1716
1953
  return this.imp.DrawDimDiametric(D, C, B, F, A);
1717
1954
  }
1718
- DrawDimRotated(D, C, B, F, A, e, t) {
1719
- return this.imp.DrawDimRotated(D, C, B, F, A, e, t);
1955
+ DrawDimRotated(D, C, B, F, A, t, e) {
1956
+ return this.imp.DrawDimRotated(D, C, B, F, A, t, e);
1720
1957
  }
1721
1958
  DrawDimOrdinate(D, C, B, F, A) {
1722
1959
  return this.imp.DrawDimOrdinate(D, C, B, F, A);
@@ -1758,19 +1995,22 @@ class K {
1758
1995
  !D || i.App.getImp().DestroyObject(D);
1759
1996
  }
1760
1997
  GetAllLayoutName() {
1761
- return new TD(this.imp.GetAllLayoutName());
1998
+ return new LD(this.imp.GetAllLayoutName());
1762
1999
  }
1763
2000
  SetCurrentLayout(D) {
1764
- this.imp.SetCurrentLayout(g.encodeToGb2312(D));
2001
+ this.imp.SetCurrentLayout(P.encodeToGb2312(D));
1765
2002
  }
1766
2003
  GetMxCpp() {
1767
2004
  return i;
1768
2005
  }
2006
+ docCoord2Cad(D) {
2007
+ return new a(this.imp.mxdrawObject.docCoord2Cad(D.x, D.y, D.z));
2008
+ }
1769
2009
  }
1770
- class jD {
2010
+ class KD {
1771
2011
  imp;
1772
2012
  init(D) {
1773
- this.imp = D, w.kZAxis = new w(0, 0, 1), w.kXAxis = new w(1, 0, 0), w.kYAxis = new w(0, 1, 0), a.kOrigin = new a(0, 0, 0), V.kIdentity = new V();
2013
+ this.imp = D, y.kZAxis = new y(0, 0, 1), y.kNegateZAxis = new y(0, 0, -1), y.kXAxis = new y(1, 0, 0), y.kYAxis = new y(0, 1, 0), a.kOrigin = new a(0, 0, 0), I.kIdentity = new I();
1774
2014
  }
1775
2015
  getImp() {
1776
2016
  return this.imp;
@@ -1779,63 +2019,75 @@ class jD {
1779
2019
  return this.imp.getLastCallResult();
1780
2020
  }
1781
2021
  CreateMxCAD(D, C, B, F, A) {
1782
- let e = this.imp.CreateMxDraw(D, C, B, F, A);
1783
- return new K(e);
2022
+ let t = this.imp.CreateMxDraw(D, C, B, F, A);
2023
+ return new _(t);
1784
2024
  }
1785
2025
  DestroyObject(D) {
1786
2026
  this.imp.DestroyObject(D);
1787
2027
  }
1788
2028
  GetCurrentMxCAD() {
1789
2029
  let D = this.imp.GetCurrentMxDraw();
1790
- return D.McObject || (D.McObject = new K(this.imp.GetCurrentMxDraw())), D.McObject;
2030
+ return D.McObject || (D.McObject = new _(this.imp.GetCurrentMxDraw())), D.McObject;
1791
2031
  }
1792
2032
  mcedRGB2Index(D, C, B, F = !0) {
1793
2033
  return this.imp.mcedRGB2Index(D, C, B, F);
1794
2034
  }
2035
+ ObjectIdIsKindOf(D, C) {
2036
+ return this.imp.ObjectIdIsKindOf(D, C);
2037
+ }
1795
2038
  ObjectIdToObject(D) {
1796
2039
  if (!D)
1797
2040
  return null;
1798
2041
  let C = this.imp.ObjectIdToObjectName(D);
1799
2042
  if (C == "McDbLine") {
1800
2043
  let B = this.imp.ObjectIdToMdDbLine(D);
1801
- return new Y(B);
2044
+ return new X(B);
1802
2045
  } else if (C == "McDbText") {
1803
2046
  let B = this.imp.ObjectIdToMdDbText(D);
1804
- return new iD(B);
2047
+ return new aD(B);
1805
2048
  } else if (C == "McDbPolyline") {
1806
2049
  let B = this.imp.ObjectIdToMdDbPolyline(D);
1807
- return new X(B);
2050
+ return new CD(B);
1808
2051
  } else if (C == "McDbCircle") {
1809
2052
  let B = this.imp.ObjectIdToMdDbCircle(D);
1810
- return new O(B);
2053
+ return new W(B);
1811
2054
  } else if (C == "McDbArc") {
1812
2055
  let B = this.imp.ObjectIdToMdDbArc(D);
1813
- return new DD(B);
2056
+ return new BD(B);
1814
2057
  } else if (C == "McDbBlockReference") {
1815
2058
  let B = this.imp.ObjectIdToMdDbBlockReference(D);
1816
- return new rD(B);
2059
+ return new uD(B);
1817
2060
  } else if (C == "McDbAlignedDimension") {
1818
2061
  let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
1819
- return new sD(B);
2062
+ return new lD(B);
1820
2063
  } else if (C == "McDbRotatedDimension") {
1821
2064
  let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
1822
- return new nD(B);
2065
+ return new cD(B);
1823
2066
  } else if (C == "McDbMText") {
1824
2067
  let B = this.imp.ObjectIdToMdDbMText(D);
1825
- return new Q(B);
2068
+ return new DD(B);
2069
+ } else if (C == "McDbEllipse") {
2070
+ let B = this.imp.ObjectIdToMdDbEllipse(D);
2071
+ return new FD(B);
2072
+ } else if (C == "McDbPoint") {
2073
+ let B = this.imp.ObjectIdToMdDbPoint(D);
2074
+ return new dD(B);
2075
+ } else if (this.imp.ObjectIdIsKindOf(D, "McDbCurve")) {
2076
+ let B = this.imp.ObjectIdToMdDbCurve(D);
2077
+ return new V(B);
1826
2078
  } else if (this.imp.ObjectIdIsKindOf(D, "McDbEntity")) {
1827
2079
  let B = this.imp.ObjectIdToMdDbEntity(D);
1828
- return new j(B);
2080
+ return new G(B);
1829
2081
  } else {
1830
2082
  let B = this.imp.ObjectIdToMdObject(D);
1831
- return new v(B);
2083
+ return new j(B);
1832
2084
  }
1833
2085
  }
1834
2086
  CreateCloneObject(D) {
1835
2087
  if (!D)
1836
2088
  return null;
1837
2089
  let C = D.getObjectName(), B = null;
1838
- return C == "McDbLine" ? B = new Y() : C == "McDbText" ? B = new iD() : C == "McDbPolyline" ? B = new X() : C == "McDbCircle" ? B = new O() : C == "McDbArc" ? B = new DD() : C == "McDbBlockReference" ? B = new rD() : C == "McDbAlignedDimension" ? B = new sD() : C == "McDbRotatedDimension" ? B = new nD() : C == "McDbMText" ? B = new Q() : D.isKindOf("McDbEntity") && (B = new j(), B.initTempObject(new i.mxcadassemblyimp.MdDbEntity())), B ? (B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B) : new v(D);
2090
+ return C == "McDbLine" ? B = new X() : C == "McDbText" ? B = new aD() : C == "McDbPolyline" ? B = new CD() : C == "McDbCircle" ? B = new W() : C == "McDbArc" ? B = new BD() : C == "McDbBlockReference" ? B = new uD() : C == "McDbAlignedDimension" ? B = new lD() : C == "McDbRotatedDimension" ? B = new cD() : C == "McDbMText" ? B = new DD() : D.isKindOf("McDbCurve") ? (B = new V(), B.initTempObject(new i.mxcadassemblyimp.MdDbCurve())) : D.isKindOf("McDbEntity") && (B = new G(), B.initTempObject(new i.mxcadassemblyimp.MdDbEntity())), B ? (B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B) : new j(D);
1839
2091
  }
1840
2092
  setFontFilePath(D) {
1841
2093
  this.imp.setFontFilePath(D);
@@ -1846,9 +2098,9 @@ class jD {
1846
2098
  });
1847
2099
  }
1848
2100
  }
1849
- class GD {
2101
+ class HD {
1850
2102
  mxcadassemblyimp;
1851
- App = new jD();
2103
+ App = new KD();
1852
2104
  getCallResult() {
1853
2105
  return this.App.getLastCallResult();
1854
2106
  }
@@ -1867,43 +2119,43 @@ class GD {
1867
2119
  return this.App.GetCurrentMxCAD().GetDatabase();
1868
2120
  }
1869
2121
  }
1870
- const lD = "1.0.74", rC = "SharedArrayBuffer" in window, ED = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), sC = (E, D = self.location.href) => ED ? `https://unpkg.com/mxcad@${lD}/dist/wasm/2d-st/${E}` : D + E, nC = (E, D = self.location.href) => ED ? `https://unpkg.com/mxcad@${lD}/dist/wasm/2d/${E}` : D + E, oC = (E, D = self.location.href) => ED ? `https://unpkg.com/mxcad@${lD}/dist/wasm/3d/${E}` : D + E, ID = (E) => new Promise((D, C) => {
2122
+ const hD = "1.0.76", lC = "SharedArrayBuffer" in window, tD = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), cC = (E, D = self.location.href) => tD ? `https://unpkg.com/mxcad@${hD}/dist/wasm/2d-st/${E}` : D + E, mC = (E, D = self.location.href) => tD ? `https://unpkg.com/mxcad@${hD}/dist/wasm/2d/${E}` : D + E, pC = (E, D = self.location.href) => tD ? `https://unpkg.com/mxcad@${hD}/dist/wasm/3d/${E}` : D + E, ND = (E) => new Promise((D, C) => {
1871
2123
  const B = document.createElement("script");
1872
2124
  B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
1873
2125
  D();
1874
2126
  }, B.onerror = (F) => {
1875
2127
  C(F);
1876
2128
  };
1877
- }), aC = async (E, D, C) => {
2129
+ }), dC = async (E, D, C) => {
1878
2130
  const { locateFile: B } = C, F = B(E + ".js");
1879
- return await ID(F), await globalThis[D](C);
2131
+ return await ND(F), await globalThis[D](C);
1880
2132
  };
1881
2133
  let i;
1882
- async function WD(E, D = rC || !ED ? sC : nC, C, B, F) {
1883
- return new Promise(async (A, e) => {
2134
+ async function _D(E, D = lC || !tD ? cC : mC, C, B, F) {
2135
+ return new Promise(async (A, t) => {
1884
2136
  try {
1885
- if (i || (i = new GD()), i.mxcadassemblyimp)
2137
+ if (i || (i = new HD()), i.mxcadassemblyimp)
1886
2138
  return E && E(i), A(i);
1887
- const r = await aC("mxdrawassembly_min", "mxdrawassembly", {
2139
+ const r = await dC("mxdrawassembly_min", "mxdrawassembly", {
1888
2140
  locateFile: D,
1889
2141
  wasmBinary: C
1890
2142
  });
1891
2143
  i.mxcadassemblyimp = r;
1892
2144
  let s = new r.McApp();
1893
2145
  B && s.setFontFilePath(B), s.Init(), i.App.init(s), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
1894
- } catch (t) {
1895
- e(t);
2146
+ } catch (e) {
2147
+ t(e);
1896
2148
  }
1897
2149
  });
1898
2150
  }
1899
- const uC = (E) => {
2151
+ const hC = (E) => {
1900
2152
  let D = null;
1901
2153
  if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
1902
2154
  return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
1903
- }, lC = (E, D) => new Promise((C, B) => {
2155
+ }, yC = (E, D) => new Promise((C, B) => {
1904
2156
  try {
1905
2157
  h.createMxObject({
1906
- canvasId: uC(E),
2158
+ canvasId: hC(E),
1907
2159
  isCPPMxCAD: !0,
1908
2160
  userIdentitySign: D,
1909
2161
  callback(F) {
@@ -1915,28 +2167,28 @@ const uC = (E) => {
1915
2167
  } catch (F) {
1916
2168
  B(F);
1917
2169
  }
1918
- }), cC = async (E) => {
1919
- wD.state.MxFun || await YD();
1920
- const { multipleSelect: D, networkFonts: C, fontspath: B, locateFile: F, wasmBinary: A, canvas: e, userIdentitySign: t, onOpenFileComplete: r, fileUrl: s, onInit: o = () => {
2170
+ }), wC = async (E) => {
2171
+ MD.state.MxFun || await EC();
2172
+ const { multipleSelect: D, networkFonts: C, fontspath: B, locateFile: F, wasmBinary: A, canvas: t, userIdentitySign: e, onOpenFileComplete: r, fileUrl: s, onInit: o = () => {
1921
2173
  h.setIniset({
1922
2174
  EnableIntelliSelect: !0,
1923
2175
  IntelliSelectType: 1,
1924
2176
  multipleSelect: !!D
1925
2177
  });
1926
2178
  } } = E || {};
1927
- await WD(() => {
2179
+ await _D(() => {
1928
2180
  }, F, A, B, C), o();
1929
- let u = await lC(e, t);
1930
- const p = h.getMxFunTHREE();
1931
- let d = new p.Vector2();
1932
- u.getRenderer().getSize(d);
1933
- const n = i.App.CreateMxCAD(d.width, d.height, u.getCanvas().id, u.isWebgl2(), u.getId());
2181
+ let u = await yC(t, e);
2182
+ const l = h.getMxFunTHREE();
2183
+ let c = new l.Vector2();
2184
+ u.getRenderer().getSize(c);
2185
+ const n = i.App.CreateMxCAD(c.width, c.height, u.getCanvas().id, u.isWebgl2(), u.getId());
1934
2186
  return u.initMxCpp(n), u.addEvent("openFileComplete", () => {
1935
2187
  r && r();
1936
2188
  }), s && n.openWebFile(s), n;
1937
2189
  };
1938
- async function mC() {
1939
- const E = new T();
2190
+ async function gC() {
2191
+ const E = new O();
1940
2192
  E.setMessage(`
1941
2193
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
1942
2194
  let D = await E.go();
@@ -1946,7 +2198,7 @@ async function mC() {
1946
2198
  if (C.length <= 0)
1947
2199
  return;
1948
2200
  let B = h.screenCoordLong2Doc(50);
1949
- C = _.b64Encode(C);
2201
+ C = J.b64Encode(C);
1950
2202
  const F = {
1951
2203
  postx: D.x,
1952
2204
  posty: D.y,
@@ -1955,86 +2207,86 @@ async function mC() {
1955
2207
  };
1956
2208
  h.call("Mx_Text", F);
1957
2209
  }
1958
- class pC extends yD {
2210
+ class bC extends PD {
1959
2211
  getGripPoints() {
1960
2212
  const { x: D, y: C, z: B } = this.center;
1961
- let F = new THREE.Vector3(D, C + this.radius, B), A = new THREE.Vector3(D, C - this.radius, B), e = new THREE.Vector3(D - this.radius, C, B), t = new THREE.Vector3(D + this.radius, C, B);
1962
- return [this.center, F, A, e, t];
2213
+ let F = new THREE.Vector3(D, C + this.radius, B), A = new THREE.Vector3(D, C - this.radius, B), t = new THREE.Vector3(D - this.radius, C, B), e = new THREE.Vector3(D + this.radius, C, B);
2214
+ return [this.center, F, A, t, e];
1963
2215
  }
1964
2216
  moveGripPointsAt(D, C) {
1965
- const [B, F, A, e, t] = this.getGripPoints();
1966
- return D === 0 && (this.center = B.add(C)), D === 1 && (this.radius = F.add(C).distanceTo(this.center)), D === 2 && (this.radius = A.add(C).distanceTo(this.center)), D === 3 && (this.radius = e.add(C).distanceTo(this.center)), D === 4 && (this.radius = t.add(C).distanceTo(this.center)), !0;
2217
+ const [B, F, A, t, e] = this.getGripPoints();
2218
+ return D === 0 && (this.center = B.add(C)), D === 1 && (this.radius = F.add(C).distanceTo(this.center)), D === 2 && (this.radius = A.add(C).distanceTo(this.center)), D === 3 && (this.radius = t.add(C).distanceTo(this.center)), D === 4 && (this.radius = e.add(C).distanceTo(this.center)), !0;
1967
2219
  }
1968
2220
  }
1969
- const mD = (E) => {
1970
- const [D, C, B] = E, { x: F, y: A, z: e } = D, { x: t, y: r, z: s } = C, { x: o, y: u, z: p } = B, d = A * s - r * e - A * p + u * e + r * p - u * s, n = -(F * s - t * e - F * p + o * e + t * p - o * s), c = F * r - t * A - F * u + o * A + t * u - o * r, y = -(F * r * p - F * u * s - t * A * p + t * u * e + o * A * s - o * r * e), b = 2 * (t - F), l = 2 * (r - A), m = 2 * (s - e), W = F * F + A * A + e * e - t * t - r * r - s * s, P = 2 * (o - F), S = 2 * (u - A), R = 2 * (p - e), U = F * F + A * A + e * e - o * o - u * u - p * p, _D = -(n * m * U - n * R * W - l * c * U + l * R * y + S * c * W - S * m * y) / (d * l * R - d * S * m - b * n * R + b * S * c + P * n * m - P * l * c), $D = (d * m * U - d * R * W - b * c * U + b * R * y + P * c * W - P * m * y) / (d * l * R - d * S * m - b * n * R + b * S * c + P * n * m - P * l * c), JD = -(d * l * U - d * S * W - b * n * U + b * S * y + P * n * W - P * l * y) / (d * l * R - d * S * m - b * n * R + b * S * c + P * n * m - P * l * c);
1971
- return new THREE.Vector3(_D, $D, JD);
2221
+ const wD = (E) => {
2222
+ const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: r, z: s } = C, { x: o, y: u, z: l } = B, c = A * s - r * t - A * l + u * t + r * l - u * s, n = -(F * s - e * t - F * l + o * t + e * l - o * s), m = F * r - e * A - F * u + o * A + e * u - o * r, w = -(F * r * l - F * u * s - e * A * l + e * u * t + o * A * s - o * r * t), b = 2 * (e - F), p = 2 * (r - A), d = 2 * (s - t), x = F * F + A * A + t * t - e * e - r * r - s * s, f = 2 * (o - F), g = 2 * (u - A), M = 2 * (l - t), L = F * F + A * A + t * t - o * o - u * u - l * l, $ = -(n * d * L - n * M * x - p * m * L + p * M * w + g * m * x - g * d * w) / (c * p * M - c * g * d - b * n * M + b * g * m + f * n * d - f * p * m), DC = (c * d * L - c * M * x - b * m * L + b * M * w + f * m * x - f * d * w) / (c * p * M - c * g * d - b * n * M + b * g * m + f * n * d - f * p * m), CC = -(c * p * L - c * g * x - b * n * L + b * g * w + f * n * x - f * p * w) / (c * p * M - c * g * d - b * n * M + b * g * m + f * n * d - f * p * m);
2223
+ return new THREE.Vector3($, DC, CC);
1972
2224
  };
1973
- function UD() {
1974
- const E = new T();
1975
- let D = new pC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
1976
- L.use(D), D.closed = !1, D.setColor(C);
2225
+ function qD() {
2226
+ const E = new O();
2227
+ let D = new bC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2228
+ v.use(D), D.closed = !1, D.setColor(C);
1977
2229
  let B = 0, F = "default", A = !0;
1978
- const e = () => {
2230
+ const t = () => {
1979
2231
  E.setUserDraw(
1980
- (n, c) => {
1981
- D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, c.drawCustomEntity(D), c.drawLine(D.center, n);
2232
+ (n, m) => {
2233
+ D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, m.drawCustomEntity(D), m.drawLine(D.center, n);
1982
2234
  }
1983
2235
  );
1984
- }, t = (n) => {
2236
+ }, e = (n) => {
1985
2237
  if (F === "default") {
1986
- if (n === x.kOk) {
2238
+ if (n === T.kOk) {
1987
2239
  if (B === 0)
1988
2240
  E.setMessage(`
1989
- \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), e();
2241
+ \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), t();
1990
2242
  else if (B === 1)
1991
- return i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2243
+ return i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius)), !0;
1992
2244
  B++;
1993
2245
  }
1994
- n === x.kKeyWord && E.isKeyWordPicked("D") && (A = !1, e(), E.setMessage(`
2246
+ n === T.kKeyWord && E.isKeyWordPicked("D") && (A = !1, t(), E.setMessage(`
1995
2247
  \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
1996
2248
  }
1997
2249
  };
1998
2250
  let r = [];
1999
2251
  const s = (n) => {
2000
2252
  if (F === "3P" && (E.setMessage(`
2001
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === x.kOk)) {
2002
- if (B === 0 && (r.push(E.value()), E.setUserDraw((c, y) => {
2003
- y.drawLine(r[0], c);
2253
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === T.kOk)) {
2254
+ if (B === 0 && (r.push(E.value()), E.setUserDraw((m, w) => {
2255
+ w.drawLine(r[0], m);
2004
2256
  }), E.setMessage(`
2005
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((c, y) => {
2006
- const [b, l] = r, m = c;
2007
- D.center = mD([
2257
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((m, w) => {
2258
+ const [b, p] = r, d = m;
2259
+ D.center = wD([
2008
2260
  b,
2009
- l,
2010
- m
2011
- ]), D.radius = D.center.distanceTo(b), y.drawCustomEntity(D);
2261
+ p,
2262
+ d
2263
+ ]), D.radius = D.center.distanceTo(b), w.drawCustomEntity(D);
2012
2264
  }), E.setMessage(`
2013
2265
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), B === 2)
2014
- return r.push(E.value()), D.center = mD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2266
+ return r.push(E.value()), D.center = wD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius)), !0;
2015
2267
  B++;
2016
2268
  }
2017
2269
  };
2018
2270
  let o;
2019
- const u = (n, c) => {
2020
- new THREE.Line3(n, c).getCenter(D.center), D.radius = c.distanceTo(n) / 2;
2021
- }, p = (n) => {
2271
+ const u = (n, m) => {
2272
+ new THREE.Line3(n, m).getCenter(D.center), D.radius = m.distanceTo(n) / 2;
2273
+ }, l = (n) => {
2022
2274
  if (F === "2P" && (E.setMessage(`
2023
- \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === x.kOk)) {
2024
- if (B === 0 && (o = E.value(), E.setUserDraw((c, y) => {
2025
- u(o, c), y.drawCustomEntity(D), y.drawLine(o, c);
2275
+ \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === T.kOk)) {
2276
+ if (B === 0 && (o = E.value(), E.setUserDraw((m, w) => {
2277
+ u(o, m), w.drawCustomEntity(D), w.drawLine(o, m);
2026
2278
  }), E.setMessage(`
2027
2279
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), B === 1)
2028
- return u(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2280
+ return u(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius)), !0;
2029
2281
  B++;
2030
2282
  }
2031
- }, d = (n) => {
2283
+ }, c = (n) => {
2032
2284
  if (F === "T") {
2033
2285
  if (E.setMessage(`
2034
- \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === x.kOk) {
2286
+ \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === T.kOk) {
2035
2287
  if (B === 0) {
2036
- const c = E.value();
2037
- console.log(c), h.getCurrentDraw();
2288
+ const m = E.value();
2289
+ console.log(m), h.getCurrentDraw();
2038
2290
  }
2039
2291
  B++;
2040
2292
  }
@@ -2046,79 +2298,88 @@ function UD() {
2046
2298
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
2047
2299
  ), E.setKeyWords("3P 2P T"), E.goWhile(
2048
2300
  (n) => {
2049
- if (n === x.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), t(n))
2301
+ if (n === T.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), e(n))
2050
2302
  return { exit: !0 };
2051
2303
  if (s(n))
2052
2304
  return { exit: !0 };
2053
- if (p(n))
2305
+ if (l(n))
2054
2306
  return { exit: !0 };
2055
- if (d(n))
2307
+ if (c(n))
2056
2308
  return { exit: !0 };
2057
2309
  },
2058
2310
  (n) => {
2059
- n === x.kCancel && i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius));
2311
+ n === T.kCancel && i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius));
2060
2312
  }
2061
2313
  );
2062
2314
  }
2063
2315
  h.on("init", () => {
2064
- h.addCommand("Mx_Circle", UD);
2316
+ h.addCommand("Mx_Circle", qD);
2065
2317
  });
2066
- const pD = () => wD.state.MxFun.stopRunCommand();
2067
- function AD(E, D, C, B) {
2318
+ const gD = () => MD.state.MxFun.stopRunCommand();
2319
+ function rD(E, D, C, B) {
2068
2320
  const F = E - C, A = D - B;
2069
- let e = 0;
2070
- return F == 0 ? e = Math.PI / 2 : e = Math.atan(Math.abs(A / F)), F < 0 && A >= 0 ? e = Math.PI - e : F < 0 && A < 0 ? e = Math.PI + e : F >= 0 && A < 0 && (e = Math.PI * 2 - e), e;
2321
+ let t = 0;
2322
+ return F == 0 ? t = Math.PI / 2 : t = Math.atan(Math.abs(A / F)), F < 0 && A >= 0 ? t = Math.PI - t : F < 0 && A < 0 ? t = Math.PI + t : F >= 0 && A < 0 && (t = Math.PI * 2 - t), t;
2071
2323
  }
2072
- const k = (E, D, C) => {
2324
+ const S = (E, D, C) => {
2073
2325
  const B = () => {
2074
2326
  E.go((F) => {
2075
- if (F === x.kKeyWord && C() && B(), F === x.kOk && D() && B(), F === x.kNone && B(), F === x.kCancel)
2327
+ if (F === T.kKeyWord && C() && B(), F === T.kOk && D() && B(), F === T.kNone && B(), F === T.kCancel)
2076
2328
  return { exit: !0 };
2077
2329
  });
2078
2330
  };
2079
2331
  return B;
2080
2332
  };
2081
- async function zD() {
2082
- const E = new T();
2083
- let D = new Z(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2333
+ async function ZD() {
2334
+ const E = new O();
2335
+ let D = new Q(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2084
2336
  E.setMessage(`
2085
2337
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
2086
2338
  let F = await E.go();
2087
2339
  if (!F)
2088
2340
  return;
2089
- E.setUserDraw((e, t) => {
2090
- t.setColor(C), B.forEach((r) => {
2091
- r.color = C, t.drawCustomEntity(r);
2092
- }), t.drawLine(F, e);
2341
+ E.setUserDraw((t, e) => {
2342
+ e.setColor(C), B.forEach((r) => {
2343
+ r.color = C, e.drawCustomEntity(r);
2344
+ }), e.drawLine(F, t);
2093
2345
  });
2094
2346
  const A = () => {
2095
2347
  E.setMessage(`
2096
2348
  \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), B.length > 1 ? E.setKeyWords("[\u9000\u51FA(E)/\u95ED\u5408(C)/\u653E\u5F03(U)]") : E.setKeyWords("[\u9000\u51FA(E)/\u653E\u5F03(U)]");
2097
2349
  };
2098
2350
  A(), E.goWhile(
2099
- (e) => {
2100
- if (e === x.kOk && (D = new Z(), L.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), e === x.kKeyWord) {
2351
+ (t) => {
2352
+ if (t === T.kOk && (D = new Q(), v.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), t === T.kKeyWord) {
2101
2353
  if (E.isKeyWordPicked("E"))
2102
- pD();
2354
+ gD();
2103
2355
  else if (E.isKeyWordPicked("C")) {
2104
- const t = new Z();
2105
- return t.pt1 = F.clone(), t.pt2 = B[0].pt1.clone(), L.use(t), B.push(t), F = t.pt2.clone(), pD(), { exit: !0 };
2356
+ const e = new Q();
2357
+ return e.pt1 = F.clone(), e.pt2 = B[0].pt1.clone(), v.use(e), B.push(e), F = e.pt2.clone(), gD(), { exit: !0 };
2106
2358
  } else if (E.isKeyWordPicked("U")) {
2107
- const t = B.pop();
2108
- t && (F = t.pt1);
2359
+ const e = B.pop();
2360
+ e && (F = e.pt1);
2109
2361
  }
2110
2362
  }
2111
2363
  },
2112
- (e) => (e != x.kCancel && B.forEach((t) => {
2113
- i.GetCurrentMxCAD().DrawEntity(new Y(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0));
2364
+ (t) => (t != T.kCancel && B.forEach((e) => {
2365
+ i.GetCurrentMxCAD().DrawEntity(new X(e.pt1.x, e.pt1.y, 0, e.pt2.x, e.pt2.y, 0));
2114
2366
  }), { exit: !0 })
2115
2367
  );
2116
2368
  }
2369
+ async function fC() {
2370
+ let E = new z();
2371
+ for (E.setMessage("\u6307\u5B9A\u70B9"); ; ) {
2372
+ let D = await E.go();
2373
+ if (D == null)
2374
+ break;
2375
+ i.GetCurrentMxCAD().DrawEntity(new dD(D));
2376
+ }
2377
+ }
2117
2378
  h.on("init", () => {
2118
- h.addCommand("Mx_Line", zD);
2379
+ h.addCommand("Mx_Line", ZD), h.addCommand("Mx_Point", fC);
2119
2380
  });
2120
- async function dC() {
2121
- const E = new T();
2381
+ async function xC() {
2382
+ const E = new O();
2122
2383
  E.setMessage(`
2123
2384
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2124
2385
  let D = await E.go();
@@ -2129,7 +2390,7 @@ async function dC() {
2129
2390
  if (C.length <= 0)
2130
2391
  return;
2131
2392
  let B = h.screenCoordLong2Doc(50);
2132
- C = _.b64Encode(C);
2393
+ C = J.b64Encode(C);
2133
2394
  const F = {
2134
2395
  postx: D.x,
2135
2396
  posty: D.y,
@@ -2138,79 +2399,79 @@ async function dC() {
2138
2399
  };
2139
2400
  h.call("Mx_MText", F);
2140
2401
  }
2141
- async function VD() {
2142
- const E = new T();
2402
+ async function $D() {
2403
+ const E = new O();
2143
2404
  let D = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2144
- const C = new QD();
2145
- L.use(C), C.color = D, E.setMessage(`
2405
+ const C = new FC();
2406
+ v.use(C), C.color = D, E.setMessage(`
2146
2407
  \u6307\u5B9A\u8D77\u70B9:`);
2147
2408
  let B;
2148
2409
  E.setUserDraw((F, A) => {
2149
2410
  A.setColor(D), A.drawCustomEntity(C), B && A.drawLine(B, F);
2150
2411
  }), E.goWhile(
2151
2412
  (F) => {
2152
- if (F === x.kOk) {
2413
+ if (F === T.kOk) {
2153
2414
  const A = E.value();
2154
2415
  C.points.push(E.value()), B = A, E.setMessage(`
2155
2416
  \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), E.setKeyWords("[\u5706\u5F27(A)/\u5BBD\u5EA6(W)]");
2156
2417
  } else
2157
- F === x.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2418
+ F === T.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2158
2419
  },
2159
2420
  (F) => {
2160
- if (F === x.kCancel) {
2161
- let A = i.GetCurrentMxCAD(), e = new X();
2162
- for (let t = 0; t < C.points.length; t++)
2163
- e.addVertexAt(C.points[t]);
2164
- A.DrawEntity(e);
2421
+ if (F != T.kCancel) {
2422
+ let A = i.GetCurrentMxCAD(), t = new CD();
2423
+ for (let e = 0; e < C.points.length; e++)
2424
+ t.addVertexAt(C.points[e]);
2425
+ A.DrawEntity(t);
2165
2426
  }
2166
2427
  }
2167
2428
  );
2168
2429
  }
2169
2430
  h.on("init", () => {
2170
- h.addCommand("Mx_Pline", VD);
2431
+ h.addCommand("Mx_Pline", $D);
2171
2432
  });
2172
- async function KD() {
2173
- const E = new T();
2433
+ async function JD() {
2434
+ const E = new O();
2174
2435
  E.setMessage(`
2175
2436
  \u6307\u5B9A\u4E00\u70B9:`);
2176
- let D = await E.go(), C = new O();
2437
+ let D = await E.go(), C = new W();
2177
2438
  C.setCenter(D.x, D.y, D.z);
2178
2439
  let B = 5, F = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2179
- E.setUserDraw((A, e) => {
2180
- e.setColor(F), C.radius = D.distanceTo(A);
2181
- let t = C.getEndParam().val, s = C.getDistAtParam(t).val / B, o = 0, u = new THREE.Vector3(), p = new THREE.Vector3();
2182
- for (let d = 0; d < B; d++) {
2440
+ E.setUserDraw((A, t) => {
2441
+ t.setColor(F), C.radius = D.distanceTo(A);
2442
+ let e = C.getEndParam().val, s = C.getDistAtParam(e).val / B, o = 0, u = new THREE.Vector3(), l = new THREE.Vector3();
2443
+ for (let c = 0; c < B; c++) {
2183
2444
  let n = C.getPointAtDist(o).val;
2184
- o += s, d > 0 ? e.drawMcDbLine(n.x, n.y, n.z, u.x, u.y, u.z) : p = new THREE.Vector3(n.x, n.y, n.z), d == B - 1 && e.drawMcDbLine(n.x, n.y, n.z, p.x, p.y, p.z), u = new THREE.Vector3(n.x, n.y, n.z);
2445
+ o += s, c > 0 ? t.drawMcDbLine(n.x, n.y, n.z, u.x, u.y, u.z) : l = new THREE.Vector3(n.x, n.y, n.z), c == B - 1 && t.drawMcDbLine(n.x, n.y, n.z, l.x, l.y, l.z), u = new THREE.Vector3(n.x, n.y, n.z);
2185
2446
  }
2186
2447
  }), E.setMessage(`
2187
2448
  \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
2188
2449
  }
2189
- h.addCommand("Mx_Polygon", KD);
2190
- function hC(E, D, C) {
2191
- const B = E.x, F = D.x, A = C.x, e = E.y, t = D.y, r = C.y, s = B - F, o = e - t, u = B - A, p = e - r, d = (B * B - F * F + (e * e - t * t)) / 2, n = (B * B - A * A + (e * e - r * r)) / 2, c = o * u - s * p, y = -(p * d - o * n) / c, b = -(s * n - u * d) / c;
2192
- return new THREE.Vector3(y, b, 0);
2450
+ h.addCommand("Mx_Polygon", JD);
2451
+ function MC(E, D, C) {
2452
+ const B = E.x, F = D.x, A = C.x, t = E.y, e = D.y, r = C.y, s = B - F, o = t - e, u = B - A, l = t - r, c = (B * B - F * F + (t * t - e * e)) / 2, n = (B * B - A * A + (t * t - r * r)) / 2, m = o * u - s * l, w = -(l * c - o * n) / m, b = -(s * n - u * c) / m;
2453
+ return new THREE.Vector3(w, b, 0);
2193
2454
  }
2194
- function wC(E, D) {
2455
+ function PC(E, D) {
2195
2456
  const C = E.x, B = E.y, F = D.x, A = D.y;
2196
2457
  return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
2197
2458
  }
2198
- function yC(E, D, C) {
2459
+ function TC(E, D, C) {
2199
2460
  let B;
2200
2461
  E < C ? B = C - E : B = C - E + 360;
2201
2462
  let F;
2202
2463
  return E < D ? F = D - E : F = D - E + 360, F > B;
2203
2464
  }
2204
- function eD(E, D, C) {
2205
- const B = E.x, F = D.x, A = E.y, e = D.y;
2206
- let t, r, s;
2207
- return t = (A - e) / C, r = (B - F) / C, r >= 0.99999 && (r = 0.99999), r <= -0.99999 && (r = -0.99999), s = Math.acos(r), s = s / Math.PI * 180, t < -0.05 && (s = 360 - s), {
2208
- sin: t,
2465
+ function sD(E, D, C) {
2466
+ const B = E.x, F = D.x, A = E.y, t = D.y;
2467
+ let e, r, s;
2468
+ return e = (A - t) / C, r = (B - F) / C, r >= 0.99999 && (r = 0.99999), r <= -0.99999 && (r = -0.99999), s = Math.acos(r), s = s / Math.PI * 180, e < -0.05 && (s = 360 - s), {
2469
+ sin: e,
2209
2470
  cos: r,
2210
2471
  angle: s
2211
2472
  };
2212
2473
  }
2213
- class cD extends yD {
2474
+ class yD extends PD {
2214
2475
  constructor() {
2215
2476
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
2216
2477
  }
@@ -2218,24 +2479,24 @@ class cD extends yD {
2218
2479
  return "MxDbCircle";
2219
2480
  }
2220
2481
  create() {
2221
- return new cD();
2482
+ return new yD();
2222
2483
  }
2223
2484
  getArcBulge(D, C, B) {
2224
2485
  const F = D.distanceTo(C);
2225
- let t = 2 * new THREE.Line3(D, C).getCenter(
2486
+ let e = 2 * new THREE.Line3(D, C).getCenter(
2226
2487
  new THREE.Vector3()
2227
2488
  ).distanceTo(B) / F;
2228
- return t > 0.9999 && t < 1.0001 ? t = 1 : t < -0.9999 && t > -1.0001 ? t = -1 : Math.abs(t) < 1e-10 && (t = 0), t;
2489
+ return e > 0.9999 && e < 1.0001 ? e = 1 : e < -0.9999 && e > -1.0001 ? e = -1 : Math.abs(e) < 1e-10 && (e = 0), e;
2229
2490
  }
2230
2491
  getArcMidPoint(D, C, B, F, A) {
2231
- const e = D, t = B * Math.PI / 180;
2492
+ const t = D, e = B * Math.PI / 180;
2232
2493
  let r = F * Math.PI / 180;
2233
2494
  const s = new THREE.Vector3(), o = new THREE.Vector3();
2234
- s.x = e.x + C * Math.cos(t), s.y = e.y + C * Math.sin(t), o.x = e.x + C * Math.cos(r), o.y = e.y + C * Math.sin(r);
2495
+ s.x = t.x + C * Math.cos(e), s.y = t.y + C * Math.sin(e), o.x = t.x + C * Math.cos(r), o.y = t.y + C * Math.sin(r);
2235
2496
  const u = C;
2236
2497
  (A ? B < F : B > F) && (r += Math.PI * 2);
2237
- const p = new THREE.Vector3();
2238
- return p.x = e.x + u * Math.cos((t + r) / 2), p.y = e.y + u * Math.sin((t + r) / 2), [s, p, o, this.center];
2498
+ const l = new THREE.Vector3();
2499
+ return l.x = t.x + u * Math.cos((e + r) / 2), l.y = t.y + u * Math.sin((e + r) / 2), [s, l, o, this.center];
2239
2500
  }
2240
2501
  getGripPoints() {
2241
2502
  return this.getArcMidPoint(
@@ -2254,130 +2515,130 @@ class cD extends yD {
2254
2515
  }
2255
2516
  upDatePoints(D, C, B) {
2256
2517
  D[C].add(B);
2257
- const [F, A, e] = D;
2258
- this.center = hC(F, e, A), this.radius = wC(A, this.center);
2259
- const t = eD(F, this.center, this.radius), r = eD(e, this.center, this.radius), s = eD(A, this.center, this.radius);
2260
- this.clockwise = yC(
2518
+ const [F, A, t] = D;
2519
+ this.center = MC(F, t, A), this.radius = PC(A, this.center);
2520
+ const e = sD(F, this.center, this.radius), r = sD(t, this.center, this.radius), s = sD(A, this.center, this.radius);
2521
+ this.clockwise = TC(
2261
2522
  r.angle,
2262
- t.angle,
2523
+ e.angle,
2263
2524
  s.angle
2264
- ), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2525
+ ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2265
2526
  }
2266
2527
  }
2267
- async function HD() {
2528
+ async function YD() {
2268
2529
  let E = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2269
- const D = new T();
2530
+ const D = new O();
2270
2531
  D.setMessage(`
2271
2532
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
2272
- let C = new cD();
2273
- C.closed = !1, L.use(C);
2533
+ let C = new yD();
2534
+ C.closed = !1, v.use(C);
2274
2535
  let B, F, A;
2275
- const e = k(
2536
+ const t = S(
2276
2537
  D,
2277
2538
  () => {
2278
2539
  B = D.value(), D.setMessage(`
2279
- \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((l, m) => {
2280
- m.setColor(E), m.drawLine(B, l);
2281
- }), c();
2540
+ \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((p, d) => {
2541
+ d.setColor(E), d.drawLine(B, p);
2542
+ }), m();
2282
2543
  },
2283
2544
  () => {
2284
2545
  if (D.isKeyWordPicked("C")) {
2285
- const l = new J();
2286
- l.color = E, C.center = D.value(), l.center = D.value(), D.setMessage(`
2546
+ const p = new Y();
2547
+ p.color = E, C.center = D.value(), p.center = D.value(), D.setMessage(`
2287
2548
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), r();
2288
2549
  } else
2289
2550
  return !0;
2290
2551
  }
2291
2552
  );
2292
- let t;
2293
- const r = k(
2553
+ let e;
2554
+ const r = S(
2294
2555
  D,
2295
2556
  () => {
2296
- t = D.value(), A = new J(), A.closed = !1, L.use(A), A.color = E, A.center = t, C.center = t, D.setMessage(`
2297
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((l, m) => {
2298
- m.drawCustomEntity(A), m.setColor(E), m.drawLine(t, l);
2557
+ e = D.value(), A = new Y(), A.closed = !1, v.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2558
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((p, d) => {
2559
+ d.drawCustomEntity(A), d.setColor(E), d.drawLine(e, p);
2299
2560
  }), u();
2300
2561
  },
2301
2562
  () => {
2302
2563
  }
2303
2564
  );
2304
2565
  let s, o;
2305
- const u = k(
2566
+ const u = S(
2306
2567
  D,
2307
2568
  () => {
2308
2569
  s = D.value(), A.endPoint = s, D.setMessage(
2309
2570
  `
2310
2571
  \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u89D2\u5EA6(A)/\u5F26\u957F(L)/\u4FEE\u6539\u534A\u5F84(R)]:`
2311
- ), D.setKeyWords("A L R"), o = new Z(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((l, m) => {
2312
- A.startPoint = l, o.pt2 = l, m.drawCustomEntity(A), m.drawCustomEntity(o);
2313
- }), d();
2572
+ ), D.setKeyWords("A L R"), o = new Q(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((p, d) => {
2573
+ A.startPoint = p, o.pt2 = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2574
+ }), c();
2314
2575
  },
2315
2576
  () => {
2316
2577
  }
2317
2578
  );
2318
- let p;
2319
- const d = k(
2579
+ let l;
2580
+ const c = S(
2320
2581
  D,
2321
2582
  () => {
2322
- p = D.value(), A.startPoint = p, A.endPoint = s, y.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2583
+ l = D.value(), A.startPoint = l, A.endPoint = s, w.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2323
2584
  },
2324
2585
  () => {
2325
2586
  if (D.isKeyWordPicked("A"))
2326
2587
  return D.setMessage(
2327
2588
  `
2328
2589
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2329
- ), D.setKeyWords("R"), D.setUserDraw((l, m) => {
2330
- A.startPoint = l, m.drawCustomEntity(A), m.drawCustomEntity(o);
2590
+ ), D.setKeyWords("R"), D.setUserDraw((p, d) => {
2591
+ A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2331
2592
  }), !0;
2332
2593
  if (D.isKeyWordPicked("L"))
2333
2594
  return D.setMessage(
2334
2595
  `
2335
2596
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2336
- ), D.setKeyWords("R"), D.setUserDraw((l, m) => {
2337
- A.startPoint = l, m.drawCustomEntity(A), m.drawCustomEntity(o);
2597
+ ), D.setKeyWords("R"), D.setUserDraw((p, d) => {
2598
+ A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2338
2599
  }), !0;
2339
2600
  if (D.isKeyWordPicked("R"))
2340
2601
  D.setMessage(
2341
2602
  `
2342
2603
  \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${A.radius ? "<" + A.radius + ">" : ""}:`
2343
- ), D.setKeyWords(""), D.setUserDraw((l, m) => {
2344
- m.drawLine(l, A.center), A.startPoint = l, m.drawCustomEntity(A);
2604
+ ), D.setKeyWords(""), D.setUserDraw((p, d) => {
2605
+ d.drawLine(p, A.center), A.startPoint = p, d.drawCustomEntity(A);
2345
2606
  }), u();
2346
2607
  else
2347
2608
  return !0;
2348
2609
  }
2349
2610
  );
2350
2611
  let n;
2351
- const c = k(
2612
+ const m = S(
2352
2613
  D,
2353
2614
  () => {
2354
2615
  n = D.value(), D.setMessage(`
2355
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new XD(), F.color = E, F.autoClockwise = !0, F.closed = !1, L.use(F), D.setUserDraw((l, m) => {
2356
- F.point1 = B, F.point3 = n, F.point2 = l, m.drawCustomEntity(F);
2616
+ \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new AC(), F.color = E, F.autoClockwise = !0, F.closed = !1, v.use(F), D.setUserDraw((p, d) => {
2617
+ F.point1 = B, F.point3 = n, F.point2 = p, d.drawCustomEntity(F);
2357
2618
  }), b();
2358
2619
  },
2359
2620
  () => {
2360
2621
  if (D.isKeyWordPicked("C"))
2361
- A = new J(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2362
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((l, m) => {
2363
- A.startPoint = B, m.drawLine(l, A.startPoint);
2622
+ A = new Y(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2623
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2624
+ A.startPoint = B, d.drawLine(p, A.startPoint);
2364
2625
  }), r();
2365
2626
  else if (D.isKeyWordPicked("E"))
2366
- A = new J(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2367
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((l, m) => {
2368
- A.startPoint = B, m.drawLine(l, A.startPoint);
2627
+ A = new Y(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2628
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2629
+ A.startPoint = B, d.drawLine(p, A.startPoint);
2369
2630
  }), r();
2370
2631
  else
2371
2632
  return !0;
2372
2633
  }
2373
2634
  );
2374
- let y = i.GetCurrentMxCAD();
2375
- const b = k(
2635
+ let w = i.GetCurrentMxCAD();
2636
+ const b = S(
2376
2637
  D,
2377
2638
  () => {
2378
2639
  F.point1 = B, F.point2 = D.value(), F.point3 = n;
2379
- let l = new DD();
2380
- l.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), y.DrawEntity(l);
2640
+ let p = new BD();
2641
+ p.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), w.DrawEntity(p);
2381
2642
  },
2382
2643
  () => {
2383
2644
  if (D.isKeyWordPicked("C"))
@@ -2388,70 +2649,70 @@ async function HD() {
2388
2649
  return !0;
2389
2650
  }
2390
2651
  );
2391
- e();
2652
+ t();
2392
2653
  }
2393
2654
  h.on("init", () => {
2394
- h.addCommand("Mx_Arc", HD);
2655
+ h.addCommand("Mx_Arc", YD);
2395
2656
  });
2396
- function ND() {
2397
- const E = new T(), D = new DC();
2398
- D.closed = !1, L.use(D), E.setMessage(`
2657
+ function QD() {
2658
+ const E = new O(), D = new tC();
2659
+ D.closed = !1, v.use(D), E.setMessage(`
2399
2660
  \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2400
2661
  let C, B = new THREE.Vector3();
2401
- k(
2662
+ S(
2402
2663
  E,
2403
2664
  () => {
2404
2665
  C = E.value(), E.setUserDraw((s, o) => {
2405
2666
  const u = new THREE.Line3(C, s);
2406
- u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = AD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2667
+ u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = rD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2407
2668
  }), E.setMessage(`
2408
2669
  \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
2409
2670
  },
2410
2671
  () => {
2411
2672
  }
2412
2673
  )();
2413
- const A = k(
2674
+ const A = S(
2414
2675
  E,
2415
2676
  () => {
2416
2677
  E.setUserDraw((s, o) => {
2417
2678
  D.yRadius = B.distanceTo(s), o.drawLine(B, s), o.drawCustomEntity(D);
2418
2679
  }), E.setMessage(`
2419
- \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), e();
2680
+ \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), t();
2420
2681
  },
2421
2682
  () => {
2422
2683
  }
2423
- ), e = k(
2684
+ ), t = S(
2424
2685
  E,
2425
2686
  () => {
2426
2687
  E.setMessage(`
2427
2688
  \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2428
- D.startAngle = AD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2429
- }), t();
2689
+ D.startAngle = rD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2690
+ }), e();
2430
2691
  },
2431
2692
  () => {
2432
2693
  }
2433
- ), t = k(
2694
+ ), e = S(
2434
2695
  E,
2435
2696
  () => {
2436
2697
  E.setUserDraw((s, o) => {
2437
- D.endAngle = AD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2698
+ D.endAngle = rD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2438
2699
  }), E.setMessage(`
2439
2700
  \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
2440
2701
  },
2441
2702
  () => {
2442
2703
  }
2443
- ), r = k(
2704
+ ), r = S(
2444
2705
  E,
2445
2706
  () => {
2446
- let s = new w(D.xRadius, 0, 0);
2447
- s.rotateBy(D.rotation, w.kZAxis), i.GetCurrentMxCAD().DrawEntity(new uD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2707
+ let s = new y(D.xRadius, 0, 0);
2708
+ s.rotateBy(D.rotation, y.kZAxis), i.GetCurrentMxCAD().DrawEntity(new FD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2448
2709
  },
2449
2710
  () => {
2450
2711
  }
2451
2712
  );
2452
2713
  }
2453
- function gC() {
2454
- const E = new T(), D = new CC(), C = new BC();
2714
+ function kC() {
2715
+ const E = new O(), D = new eC(), C = new iC();
2455
2716
  let B = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2456
2717
  C.setColor(B), E.setMessage(`
2457
2718
  \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
@@ -2459,94 +2720,256 @@ function gC() {
2459
2720
  C.point2 = F, D.drawCustomEntity(C);
2460
2721
  }), E.setUserDraw(D), E.setMessage(`
2461
2722
  \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2462
- i.GetCurrentMxCAD().DrawEntity(new uD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2723
+ i.GetCurrentMxCAD().DrawEntity(new FD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2463
2724
  });
2464
2725
  });
2465
2726
  }
2466
2727
  h.on("init", () => {
2467
- h.addCommand("Mx_EllipseArc", ND), h.addCommand("Mx_Ellipse", gC);
2728
+ h.addCommand("Mx_EllipseArc", QD), h.addCommand("Mx_Ellipse", kC);
2468
2729
  });
2469
- async function qD() {
2470
- let E = $.getCurrentSelect();
2730
+ async function XD() {
2731
+ let E = U.getCurrentSelect();
2471
2732
  if (E.length > 0) {
2472
2733
  E.forEach((C) => {
2473
2734
  C.erase();
2474
2735
  });
2475
2736
  return;
2476
2737
  }
2477
- let D = new BD();
2738
+ let D = new Z();
2478
2739
  !await D.userSelect(`
2479
2740
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`) || D.forEach((C) => {
2480
2741
  C.erase();
2481
2742
  });
2482
2743
  }
2483
- async function bC() {
2744
+ function eD(E) {
2745
+ let D, C;
2746
+ if (E.forEach((B) => {
2747
+ let F = B.getMcDbEntity();
2748
+ if (F == null)
2749
+ return;
2750
+ let A = F.GetBoundingBox();
2751
+ !A.ret || (!D || !C ? (D = new THREE.Vector3(A.minPt.x, A.minPt.y, 0), C = new THREE.Vector3(A.maxPt.x, A.maxPt.y, 0)) : (D.x > A.minPt.x && (D.x = A.minPt.x), D.y > A.minPt.y && (D.y = A.minPt.y), C.x < A.maxPt.x && (C.x = A.maxPt.x), C.y < A.maxPt.y && (C.y = A.maxPt.y)));
2752
+ }), D && C)
2753
+ return { minPt: D, maxPt: C };
2754
+ }
2755
+ async function RC() {
2484
2756
  let E;
2485
- for (; E = $.getCurrentSelect(), !(E.length > 0); ) {
2486
- let F = new BD();
2487
- if (!await F.userSelect(`
2488
- \u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = F.getIds(), E.length == 0))
2757
+ for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2758
+ let t = new Z();
2759
+ if (!await t.userSelect(`
2760
+ \u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = t.getIds(), E.length == 0))
2489
2761
  return;
2490
2762
  break;
2491
2763
  }
2492
- let D = new T();
2493
- D.setMessage("\u6307\u5B9A\u57FA\u70B9");
2494
- let C = await D.go();
2495
- if (!C)
2764
+ let D, C;
2765
+ if (E.length >= 10) {
2766
+ let t = eD(E);
2767
+ t && (D = t.minPt, C = t.maxPt);
2768
+ }
2769
+ let B = new z();
2770
+ B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2771
+ let F = await B.go();
2772
+ if (!F)
2496
2773
  return;
2497
- D.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), D.setBasePt(C), D.setUseBasePt(!0), D.setUserDraw((F, A) => {
2498
- for (let e = 0; e < E.length && e < 10; e++) {
2499
- let t = E[e].clone();
2500
- !t || (t.Move(new a(C), new a(F)), A.drawMcDbEntity(t));
2774
+ B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2775
+ if (D && C) {
2776
+ let r = t.x - F.x, s = t.y - F.y, o = new THREE.Vector3(D.x + r, C.y + s, 0), u = new THREE.Vector3(C.x + r, D.y + s, 0), l = new THREE.Vector3(o.x, u.y, 0), c = new THREE.Vector3(u.x, o.y, 0);
2777
+ e.drawLine(c, o), e.drawLine(o, l), e.drawLine(l, u), e.drawLine(u, c);
2778
+ }
2779
+ for (let r = 0; r < E.length && r < 10; r++) {
2780
+ let s = E[r].clone();
2781
+ !s || (s.Move(F, t), e.drawMcDbEntity(s));
2501
2782
  }
2502
2783
  });
2503
- let B = await D.go();
2504
- if (!!B)
2505
- for (let F = 0; F < E.length; F++) {
2506
- let A = E[F].clone();
2507
- !A || (A.Move(new a(C), new a(B)), i.GetCurrentMxCAD().DrawEntity(A));
2784
+ let A = await B.go();
2785
+ if (!!A)
2786
+ for (let t = 0; t < E.length; t++) {
2787
+ let e = E[t].clone();
2788
+ !e || (e.Move(F, A), i.GetCurrentMxCAD().DrawEntity(e));
2508
2789
  }
2509
2790
  }
2510
- async function xC() {
2791
+ async function OC() {
2511
2792
  let E;
2512
- for (; E = $.getCurrentSelect(), !(E.length > 0); ) {
2513
- let F = new BD();
2514
- if (!await F.userSelect(`
2515
- \u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = F.getIds(), E.length == 0))
2793
+ for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2794
+ let t = new Z();
2795
+ if (!await t.userSelect(`
2796
+ \u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = t.getIds(), E.length == 0))
2516
2797
  return;
2517
2798
  break;
2518
2799
  }
2519
- let D = new T();
2520
- D.setMessage("\u6307\u5B9A\u57FA\u70B9");
2521
- let C = await D.go();
2522
- if (!C)
2800
+ let D, C;
2801
+ if (E.length >= 10) {
2802
+ let t = eD(E);
2803
+ t && (D = t.minPt, C = t.maxPt);
2804
+ }
2805
+ let B = new z();
2806
+ B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2807
+ let F = await B.go();
2808
+ if (!F)
2523
2809
  return;
2524
- D.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), D.setBasePt(C), D.setUseBasePt(!0), D.setUserDraw((F, A) => {
2525
- for (let e = 0; e < E.length && e < 10; e++) {
2526
- let t = E[e].clone();
2527
- !t || (t.Move(new a(C), new a(F)), A.drawMcDbEntity(t));
2810
+ B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2811
+ if (D && C) {
2812
+ let r = t.x - F.x, s = t.y - F.y, o = new THREE.Vector3(D.x + r, C.y + s, 0), u = new THREE.Vector3(C.x + r, D.y + s, 0), l = new THREE.Vector3(o.x, u.y, 0), c = new THREE.Vector3(u.x, o.y, 0);
2813
+ e.drawLine(c, o), e.drawLine(o, l), e.drawLine(l, u), e.drawLine(u, c);
2814
+ }
2815
+ for (let r = 0; r < E.length && r < 10; r++) {
2816
+ let s = E[r].clone();
2817
+ !s || (s.Move(F, t), e.drawMcDbEntity(s));
2528
2818
  }
2529
2819
  });
2530
- let B = await D.go();
2531
- if (!!B)
2532
- for (let F = 0; F < E.length; F++) {
2533
- let A = E[F].getMcDbObject();
2534
- !A || A.Move(new a(C), new a(B));
2820
+ let A = await B.go();
2821
+ if (!!A)
2822
+ for (let t = 0; t < E.length; t++) {
2823
+ let e = E[t].getMcDbObject();
2824
+ !e || e.Move(F, A);
2825
+ }
2826
+ }
2827
+ async function SC() {
2828
+ let E;
2829
+ for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2830
+ let l = new Z();
2831
+ if (!await l.userSelect(`
2832
+ \u9009\u62E9\u65CB\u8F6C\u5BF9\u8C61`) || (E = l.getIds(), E.length == 0))
2833
+ return;
2834
+ break;
2835
+ }
2836
+ let D, C, B = eD(E);
2837
+ B && (D = B.minPt, C = B.maxPt);
2838
+ let F = new z();
2839
+ F.setMessage("\u6307\u5B9A\u57FA\u70B9");
2840
+ let A = await F.go();
2841
+ if (A == null)
2842
+ return;
2843
+ F.setMessage("\u6307\u5B9A\u65CB\u8F6C\u89D2\u5EA6"), F.setBasePt(A), F.setUseBasePt(!0), F.setUserDraw((l, c) => {
2844
+ let n = l, m = A, b = n.sub(m).angleTo2(y.kXAxis, y.kNegateZAxis), p = new I();
2845
+ if (p.setToRotation(b, y.kZAxis, m), D && C) {
2846
+ let d = new a(D.x, C.y, 0), x = new a(C.x, D.y, 0), f = new a(d.x, x.y, 0), g = new a(x.x, d.y, 0);
2847
+ d.transformBy(p), x.transformBy(p), f.transformBy(p), g.transformBy(p), c.drawLine(g.toVector3(), d.toVector3()), c.drawLine(d.toVector3(), f.toVector3()), c.drawLine(f.toVector3(), x.toVector3()), c.drawLine(x.toVector3(), g.toVector3());
2848
+ }
2849
+ m = i.GetCurrentMxCAD().docCoord2Cad(m), p.setToRotation(b, y.kZAxis, m);
2850
+ for (let d = 0; d < E.length && d < 10; d++) {
2851
+ let x = E[d].clone();
2852
+ !x || (x.TransformBy(p), c.drawMcDbEntity(x));
2853
+ }
2854
+ });
2855
+ let t = await F.go();
2856
+ if (!t)
2857
+ return;
2858
+ let e = t, r = A, o = e.sub(r).angleTo2(y.kXAxis, y.kNegateZAxis), u = new I();
2859
+ r = i.GetCurrentMxCAD().docCoord2Cad(r), u.setToRotation(o, y.kZAxis, r);
2860
+ for (let l = 0; l < E.length; l++) {
2861
+ let c = E[l].getMcDbObject();
2862
+ !c || c.TransformBy(u);
2863
+ }
2864
+ }
2865
+ async function LC() {
2866
+ let E;
2867
+ for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2868
+ let m = new Z();
2869
+ if (!await m.userSelect(`
2870
+ \u9009\u62E9\u7F29\u653E\u5BF9\u8C61`) || (E = m.getIds(), E.length == 0))
2871
+ return;
2872
+ break;
2873
+ }
2874
+ let D, C, B = eD(E);
2875
+ if (!B)
2876
+ return;
2877
+ D = B.minPt, C = B.maxPt;
2878
+ let F = C.x - D.x, A = C.y - D.y, t = (F + A) / 3;
2879
+ t < 1e-5 && (t = 1);
2880
+ let e = new z();
2881
+ e.setMessage("\u6307\u5B9A\u57FA\u70B9");
2882
+ let r = await e.go();
2883
+ if (r == null)
2884
+ return;
2885
+ e.setMessage("\u6307\u5B9A\u6BD4\u4F8B\u56E0\u5B50"), e.setBasePt(r), e.setUseBasePt(!0), e.setUserDraw((m, w) => {
2886
+ let b = new a(m), p = new a(r), d = b.distanceTo(p);
2887
+ if (d < 1e-5)
2888
+ return;
2889
+ let x = d / t;
2890
+ x > 1e5 && (x = 1e5);
2891
+ let f = new I();
2892
+ if (f.setToScaling(x, p), D && C) {
2893
+ let g = new a(D.x, C.y, 0), M = new a(C.x, D.y, 0), L = new a(g.x, M.y, 0), $ = new a(M.x, g.y, 0);
2894
+ g.transformBy(f), M.transformBy(f), L.transformBy(f), $.transformBy(f), w.drawLine($.toVector3(), g.toVector3()), w.drawLine(g.toVector3(), L.toVector3()), w.drawLine(L.toVector3(), M.toVector3()), w.drawLine(M.toVector3(), $.toVector3());
2895
+ }
2896
+ p = i.GetCurrentMxCAD().docCoord2Cad(p), f.setToScaling(x, p);
2897
+ for (let g = 0; g < E.length && g < 10; g++) {
2898
+ let M = E[g].clone();
2899
+ !M || (M.TransformBy(f), w.drawMcDbEntity(M));
2535
2900
  }
2901
+ });
2902
+ let s = await e.go();
2903
+ if (!s)
2904
+ return;
2905
+ let o = s, u = r, l = o.distanceTo(u);
2906
+ if (l < 1e-5)
2907
+ return;
2908
+ let c = l / t;
2909
+ c > 1e5 && (c = 1e5);
2910
+ let n = new I();
2911
+ u = i.GetCurrentMxCAD().docCoord2Cad(u), n.setToScaling(c, u);
2912
+ for (let m = 0; m < E.length; m++) {
2913
+ let w = E[m].getMcDbObject();
2914
+ !w || w.TransformBy(n);
2915
+ }
2916
+ }
2917
+ async function vC() {
2918
+ let E = new z();
2919
+ E.setDisableOsnap(!0), E.setMessage("\u70B9\u53D6\u7F29\u653E\u533A\u57DF"), E.setDynamicInputType(xD.kDynTip);
2920
+ let D = await E.go();
2921
+ if (D == null)
2922
+ return;
2923
+ E.setUserDraw((B, F) => {
2924
+ F.drawRect(D.toVector3(), B.toVector3());
2925
+ });
2926
+ let C = await E.go();
2927
+ C != null && h.getCurrentDraw().zoomW(D.toVector3(), C.toVector3());
2928
+ }
2929
+ async function IC() {
2930
+ let E = i.GetCurrentDatabase().CurrentSpace().getBoundingBox();
2931
+ !E.ret || h.getCurrentDraw().zoomW(E.minPt.toVector3(), E.maxPt.toVector3());
2932
+ }
2933
+ async function jC() {
2934
+ const E = new zD();
2935
+ E.setMessage(`
2936
+ \u6307\u5B9A\u504F\u79FB\u8DDD\u79BB\u6216:`);
2937
+ let D = await E.go();
2938
+ if (D == null)
2939
+ return;
2940
+ let C = new AD();
2941
+ C.AddMcDbEntityTypes("LINE,CIRCLE,LWPOLYLINE,ARC");
2942
+ let B = await U.selectEnt(`
2943
+ \u9009\u62E9\u504F\u79FB\u5BF9\u8C61`, C, !1);
2944
+ if (B.length == 0)
2945
+ return;
2946
+ const F = new z();
2947
+ F.setMessage(`
2948
+ \u6307\u5B9A\u8981\u504F\u79FB\u90A3\u4E00\u4FA7\u4E0A\u7684\u70B9:`), F.setDisableOsnap(!0);
2949
+ let A = await F.go();
2950
+ if (A == null)
2951
+ return;
2952
+ let t = B[0].getMcDbCurve();
2953
+ if (!t)
2954
+ return;
2955
+ let e = t.offsetCurves(D, A);
2956
+ e.empty() || e.forEach((r) => {
2957
+ i.GetCurrentMxCAD().DrawEntity(r);
2958
+ });
2536
2959
  }
2537
2960
  h.on("init", () => {
2538
- h.addCommand("Mx_Erase", qD), h.addCommand("Mx_Copy", bC), h.addCommand("Mx_Move", xC);
2961
+ h.addCommand("Mx_Erase", XD), h.addCommand("Mx_Copy", RC), h.addCommand("Mx_Move", OC), h.addCommand("Mx_Rotate", SC), h.addCommand("Mx_Scale", LC), h.addCommand("Mx_WindowZoom", vC), h.addCommand("Mx_ZoomE", IC), h.addCommand("Mx_Offset", jC);
2539
2962
  });
2540
- const fC = async (E, D, C) => {
2963
+ const GC = async (E, D, C) => {
2541
2964
  const { locateFile: B } = C, F = B(E + ".js");
2542
- return await ID(F), await globalThis[D](C);
2965
+ return await ND(F), await globalThis[D](C);
2543
2966
  };
2544
- function MC(E) {
2967
+ function WC(E) {
2545
2968
  return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
2546
2969
  }
2547
- function TC(E, D) {
2970
+ function VC(E, D) {
2548
2971
  const C = () => requestAnimationFrame(D);
2549
- let B = MC(C);
2972
+ let B = WC(C);
2550
2973
  if (B) {
2551
2974
  B.observe(E);
2552
2975
  return;
@@ -2556,7 +2979,7 @@ function TC(E, D) {
2556
2979
  return;
2557
2980
  }
2558
2981
  }
2559
- function kC(E, D) {
2982
+ function UC(E, D) {
2560
2983
  let C = null;
2561
2984
  return function(...B) {
2562
2985
  C || (C = setTimeout(() => {
@@ -2564,21 +2987,21 @@ function kC(E, D) {
2564
2987
  }, D));
2565
2988
  };
2566
2989
  }
2567
- class H {
2990
+ class q {
2568
2991
  static onloadWasmMxDraw3dModel;
2569
2992
  canvas;
2570
2993
  constructor(D) {
2571
2994
  const C = () => {
2572
- const u = this.canvas.parentElement?.clientWidth || window.innerWidth, p = this.canvas.parentElement?.clientHeight || window.innerHeight;
2573
- let d = Math.min(u, window.screen.availWidth), n = Math.min(p, window.screen.availHeight);
2574
- d = Math.max(A, d), n = Math.max(e, n), this.canvas.style.width = d + 1 + "px", this.canvas.style.height = n + "px";
2575
- const c = window.devicePixelRatio || 1;
2576
- this.canvas.width = d * c, this.canvas.height = n * c;
2577
- }, B = kC(C, 50), {
2995
+ const u = this.canvas.parentElement?.clientWidth || window.innerWidth, l = this.canvas.parentElement?.clientHeight || window.innerHeight;
2996
+ let c = Math.min(u, window.screen.availWidth), n = Math.min(l, window.screen.availHeight);
2997
+ c = Math.max(A, c), n = Math.max(t, n), this.canvas.style.width = c + 1 + "px", this.canvas.style.height = n + "px";
2998
+ const m = window.devicePixelRatio || 1;
2999
+ this.canvas.width = c * m, this.canvas.height = n * m;
3000
+ }, B = UC(C, 50), {
2578
3001
  canvas: F,
2579
3002
  minWidth: A = 300,
2580
- minHeight: e = 300,
2581
- updateCanvasSize: t = B,
3003
+ minHeight: t = 300,
3004
+ updateCanvasSize: e = B,
2582
3005
  ...r
2583
3006
  } = D;
2584
3007
  let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
@@ -2587,29 +3010,29 @@ class H {
2587
3010
  this[u] = r[u];
2588
3011
  if (this.canvas instanceof HTMLCanvasElement) {
2589
3012
  const u = this.canvas.parentElement || document.body;
2590
- TC(u, t);
3013
+ VC(u, e);
2591
3014
  } else
2592
3015
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
2593
- window.onresize = C, C(), fC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2594
- H.onloadWasmMxDraw3dModel && H.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (u) => {
2595
- const p = new FileReader();
2596
- p.onload = () => {
2597
- if (!!p.result && p.result instanceof ArrayBuffer) {
2598
- var d = new Uint8Array(p.result);
2599
- const n = this._malloc(d.length);
2600
- this.HEAPU8.set(d, n), this.openFromMemory(u.name, n, d.length, !0), this.displayGround(!0), this.canvas.focus();
3016
+ window.onresize = C, C(), GC("mxdraw3d_min", "mxdraw3d", this).then(() => {
3017
+ q.onloadWasmMxDraw3dModel && q.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (u) => {
3018
+ const l = new FileReader();
3019
+ l.onload = () => {
3020
+ if (!!l.result && l.result instanceof ArrayBuffer) {
3021
+ var c = new Uint8Array(l.result);
3022
+ const n = this._malloc(c.length);
3023
+ this.HEAPU8.set(c, n), this.openFromMemory(u.name, n, c.length, !0), this.displayGround(!0), this.canvas.focus();
2601
3024
  }
2602
- }, p.readAsArrayBuffer(u);
3025
+ }, l.readAsArrayBuffer(u);
2603
3026
  };
2604
3027
  });
2605
3028
  }
2606
3029
  }
2607
- function PC(E, D) {
3030
+ function zC(E, D) {
2608
3031
  return new Promise(async (C, B) => {
2609
3032
  try {
2610
- E.locateFile || (E.locateFile = oC);
2611
- const F = new H(E);
2612
- H.onloadWasmMxDraw3dModel = () => {
3033
+ E.locateFile || (E.locateFile = pC);
3034
+ const F = new q(E);
3035
+ q.onloadWasmMxDraw3dModel = () => {
2613
3036
  C(F), D && D(F);
2614
3037
  };
2615
3038
  } catch (F) {
@@ -2617,137 +3040,145 @@ function PC(E, D) {
2617
3040
  }
2618
3041
  });
2619
3042
  }
2620
- const RC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3043
+ const HC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2621
3044
  __proto__: null,
2622
- b64Encode: gD,
2623
- b64Decode: bD,
2624
- saveAsFileDialog: xD,
2625
- downloadFile: fD,
2626
- downloadFileFromUrl: MD,
2627
- MxTools: _,
3045
+ b64Encode: TD,
3046
+ b64Decode: kD,
3047
+ saveAsFileDialog: RD,
3048
+ downloadFile: OD,
3049
+ downloadFileFromUrl: SD,
3050
+ MxTools: J,
2628
3051
  McGePoint3d: a,
2629
- McGeVector3d: w,
2630
- McGeMatrix3d: V,
2631
- McGeLongArray: FC,
2632
- McGeStringArray: TD,
2633
- McGePoint3dArray: AC,
2634
- getFilterImp: z,
2635
- McDrawResbuf: q,
2636
- MxCADUtilityClass: OD,
2637
- MxCADUtility: $,
2638
- MxCADSelectionSet: BD,
2639
- McRxObject: G,
2640
- McObjectIdType: f,
2641
- McObjectId: M,
2642
- McDbObject: v,
3052
+ McGeVector3d: y,
3053
+ McGeMatrix3d: I,
3054
+ McGeLongArray: sC,
3055
+ McGeStringArray: LD,
3056
+ McGePoint3dArray: nC,
3057
+ getFilterImp: N,
3058
+ MxCADResbuf: AD,
3059
+ MxCADUtilityClass: UD,
3060
+ MxCADUtility: U,
3061
+ MxCADSelectionSet: Z,
3062
+ MxCADUiPrPoint: z,
3063
+ MxCADUiPrDist: zD,
3064
+ McRxObject: K,
3065
+ McObjectIdType: k,
3066
+ McObjectId: R,
3067
+ McDbObject: j,
3068
+ McDbObjectArray: nD,
2643
3069
  get McDb() {
2644
- return tD;
3070
+ return oD;
2645
3071
  },
2646
- McCmColor: I,
2647
- McDbLayerTableRecord: iC,
2648
- McDbLayerTable: kD,
2649
- McDbLinetypeTable: PD,
2650
- McDbTextStyleTable: SD,
2651
- McDbDatabase: oD,
2652
- McDbBlockTableRecordIterator: RD,
2653
- McDbBlockTableRecord: CD,
2654
- McDbBlockTableIterator: LD,
2655
- McDbBlockTable: vD,
2656
- McDbEntity: j,
2657
- McDbCurve: N,
2658
- McDbLine: Y,
2659
- McDbText: iD,
2660
- McDbMText: Q,
2661
- McDbCircle: O,
2662
- McDbPolyline: X,
2663
- McDbBlockReference: rD,
2664
- McDbDimension: aD,
2665
- McDbAlignedDimension: sD,
2666
- McDbRotatedDimension: nD,
2667
- McDbArc: DD,
2668
- McDbEllipse: uD,
2669
- McObject: K,
2670
- McAppType: jD,
2671
- MxCppType: GD,
3072
+ McCmColor: H,
3073
+ McDbLayerTableRecord: uC,
3074
+ McDbLayerTable: vD,
3075
+ McDbLinetypeTable: ID,
3076
+ McDbTextStyleTable: jD,
3077
+ McDbDatabase: mD,
3078
+ McDbBlockTableRecordIterator: GD,
3079
+ McDbBlockTableRecord: ED,
3080
+ McDbBlockTableIterator: WD,
3081
+ McDbBlockTable: VD,
3082
+ McDbEntity: G,
3083
+ McDbCurve: V,
3084
+ McDbLine: X,
3085
+ McDbText: aD,
3086
+ McDbMText: DD,
3087
+ McDbCircle: W,
3088
+ McDbPolyline: CD,
3089
+ McDbBlockReference: uD,
3090
+ McDbDimension: pD,
3091
+ McDbAlignedDimension: lD,
3092
+ McDbRotatedDimension: cD,
3093
+ McDbArc: BD,
3094
+ McDbEllipse: FD,
3095
+ McDbPoint: dD,
3096
+ McObject: _,
3097
+ McAppType: KD,
3098
+ MxCppType: HD,
2672
3099
  get MxCpp() {
2673
3100
  return i;
2674
3101
  },
2675
- loadMxCADassembly: WD,
2676
- createMxCad: cC,
2677
- drawText: mC,
2678
- drawCircle: UD,
2679
- drawLine: zD,
2680
- drawMText: dC,
2681
- drawPolyLine: VD,
2682
- drawPolygon: KD,
2683
- drawArc: HD,
2684
- drawEllipticalArc: ND,
2685
- mxErase: qD,
2686
- MxDraw3d: H,
2687
- loadMxCADassembly3d: PC
3102
+ loadMxCADassembly: _D,
3103
+ createMxCad: wC,
3104
+ drawText: gC,
3105
+ drawCircle: qD,
3106
+ drawLine: ZD,
3107
+ drawMText: xC,
3108
+ drawPolyLine: $D,
3109
+ drawPolygon: JD,
3110
+ drawArc: YD,
3111
+ drawEllipticalArc: QD,
3112
+ Mx_Erase: XD,
3113
+ MxDraw3d: q,
3114
+ loadMxCADassembly3d: zC
2688
3115
  }, Symbol.toStringTag, { value: "Module" }));
2689
3116
  export {
2690
- jD as McAppType,
2691
- I as McCmColor,
2692
- tD as McDb,
2693
- sD as McDbAlignedDimension,
2694
- DD as McDbArc,
2695
- rD as McDbBlockReference,
2696
- vD as McDbBlockTable,
2697
- LD as McDbBlockTableIterator,
2698
- CD as McDbBlockTableRecord,
2699
- RD as McDbBlockTableRecordIterator,
2700
- O as McDbCircle,
2701
- N as McDbCurve,
2702
- oD as McDbDatabase,
2703
- aD as McDbDimension,
2704
- uD as McDbEllipse,
2705
- j as McDbEntity,
2706
- kD as McDbLayerTable,
2707
- iC as McDbLayerTableRecord,
2708
- Y as McDbLine,
2709
- PD as McDbLinetypeTable,
2710
- Q as McDbMText,
2711
- v as McDbObject,
2712
- X as McDbPolyline,
2713
- nD as McDbRotatedDimension,
2714
- iD as McDbText,
2715
- SD as McDbTextStyleTable,
2716
- q as McDrawResbuf,
2717
- FC as McGeLongArray,
2718
- V as McGeMatrix3d,
3117
+ KD as McAppType,
3118
+ H as McCmColor,
3119
+ oD as McDb,
3120
+ lD as McDbAlignedDimension,
3121
+ BD as McDbArc,
3122
+ uD as McDbBlockReference,
3123
+ VD as McDbBlockTable,
3124
+ WD as McDbBlockTableIterator,
3125
+ ED as McDbBlockTableRecord,
3126
+ GD as McDbBlockTableRecordIterator,
3127
+ W as McDbCircle,
3128
+ V as McDbCurve,
3129
+ mD as McDbDatabase,
3130
+ pD as McDbDimension,
3131
+ FD as McDbEllipse,
3132
+ G as McDbEntity,
3133
+ vD as McDbLayerTable,
3134
+ uC as McDbLayerTableRecord,
3135
+ X as McDbLine,
3136
+ ID as McDbLinetypeTable,
3137
+ DD as McDbMText,
3138
+ j as McDbObject,
3139
+ nD as McDbObjectArray,
3140
+ dD as McDbPoint,
3141
+ CD as McDbPolyline,
3142
+ cD as McDbRotatedDimension,
3143
+ aD as McDbText,
3144
+ jD as McDbTextStyleTable,
3145
+ sC as McGeLongArray,
3146
+ I as McGeMatrix3d,
2719
3147
  a as McGePoint3d,
2720
- AC as McGePoint3dArray,
2721
- TD as McGeStringArray,
2722
- w as McGeVector3d,
2723
- K as McObject,
2724
- M as McObjectId,
2725
- f as McObjectIdType,
2726
- G as McRxObject,
2727
- BD as MxCADSelectionSet,
2728
- $ as MxCADUtility,
2729
- OD as MxCADUtilityClass,
3148
+ nC as McGePoint3dArray,
3149
+ LD as McGeStringArray,
3150
+ y as McGeVector3d,
3151
+ _ as McObject,
3152
+ R as McObjectId,
3153
+ k as McObjectIdType,
3154
+ K as McRxObject,
3155
+ AD as MxCADResbuf,
3156
+ Z as MxCADSelectionSet,
3157
+ zD as MxCADUiPrDist,
3158
+ z as MxCADUiPrPoint,
3159
+ U as MxCADUtility,
3160
+ UD as MxCADUtilityClass,
2730
3161
  i as MxCpp,
2731
- GD as MxCppType,
2732
- H as MxDraw3d,
2733
- _ as MxTools,
2734
- bD as b64Decode,
2735
- gD as b64Encode,
2736
- cC as createMxCad,
2737
- RC as default,
2738
- fD as downloadFile,
2739
- MD as downloadFileFromUrl,
2740
- HD as drawArc,
2741
- UD as drawCircle,
2742
- ND as drawEllipticalArc,
2743
- zD as drawLine,
2744
- dC as drawMText,
2745
- VD as drawPolyLine,
2746
- KD as drawPolygon,
2747
- mC as drawText,
2748
- z as getFilterImp,
2749
- WD as loadMxCADassembly,
2750
- PC as loadMxCADassembly3d,
2751
- qD as mxErase,
2752
- xD as saveAsFileDialog
3162
+ HD as MxCppType,
3163
+ q as MxDraw3d,
3164
+ J as MxTools,
3165
+ XD as Mx_Erase,
3166
+ kD as b64Decode,
3167
+ TD as b64Encode,
3168
+ wC as createMxCad,
3169
+ HC as default,
3170
+ OD as downloadFile,
3171
+ SD as downloadFileFromUrl,
3172
+ YD as drawArc,
3173
+ qD as drawCircle,
3174
+ QD as drawEllipticalArc,
3175
+ ZD as drawLine,
3176
+ xC as drawMText,
3177
+ $D as drawPolyLine,
3178
+ JD as drawPolygon,
3179
+ gC as drawText,
3180
+ N as getFilterImp,
3181
+ _D as loadMxCADassembly,
3182
+ zC as loadMxCADassembly3d,
3183
+ RD as saveAsFileDialog
2753
3184
  };