mxcad 1.0.80 → 1.0.81

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 S, MxCursorType as xD, MrxDbgUtils as fD, DynamicInputType as MD, DetailedResult as rD, MrxDbgUiPrDist as EC, MrxDbgUiPrAngle as FC, MrxDbgUiPrInt as AC, MrxDbgUiPrKeyWord as tC, MrxDbgUiPrString as eC, store as PD, loadCoreCode as iC, MxPaintBrush as v, MrxDbgUiPrBaseReturn as T, MxDbCircleShape as TD, MxDbLine as X, MxDbPolyline as rC, MxDbCircleArc as Q, Mx3PointArc as sC, MxDbEllipseShape as nC, McEdGetPointWorldDrawObject as oC, MxDbEllipse as aC } from "mxdraw";
1
+ import { MxFun as h, MrxDbgUiPrPoint as O, MxCursorType as MD, MrxDbgUtils as oD, DynamicInputType as dD, DetailedResult as Z, MrxDbgUiPrDist as AC, MrxDbgUiPrAngle as eC, MrxDbgUiPrInt as tC, MrxDbgUiPrKeyWord as iC, MrxDbgUiPrString as rC, store as PD, loadCoreCode as sC, MxPaintBrush as S, MrxDbgUiPrBaseReturn as T, MxDbCircleShape as TD, MxDbLine as DD, MxDbPolyline as nC, MxDbCircleArc as X, Mx3PointArc as oC, MxDbEllipseShape as aC, McEdGetPointWorldDrawObject as uC, MxDbEllipse as lC } from "mxdraw";
2
2
  function kD(E) {
3
3
  return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
5
  function RD(E) {
6
6
  return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function SD({
8
+ async function OD({
9
9
  blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
@@ -45,24 +45,24 @@ async function SD({
45
45
  console.error(B.name, B.message);
46
46
  }
47
47
  }
48
- function OD(E, D) {
48
+ function LD(E, D) {
49
49
  const C = document.createElement("a");
50
50
  C.href = window.URL.createObjectURL(E), C.download = D, C.click();
51
51
  }
52
- function LD(E, D) {
52
+ function vD(E, D) {
53
53
  fetch(E).then((C) => C.blob()).then((C) => {
54
54
  const B = document.createElement("a");
55
55
  B.href = window.URL.createObjectURL(C), B.download = D, B.click();
56
56
  });
57
57
  }
58
- const Y = {
58
+ const Q = {
59
59
  b64Encode: kD,
60
60
  b64Decode: RD,
61
- saveAsFileDialog: SD,
62
- downloadFile: OD,
63
- downloadFileFromUrl: LD
61
+ saveAsFileDialog: OD,
62
+ downloadFile: LD,
63
+ downloadFileFromUrl: vD
64
64
  };
65
- class uC {
65
+ class cC {
66
66
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
67
67
  encodeToGb2312(D) {
68
68
  for (var C = "", B = 0; B < D.length; B++) {
@@ -70,8 +70,8 @@ class uC {
70
70
  if (F == " ")
71
71
  C += "+";
72
72
  else if (A >= 19968 && A <= 40869) {
73
- let t = A - 19968;
74
- C += "%" + this.z.substr(t * 4, 2) + "%" + this.z.substr(t * 4 + 2, 2);
73
+ let e = A - 19968;
74
+ C += "%" + this.z.substr(e * 4, 2) + "%" + this.z.substr(e * 4 + 2, 2);
75
75
  } else
76
76
  C += "%" + D.charCodeAt(B).toString(16);
77
77
  }
@@ -89,11 +89,11 @@ class uC {
89
89
  var A = D.charAt(B);
90
90
  if (isNaN(parseInt(A)))
91
91
  try {
92
- var t = D.substr(B, 2) + D.substr(B + 3, 2);
92
+ var e = D.substr(B, 2) + D.substr(B + 3, 2);
93
93
  B = B + 4;
94
- for (var e = -1; (e = this.z.indexOf(t, e + 1)) != -1; )
95
- if (e % 4 == 0) {
96
- C += String.fromCharCode(e / 4 + 19968);
94
+ for (var t = -1; (t = this.z.indexOf(e, t + 1)) != -1; )
95
+ if (t % 4 == 0) {
96
+ C += String.fromCharCode(t / 4 + 19968);
97
97
  break;
98
98
  }
99
99
  } catch {
@@ -111,12 +111,12 @@ class uC {
111
111
  return C;
112
112
  }
113
113
  }
114
- let P = new uC();
115
- class a {
114
+ let P = new cC();
115
+ class o {
116
116
  static kOrigin;
117
117
  imp;
118
118
  constructor(D, C, B) {
119
- 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);
119
+ this.imp = new r.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);
120
120
  }
121
121
  toVector3() {
122
122
  return new THREE.Vector3(this.imp.x, this.imp.y, this.imp.z);
@@ -143,7 +143,7 @@ class a {
143
143
  return this.imp.isEqualTo(D.imp);
144
144
  }
145
145
  clone() {
146
- return new a(this.imp);
146
+ return new o(this.imp);
147
147
  }
148
148
  get x() {
149
149
  return this.imp.x;
@@ -171,7 +171,7 @@ class y {
171
171
  static kNegateZAxis;
172
172
  imp;
173
173
  constructor(D, C, B) {
174
- 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
+ this.imp = new r.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);
175
175
  }
176
176
  copy(D) {
177
177
  return this.imp.x = D.imp.x, this.imp.y = D.imp.y, this.imp.z = D.imp.z, this;
@@ -235,17 +235,17 @@ class y {
235
235
  this.imp.z = D;
236
236
  }
237
237
  }
238
- class j {
238
+ class I {
239
239
  static kIdentity;
240
240
  imp;
241
241
  constructor(D) {
242
- this.imp = new i.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
242
+ this.imp = new r.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
243
243
  }
244
244
  copy(D) {
245
245
  return this.imp.copy(D.imp), this;
246
246
  }
247
247
  clone() {
248
- return new j(this.imp);
248
+ return new I(this.imp);
249
249
  }
250
250
  setToIdentity() {
251
251
  return this.imp.setToIdentity(), this;
@@ -278,7 +278,7 @@ class j {
278
278
  return this.imp.setCoordSystem(D.imp, C.imp, B.imp, F.imp), this;
279
279
  }
280
280
  setToTranslation(D) {
281
- return this.imp.setCoordSystem(D.imp), this;
281
+ return this.imp.setToTranslation(D.imp), this;
282
282
  }
283
283
  setToRotation(D, C, B) {
284
284
  return this.imp.setToRotation(D, C.imp, B.imp), this;
@@ -293,10 +293,10 @@ class j {
293
293
  return this.imp.getData(D, C);
294
294
  }
295
295
  }
296
- class lC {
296
+ class SD {
297
297
  imp;
298
298
  constructor(D) {
299
- this.imp = new i.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
299
+ this.imp = new r.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
300
300
  }
301
301
  copy(D) {
302
302
  return this.imp.copy(D.imp), this;
@@ -314,10 +314,10 @@ class lC {
314
314
  this.imp.setAt(D, C);
315
315
  }
316
316
  }
317
- class vD {
317
+ class ID {
318
318
  imp;
319
319
  constructor(D) {
320
- this.imp = new i.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
320
+ this.imp = new r.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
321
321
  }
322
322
  copy(D) {
323
323
  return this.imp.copy(D.imp), this;
@@ -340,10 +340,10 @@ class vD {
340
340
  D(C ? P.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
341
341
  }
342
342
  }
343
- class cC {
343
+ class mC {
344
344
  imp;
345
345
  constructor(D) {
346
- this.imp = new i.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
346
+ this.imp = new r.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
347
347
  }
348
348
  copy(D) {
349
349
  return this.imp.copy(D.imp), this;
@@ -355,19 +355,19 @@ class cC {
355
355
  return this.imp.length();
356
356
  }
357
357
  at(D) {
358
- return new a(this.imp.at(D));
358
+ return new o(this.imp.at(D));
359
359
  }
360
360
  setAt(D, C) {
361
361
  this.imp.setAt(D, C.imp);
362
362
  }
363
363
  }
364
- const mC = new FinalizationRegistry((E) => {
365
- i.App.DestroyObject(E);
366
- }), pC = {};
367
- class K {
364
+ const pC = new FinalizationRegistry((E) => {
365
+ r.App.DestroyObject(E);
366
+ }), dC = {};
367
+ class H {
368
368
  imp = 0;
369
369
  constructor(D) {
370
- this.imp = D, this.imp && mC.register(this, D, pC);
370
+ this.imp = D, this.imp && pC.register(this, D, dC);
371
371
  }
372
372
  getImp() {
373
373
  return this.imp;
@@ -404,30 +404,30 @@ class R {
404
404
  return this.type != 2 && this.id != 0;
405
405
  }
406
406
  erase() {
407
- this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && U.eraseEntity(this.id);
407
+ this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && z.eraseEntity(this.id);
408
408
  }
409
409
  getMcDbObject() {
410
- return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
410
+ return this.type == 0 ? r.App.ObjectIdToObject(this.id) : null;
411
411
  }
412
412
  getMcDbEntity() {
413
- return this.type == 0 && i.App.ObjectIdIsKindOf(this.id, "McDbEntity") ? i.App.ObjectIdToObject(this.id) : null;
413
+ return this.type == 0 && r.App.ObjectIdIsKindOf(this.id, "McDbEntity") ? r.App.ObjectIdToObject(this.id) : null;
414
414
  }
415
415
  getMcDbCurve() {
416
- return this.type == 0 && i.App.ObjectIdIsKindOf(this.id, "McDbCurve") ? i.App.ObjectIdToObject(this.id) : null;
416
+ return this.type == 0 && r.App.ObjectIdIsKindOf(this.id, "McDbCurve") ? r.App.ObjectIdToObject(this.id) : null;
417
417
  }
418
418
  clone() {
419
419
  if (this.type == 0) {
420
- let D = i.App.getImp().ObjectIdToMdObject(this.id);
420
+ let D = r.App.getImp().ObjectIdToMdObject(this.id);
421
421
  if (!D)
422
422
  return null;
423
423
  let C = D.Clone();
424
- return i.App.DestroyObject(D), i.App.CreateCloneObject(C);
424
+ return r.App.DestroyObject(D), r.App.CreateCloneObject(C);
425
425
  }
426
426
  return null;
427
427
  }
428
428
  getObjectName() {
429
429
  if (this.type == 0)
430
- return i.App.getImp().ObjectIdToObjectName(this.id);
430
+ return r.App.getImp().ObjectIdToObjectName(this.id);
431
431
  if (this.type == 1) {
432
432
  let D = h.getCurrentDraw().getMxEntity(this.id);
433
433
  if (D)
@@ -439,7 +439,7 @@ class R {
439
439
  return this.type == 1 ? h.getCurrentDraw().getMxEntity(this.id) : null;
440
440
  }
441
441
  }
442
- class I extends K {
442
+ class j extends H {
443
443
  constructor(D) {
444
444
  super(D);
445
445
  }
@@ -451,28 +451,28 @@ class I extends K {
451
451
  }
452
452
  Clone() {
453
453
  let D = this.imp.Clone();
454
- return i.App.CreateCloneObject(D);
454
+ return r.App.CreateCloneObject(D);
455
455
  }
456
456
  GetHandle() {
457
457
  return this.imp.GetHandle();
458
458
  }
459
459
  GetDatabase() {
460
- return new pD(this.imp.GetDatabase());
460
+ return new hD(this.imp.GetDatabase());
461
461
  }
462
462
  GetOwnerID() {
463
463
  return this.imp.GetOwnerID();
464
464
  }
465
465
  }
466
- class oD {
466
+ class aD {
467
467
  aryVal = [];
468
468
  constructor(D) {
469
469
  if (D) {
470
470
  let C = 0, B = D.length();
471
471
  for (; C < B; C++) {
472
- let F = D.release(C), A = i.App.CreateCloneObject(F);
472
+ let F = D.release(C), A = r.App.CreateCloneObject(F);
473
473
  A != null && this.aryVal.push(A);
474
474
  }
475
- i.App.DestroyObject(D);
475
+ r.App.DestroyObject(D);
476
476
  }
477
477
  }
478
478
  forEach(D) {
@@ -487,7 +487,7 @@ class oD {
487
487
  return this.aryVal.length == 0;
488
488
  }
489
489
  }
490
- var aD;
490
+ var uD;
491
491
  ((E) => {
492
492
  ((D) => {
493
493
  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";
@@ -498,11 +498,11 @@ var aD;
498
498
  })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
499
499
  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";
500
500
  })(E.LineWeight || (E.LineWeight = {}));
501
- })(aD || (aD = {}));
502
- class H {
501
+ })(uD || (uD = {}));
502
+ class N {
503
503
  imp;
504
504
  constructor(D, C, B) {
505
- 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);
505
+ this.imp = new r.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);
506
506
  }
507
507
  getImp() {
508
508
  return this.imp;
@@ -511,7 +511,7 @@ class H {
511
511
  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;
512
512
  }
513
513
  clone() {
514
- return new H(this.imp);
514
+ return new N(this.imp);
515
515
  }
516
516
  setColorIndex(D) {
517
517
  this.imp.setColorIndex(D);
@@ -556,9 +556,9 @@ class H {
556
556
  this.imp.colorIndex = D;
557
557
  }
558
558
  }
559
- class dC extends I {
559
+ class hC extends j {
560
560
  constructor(D) {
561
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
561
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbLayerTableRecord());
562
562
  }
563
563
  get name() {
564
564
  return this.imp.getName();
@@ -585,7 +585,7 @@ class dC extends I {
585
585
  this.imp.setIsLocked(D);
586
586
  }
587
587
  get color() {
588
- return new H(this.imp.color());
588
+ return new N(this.imp.color());
589
589
  }
590
590
  set color(D) {
591
591
  this.imp.setColor(D.getImp());
@@ -603,22 +603,22 @@ class dC extends I {
603
603
  this.imp.setLineWeight(D);
604
604
  }
605
605
  }
606
- class jD extends I {
606
+ class jD extends j {
607
607
  constructor(D) {
608
608
  super(D);
609
609
  }
610
610
  }
611
- class ID extends I {
611
+ class GD extends j {
612
612
  constructor(D) {
613
613
  super(D);
614
614
  }
615
615
  }
616
- class GD extends I {
616
+ class VD extends j {
617
617
  constructor(D) {
618
618
  super(D);
619
619
  }
620
620
  }
621
- class pD extends K {
621
+ class hD extends H {
622
622
  constructor(D) {
623
623
  super(D);
624
624
  }
@@ -626,16 +626,16 @@ class pD extends K {
626
626
  return new jD(this.imp.GetLayerTable());
627
627
  }
628
628
  GetLinetypeTable() {
629
- return new ID(this.imp.GetLinetypeTable());
629
+ return new GD(this.imp.GetLinetypeTable());
630
630
  }
631
631
  GetTextStyleTable() {
632
- return new GD(this.imp.GetTextStyleTable());
632
+ return new VD(this.imp.GetTextStyleTable());
633
633
  }
634
634
  GetBlockTable() {
635
- return new UD(this.imp.GetBlockTable());
635
+ return new zD(this.imp.GetBlockTable());
636
636
  }
637
637
  CurrentSpace() {
638
- return new FD(this.imp.CurrentSpace());
638
+ return new AD(this.imp.CurrentSpace());
639
639
  }
640
640
  GetCurrentlyLineTypeScale() {
641
641
  return this.imp.GetCurrentlyLineTypeScale();
@@ -660,7 +660,7 @@ class pD extends K {
660
660
  this.imp.SetCurrentlyLayerName(C);
661
661
  }
662
662
  GetCurrentlyTrueColor() {
663
- return new H(this.imp.GetCurrentlyTrueColor());
663
+ return new N(this.imp.GetCurrentlyTrueColor());
664
664
  }
665
665
  GetCurrentlyDrawColor() {
666
666
  let D = this.imp.GetCurrentlyDrawColor(), C = new THREE.Color();
@@ -694,7 +694,7 @@ class pD extends K {
694
694
  return this.imp.SetModifyed(!1);
695
695
  }
696
696
  }
697
- class VD extends K {
697
+ class UD extends H {
698
698
  constructor(D) {
699
699
  super(D);
700
700
  }
@@ -711,9 +711,9 @@ class VD extends K {
711
711
  return this.imp.step(D, C);
712
712
  }
713
713
  }
714
- class FD extends I {
714
+ class AD extends j {
715
715
  constructor(D) {
716
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
716
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockTableRecord());
717
717
  }
718
718
  appendAcDbEntity(D) {
719
719
  return new R(
@@ -723,19 +723,19 @@ class FD extends I {
723
723
  }
724
724
  newIterator(D = !0, C = !0) {
725
725
  let B = this.imp.newIterator(D, C);
726
- return new VD(B);
726
+ return new UD(B);
727
727
  }
728
728
  get origin() {
729
- return new a(this.imp.origin());
729
+ return new o(this.imp.origin());
730
730
  }
731
731
  set origin(D) {
732
732
  this.imp.setOrigin(D.imp);
733
733
  }
734
734
  getBoundingBox() {
735
735
  let D = this.imp.getBoundingBox();
736
- return D.length() < 2 ? { minPt: new a(), maxPt: new a(), ret: !1 } : {
737
- minPt: new a(D.at(0)),
738
- maxPt: new a(D.at(1)),
736
+ return D.length() < 2 ? { minPt: new o(), maxPt: new o(), ret: !1 } : {
737
+ minPt: new o(D.at(0)),
738
+ maxPt: new o(D.at(1)),
739
739
  ret: !0
740
740
  };
741
741
  }
@@ -743,7 +743,7 @@ class FD extends I {
743
743
  this.imp.invalidBoundingBoxBuffer();
744
744
  }
745
745
  }
746
- class WD extends K {
746
+ class WD extends H {
747
747
  constructor(D) {
748
748
  super(D);
749
749
  }
@@ -755,19 +755,19 @@ class WD extends K {
755
755
  }
756
756
  getRecord() {
757
757
  let D = this.imp.getRecord();
758
- return new FD(D);
758
+ return new AD(D);
759
759
  }
760
760
  step(D = !0, C = !0) {
761
761
  this.imp.start(D, C);
762
762
  }
763
763
  }
764
- class UD extends I {
764
+ class zD extends j {
765
765
  constructor(D) {
766
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
766
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockTable());
767
767
  }
768
768
  getAt(D) {
769
769
  let C = this.getAt(D);
770
- return C && new FD(C);
770
+ return C && new AD(C);
771
771
  }
772
772
  has(D) {
773
773
  return this.imp.has(D);
@@ -780,7 +780,7 @@ class UD extends I {
780
780
  return this.imp.add(D.getImp());
781
781
  }
782
782
  }
783
- class G extends I {
783
+ class G extends j {
784
784
  constructor(D) {
785
785
  super(D);
786
786
  }
@@ -789,7 +789,7 @@ class G extends I {
789
789
  return new tD(D);
790
790
  }
791
791
  get trueColor() {
792
- return new H(this.imp.TrueColor());
792
+ return new N(this.imp.TrueColor());
793
793
  }
794
794
  set trueColor(D) {
795
795
  this.imp.SetTrueColor(D.getImp());
@@ -852,13 +852,13 @@ class G extends I {
852
852
  let D = this.imp.GetBoundingBox();
853
853
  if (D) {
854
854
  let C = {
855
- minPt: new a(D.AtPoint(0)),
856
- maxPt: new a(D.AtPoint(1)),
855
+ minPt: new o(D.AtPoint(0)),
856
+ maxPt: new o(D.AtPoint(1)),
857
857
  ret: !0
858
858
  };
859
- return i.App.DestroyObject(D), C;
859
+ return r.App.DestroyObject(D), C;
860
860
  } else
861
- return { minPt: new a(), maxPt: new a(), ret: !1 };
861
+ return { minPt: new o(), maxPt: new o(), ret: !1 };
862
862
  }
863
863
  }
864
864
  class W extends G {
@@ -866,116 +866,116 @@ class W extends G {
866
866
  super(D);
867
867
  }
868
868
  getStartParam() {
869
- return { val: this.imp.getStartParam(), ret: i.getCallResult() };
869
+ return { val: this.imp.getStartParam(), ret: r.getCallResult() };
870
870
  }
871
871
  getEndParam() {
872
- return { val: this.imp.getEndParam(), ret: i.getCallResult() };
872
+ return { val: this.imp.getEndParam(), ret: r.getCallResult() };
873
873
  }
874
874
  getDistAtParam(D) {
875
- return { val: this.imp.getDistAtParam(D), ret: i.getCallResult() };
875
+ return { val: this.imp.getDistAtParam(D), ret: r.getCallResult() };
876
876
  }
877
877
  getParamAtDist(D) {
878
- return { val: this.imp.getParamAtDist(D), ret: i.getCallResult() };
878
+ return { val: this.imp.getParamAtDist(D), ret: r.getCallResult() };
879
879
  }
880
880
  getDistAtPoint(D) {
881
- return { val: this.imp.getDistAtPoint(D.imp), ret: i.getCallResult() };
881
+ return { val: this.imp.getDistAtPoint(D.imp), ret: r.getCallResult() };
882
882
  }
883
883
  getPointAtDist(D) {
884
884
  return {
885
- val: new a(this.imp.getPointAtDist(D)),
886
- ret: i.getCallResult()
885
+ val: new o(this.imp.getPointAtDist(D)),
886
+ ret: r.getCallResult()
887
887
  };
888
888
  }
889
889
  getStartPoint() {
890
890
  return {
891
- val: new a(this.imp.getStartPoint()),
892
- ret: i.getCallResult()
891
+ val: new o(this.imp.getStartPoint()),
892
+ ret: r.getCallResult()
893
893
  };
894
894
  }
895
895
  getEndPoint() {
896
896
  return {
897
- val: new a(this.imp.getStartPoint()),
898
- ret: i.getCallResult()
897
+ val: new o(this.imp.getStartPoint()),
898
+ ret: r.getCallResult()
899
899
  };
900
900
  }
901
901
  getPointAtParam(D) {
902
902
  return {
903
- val: new a(this.imp.getPointAtParam(D)),
904
- ret: i.getCallResult()
903
+ val: new o(this.imp.getPointAtParam(D)),
904
+ ret: r.getCallResult()
905
905
  };
906
906
  }
907
907
  getParamAtPoint(D) {
908
908
  return {
909
909
  val: this.imp.getParamAtPoint(D.imp),
910
- ret: i.getCallResult()
910
+ ret: r.getCallResult()
911
911
  };
912
912
  }
913
913
  getFirstDeriv(D) {
914
914
  return {
915
915
  val: new y(this.imp.getFirstDeriv(D)),
916
- ret: i.getCallResult()
916
+ ret: r.getCallResult()
917
917
  };
918
918
  }
919
919
  getFirstDerivEx(D) {
920
920
  return {
921
921
  val: new y(this.imp.getFirstDerivEx(D.imp)),
922
- ret: i.getCallResult()
922
+ ret: r.getCallResult()
923
923
  };
924
924
  }
925
925
  getClosestPointTo(D, C) {
926
926
  return {
927
- val: new a(this.imp.getClosestPointTo(D.imp, C)),
928
- ret: i.getCallResult()
927
+ val: new o(this.imp.getClosestPointTo(D.imp, C)),
928
+ ret: r.getCallResult()
929
929
  };
930
930
  }
931
931
  offsetCurves(D, C) {
932
932
  let B = this.imp.offsetCurves(D, C.imp);
933
- return new oD(B);
933
+ return new aD(B);
934
934
  }
935
935
  splitCurves(D) {
936
936
  let C = this.imp.splitCurves(D);
937
- return new oD(C);
937
+ return new aD(C);
938
938
  }
939
939
  getArea() {
940
- return { val: this.imp.getArea(), ret: i.getCallResult() };
940
+ return { val: this.imp.getArea(), ret: r.getCallResult() };
941
941
  }
942
942
  getSamplePoints(D) {
943
943
  let C = this.imp.getSamplePoints(D);
944
944
  return new tD(C);
945
945
  }
946
946
  getLength() {
947
- return { val: this.imp.getLength(), ret: i.getCallResult() };
947
+ return { val: this.imp.getLength(), ret: r.getCallResult() };
948
948
  }
949
949
  }
950
- class DD extends W {
951
- constructor(D, C, B, F, A, t) {
952
- 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));
950
+ class CD extends W {
951
+ constructor(D, C, B, F, A, e) {
952
+ D instanceof Object ? D instanceof o ? (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbLine()), C instanceof o && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbLine()), this.startPoint = new o(D, C, B), this.endPoint = new o(F, A, e));
953
953
  }
954
954
  get startPoint() {
955
- return new a(this.imp.startPoint());
955
+ return new o(this.imp.startPoint());
956
956
  }
957
957
  set startPoint(D) {
958
958
  this.imp.setStartPoint(D.imp);
959
959
  }
960
960
  get endPoint() {
961
- return new a(this.imp.endPoint());
961
+ return new o(this.imp.endPoint());
962
962
  }
963
963
  set endPoint(D) {
964
964
  this.imp.setEndPoint(D.imp);
965
965
  }
966
966
  }
967
- class uD extends G {
967
+ class lD extends G {
968
968
  constructor(D) {
969
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
969
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbText());
970
970
  }
971
971
  get position() {
972
- return new a(this.imp.position());
972
+ return new o(this.imp.position());
973
973
  }
974
974
  set position(D) {
975
975
  this.imp.setPosition(D.imp);
976
976
  }
977
977
  get alignmentPoint() {
978
- return new a(this.imp.position());
978
+ return new o(this.imp.position());
979
979
  }
980
980
  set alignmentPoint(D) {
981
981
  this.imp.setAlignmentPoint(D.imp);
@@ -1023,12 +1023,12 @@ class uD extends G {
1023
1023
  this.imp.setVerticalMode(D);
1024
1024
  }
1025
1025
  }
1026
- class CD extends G {
1026
+ class BD extends G {
1027
1027
  constructor(D) {
1028
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
1028
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbMText());
1029
1029
  }
1030
1030
  get location() {
1031
- return new a(this.imp.location());
1031
+ return new o(this.imp.location());
1032
1032
  }
1033
1033
  set location(D) {
1034
1034
  this.imp.setLocation(D.imp);
@@ -1064,15 +1064,15 @@ class CD extends G {
1064
1064
  this.imp.setContents(P.encodeToGb2312(D));
1065
1065
  }
1066
1066
  }
1067
- class V extends W {
1067
+ class U extends W {
1068
1068
  constructor(D, C, B, F) {
1069
- 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)));
1069
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbCircle()), typeof D == "number" && (this.imp.setCenter(new o(D, C, B).imp), this.imp.setRadius(F)));
1070
1070
  }
1071
1071
  setCenter(D, C, B) {
1072
- this.imp.setCenter(new a(D, C, B).imp);
1072
+ this.imp.setCenter(new o(D, C, B).imp);
1073
1073
  }
1074
1074
  get center() {
1075
- return new a(this.imp.center());
1075
+ return new o(this.imp.center());
1076
1076
  }
1077
1077
  set center(D) {
1078
1078
  this.imp.setCenter(D.imp);
@@ -1084,9 +1084,9 @@ class V extends W {
1084
1084
  this.imp.setRadius(D);
1085
1085
  }
1086
1086
  }
1087
- class BD extends W {
1087
+ class ED extends W {
1088
1088
  constructor(D) {
1089
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
1089
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbPolyline());
1090
1090
  }
1091
1091
  get isClosed() {
1092
1092
  return this.imp.isClosed();
@@ -1102,8 +1102,8 @@ class BD extends W {
1102
1102
  }
1103
1103
  addVertexAt(D, C = 0, B = 0, F = 0, A = 0) {
1104
1104
  if (D instanceof THREE.Vector3) {
1105
- let t = new i.mxcadassemblyimp.MdGePoint3d();
1106
- return t.x = D.x, t.y = D.y, t.z = D.z, this.imp.addVertexAt(A, t, C, B, F);
1105
+ let e = new r.mxcadassemblyimp.MdGePoint3d();
1106
+ return e.x = D.x, e.y = D.y, e.z = D.z, this.imp.addVertexAt(A, e, C, B, F);
1107
1107
  } else
1108
1108
  return this.imp.addVertexAt(A, D.imp, C, B, F);
1109
1109
  }
@@ -1114,7 +1114,7 @@ class BD extends W {
1114
1114
  return this.imp.numVerts();
1115
1115
  }
1116
1116
  getPointAt(D) {
1117
- return { val: this.imp.getPointAt(D), ret: i.getCallResult() };
1117
+ return { val: this.imp.getPointAt(D), ret: r.getCallResult() };
1118
1118
  }
1119
1119
  getBulgeAt(D) {
1120
1120
  return this.imp.getBulgeAt(D);
@@ -1123,7 +1123,7 @@ class BD extends W {
1123
1123
  return {
1124
1124
  val1: this.imp.getStartWidthsAt(D),
1125
1125
  val2: this.imp.getEndWidthsAt(D),
1126
- ret: i.getCallResult()
1126
+ ret: r.getCallResult()
1127
1127
  };
1128
1128
  }
1129
1129
  setPointAt(D, C) {
@@ -1133,9 +1133,9 @@ class BD extends W {
1133
1133
  return this.imp.setBulgeAt(D, C);
1134
1134
  }
1135
1135
  }
1136
- class lD extends G {
1136
+ class cD extends G {
1137
1137
  constructor(D) {
1138
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
1138
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockReference());
1139
1139
  }
1140
1140
  get blockTableRecordId() {
1141
1141
  return new R(this.imp.blockTableRecord(), k.kMxCAD);
@@ -1144,7 +1144,7 @@ class lD extends G {
1144
1144
  this.imp.setBlockTableRecordId(D.id);
1145
1145
  }
1146
1146
  get position() {
1147
- return new a(this.imp.position());
1147
+ return new o(this.imp.position());
1148
1148
  }
1149
1149
  set position(D) {
1150
1150
  this.imp.setPosition(D.imp);
@@ -1162,18 +1162,18 @@ class lD extends G {
1162
1162
  this.imp.setRotation(D);
1163
1163
  }
1164
1164
  get blockTransform() {
1165
- return new j(this.imp.blockTransform());
1165
+ return new I(this.imp.blockTransform());
1166
1166
  }
1167
1167
  set blockTransform(D) {
1168
1168
  this.imp.setBlockTransform(D.imp);
1169
1169
  }
1170
1170
  }
1171
- class dD extends G {
1171
+ class yD extends G {
1172
1172
  constructor(D) {
1173
1173
  super(D);
1174
1174
  }
1175
1175
  get textPosition() {
1176
- return new a(this.imp.textPosition());
1176
+ return new o(this.imp.textPosition());
1177
1177
  }
1178
1178
  set textPosition(D) {
1179
1179
  this.imp.setTextPosition(D.imp);
@@ -1254,24 +1254,24 @@ class dD extends G {
1254
1254
  this.imp.SetDimVarObjectId(D, C.id);
1255
1255
  }
1256
1256
  }
1257
- class cD extends dD {
1257
+ class mD extends yD {
1258
1258
  constructor(D) {
1259
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
1259
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbAlignedDimension());
1260
1260
  }
1261
1261
  get xLine1Point() {
1262
- return new a(this.imp.xLine1Point());
1262
+ return new o(this.imp.xLine1Point());
1263
1263
  }
1264
1264
  set xLine1Point(D) {
1265
1265
  this.imp.setXLine1Point(D.imp);
1266
1266
  }
1267
1267
  get xLine2Point() {
1268
- return new a(this.imp.xLine2Point());
1268
+ return new o(this.imp.xLine2Point());
1269
1269
  }
1270
1270
  set xLine2Point(D) {
1271
1271
  this.imp.setXLine2Point(D.imp);
1272
1272
  }
1273
1273
  get dimLinePoint() {
1274
- return new a(this.imp.dimLinePoint());
1274
+ return new o(this.imp.dimLinePoint());
1275
1275
  }
1276
1276
  set dimLinePoint(D) {
1277
1277
  this.imp.setDimLinePoint(D.imp);
@@ -1283,24 +1283,24 @@ class cD extends dD {
1283
1283
  this.imp.setOblique(D);
1284
1284
  }
1285
1285
  }
1286
- class mD extends dD {
1286
+ class pD extends yD {
1287
1287
  constructor(D) {
1288
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
1288
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbRotatedDimension());
1289
1289
  }
1290
1290
  get xLine1Point() {
1291
- return new a(this.imp.xLine1Point());
1291
+ return new o(this.imp.xLine1Point());
1292
1292
  }
1293
1293
  set xLine1Point(D) {
1294
1294
  this.imp.setXLine1Point(D.imp);
1295
1295
  }
1296
1296
  get xLine2Point() {
1297
- return new a(this.imp.xLine2Point());
1297
+ return new o(this.imp.xLine2Point());
1298
1298
  }
1299
1299
  set xLine2Point(D) {
1300
1300
  this.imp.setXLine2Point(D.imp);
1301
1301
  }
1302
1302
  get dimLinePoint() {
1303
- return new a(this.imp.dimLinePoint());
1303
+ return new o(this.imp.dimLinePoint());
1304
1304
  }
1305
1305
  set dimLinePoint(D) {
1306
1306
  this.imp.setDimLinePoint(D.imp);
@@ -1318,15 +1318,15 @@ class mD extends dD {
1318
1318
  this.imp.setRotation(D);
1319
1319
  }
1320
1320
  }
1321
- class ED extends W {
1321
+ class FD extends W {
1322
1322
  constructor(D) {
1323
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1323
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbArc());
1324
1324
  }
1325
1325
  setCenter(D, C, B) {
1326
- this.imp.setCenter(new a(D, C, B).imp);
1326
+ this.imp.setCenter(new o(D, C, B).imp);
1327
1327
  }
1328
1328
  get center() {
1329
- return new a(this.imp.center());
1329
+ return new o(this.imp.center());
1330
1330
  }
1331
1331
  set center(D) {
1332
1332
  this.imp.setCenter(D.imp);
@@ -1349,26 +1349,26 @@ class ED extends W {
1349
1349
  set endAngle(D) {
1350
1350
  this.imp.setEndAngle(D);
1351
1351
  }
1352
- computeArc(D, C, B, F, A, t) {
1352
+ computeArc(D, C, B, F, A, e) {
1353
1353
  return this.imp.computeArc(
1354
1354
  D,
1355
1355
  C,
1356
1356
  B,
1357
1357
  F,
1358
1358
  A,
1359
- t
1359
+ e
1360
1360
  );
1361
1361
  }
1362
1362
  }
1363
- class AD extends W {
1364
- constructor(D, C, B, F, A, t, e, r, s) {
1365
- 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)));
1363
+ class eD extends W {
1364
+ constructor(D, C, B, F, A, e, t, i, s) {
1365
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (t || (t = 1), typeof i != "number" && (i = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.InitData(new o(D, C, B).imp, new y(F, A, e).imp, t, i, s)));
1366
1366
  }
1367
1367
  setCenter(D, C, B) {
1368
- this.imp.setCenter(new a(D, C, B).imp);
1368
+ this.imp.setCenter(new o(D, C, B).imp);
1369
1369
  }
1370
1370
  get center() {
1371
- return new a(this.imp.center());
1371
+ return new o(this.imp.center());
1372
1372
  }
1373
1373
  set center(D) {
1374
1374
  this.imp.setCenter(D.imp);
@@ -1410,27 +1410,27 @@ class AD extends W {
1410
1410
  this.imp.setEndAngle(D);
1411
1411
  }
1412
1412
  }
1413
- class hD extends G {
1413
+ class wD extends G {
1414
1414
  constructor(D, C, B) {
1415
- 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));
1415
+ D instanceof Object ? D instanceof o ? (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbPoint()), this.imp.setPosition(D.imp)) : super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbPoint()), typeof D == "number" && this.imp.setPosition(new o(D, C, B).imp));
1416
1416
  }
1417
1417
  setPosition(D, C, B) {
1418
- this.imp.setPosition(new a(D, C, B).imp);
1418
+ this.imp.setPosition(new o(D, C, B).imp);
1419
1419
  }
1420
1420
  get position() {
1421
- return new a(this.imp.position());
1421
+ return new o(this.imp.position());
1422
1422
  }
1423
1423
  set position(D) {
1424
1424
  this.imp.setPosition(D.imp);
1425
1425
  }
1426
1426
  }
1427
- function _(E = null) {
1427
+ function K(E = null) {
1428
1428
  let D;
1429
- return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1429
+ return E == null ? D = new r.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1430
1430
  }
1431
- class tD extends K {
1431
+ class tD extends H {
1432
1432
  constructor(D) {
1433
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
1433
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.McDrawResbuf());
1434
1434
  }
1435
1435
  Clear() {
1436
1436
  this.imp.Clear();
@@ -1439,16 +1439,16 @@ class tD extends K {
1439
1439
  return this.imp.GetCount();
1440
1440
  }
1441
1441
  AtDouble(D) {
1442
- return { val: this.imp.AtDouble(D), ret: i.getCallResult() };
1442
+ return { val: this.imp.AtDouble(D), ret: r.getCallResult() };
1443
1443
  }
1444
1444
  Atlong(D) {
1445
- return { val: this.imp.Atlong(D), ret: i.getCallResult() };
1445
+ return { val: this.imp.Atlong(D), ret: r.getCallResult() };
1446
1446
  }
1447
1447
  AtObject(D) {
1448
1448
  if (this.imp.AtObjectName(D) == "McDbMText") {
1449
1449
  let B = this.imp.AtObjectMdDbMText(D);
1450
1450
  if (B)
1451
- return { val: new CD(B), ret: i.getCallResult() };
1451
+ return { val: new BD(B), ret: r.getCallResult() };
1452
1452
  }
1453
1453
  return { val: void 0, ret: -1 };
1454
1454
  }
@@ -1456,13 +1456,13 @@ class tD extends K {
1456
1456
  this.imp.AddObject(D.getImp());
1457
1457
  }
1458
1458
  AtObjectId(D) {
1459
- return { val: new R(this.imp.AtObjectId(D), k.kMxCAD), ret: i.getCallResult() };
1459
+ return { val: new R(this.imp.AtObjectId(D), k.kMxCAD), ret: r.getCallResult() };
1460
1460
  }
1461
1461
  AtString(D, C = !0) {
1462
- return C ? { val: P.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1462
+ return C ? { val: P.decodeFromGb2312(this.imp.AtString(D)), ret: r.getCallResult() } : { val: this.imp.AtString(D), ret: r.getCallResult() };
1463
1463
  }
1464
1464
  AtPoint(D) {
1465
- return { val: new a(this.imp.AtPoint(D)), ret: i.getCallResult() };
1465
+ return { val: new o(this.imp.AtPoint(D)), ret: r.getCallResult() };
1466
1466
  }
1467
1467
  ItemDataType() {
1468
1468
  return this.imp.ItemDataType();
@@ -1492,7 +1492,7 @@ class tD extends K {
1492
1492
  this.imp.Remove(D);
1493
1493
  }
1494
1494
  }
1495
- class zD {
1495
+ class KD {
1496
1496
  imp;
1497
1497
  constructor() {
1498
1498
  }
@@ -1504,58 +1504,116 @@ class zD {
1504
1504
  }
1505
1505
  findEntAtPoint(D, C, B, F = -1, A = null) {
1506
1506
  this.init();
1507
- let t = this.imp.findEntAtPoint(D, C, B, F, _(A));
1508
- return new R(t, k.kMxCAD);
1507
+ let e = this.imp.findEntAtPoint(D, C, B, F, K(A));
1508
+ return new R(e, k.kMxCAD);
1509
1509
  }
1510
1510
  selectEnt(D, C = null, B = !0) {
1511
1511
  return this.init(), new Promise(async (F) => {
1512
- const A = new S();
1513
- D && A.setMessage(D), A.setCursorType(xD.kRect), A.setDisableOsnap(!0);
1514
- let t = await A.go();
1515
- if (!t) {
1512
+ const A = new O();
1513
+ D && A.setMessage(D), A.setCursorType(MD.kRect), A.setDisableOsnap(!0);
1514
+ let e = await A.go();
1515
+ if (!e) {
1516
1516
  F([]);
1517
1517
  return;
1518
1518
  }
1519
1519
  if (B)
1520
- fD.findEntAtPoint(t).then((e) => {
1521
- let r = [];
1522
- e.forEach((o) => {
1523
- r.push(new R(o, k.kMxDraw));
1520
+ oD.findEntAtPoint(e).then((t) => {
1521
+ let i = [];
1522
+ t.forEach((a) => {
1523
+ i.push(new R(a, k.kMxDraw));
1524
1524
  });
1525
- let s = this.findEntAtPoint(t.x, t.y, t.z, -1, C);
1526
- s.isValid() && r.push(s), F(r);
1525
+ let s = this.findEntAtPoint(e.x, e.y, e.z, -1, C);
1526
+ s.isValid() && i.push(s), F(i);
1527
1527
  });
1528
1528
  else {
1529
- let e = [], r = this.findEntAtPoint(t.x, t.y, t.z, -1, C);
1530
- r.isValid() && e.push(r), F(e);
1529
+ let t = [], i = this.findEntAtPoint(e.x, e.y, e.z, -1, C);
1530
+ i.isValid() && t.push(i), F(t);
1531
1531
  }
1532
1532
  });
1533
1533
  }
1534
- getCurrentSelect() {
1535
- let D = [];
1536
- return h.getCurrentDraw().getMxCurrentSelect().forEach((F) => {
1537
- D.push(new R(F, k.kMxDraw));
1538
- }), h.getCurrentDraw().getMxCADCurrentSelect().forEach((F) => {
1539
- D.push(new R(F, k.kMxCAD));
1540
- }), D;
1534
+ getCurrentSelect(D = null) {
1535
+ let C = [];
1536
+ h.getCurrentDraw().getMxCurrentSelect().forEach((A) => {
1537
+ C.push(new R(A, k.kMxDraw));
1538
+ });
1539
+ let F = h.getCurrentDraw().getMxCADCurrentSelect();
1540
+ if (F.length <= 0)
1541
+ return C;
1542
+ if (D) {
1543
+ let A = new SD();
1544
+ F.forEach((s) => {
1545
+ A.append(s);
1546
+ });
1547
+ let e = new r.mxcadassemblyimp.McDrawSelSet(), t = e.getFilterEntity(A.imp, K(D));
1548
+ r.App.DestroyObject(e), F = [];
1549
+ let i = t.length();
1550
+ for (let s = 0; s < i; s++)
1551
+ F.push(t.at(s));
1552
+ }
1553
+ return F.forEach((A) => {
1554
+ C.push(new R(A, k.kMxCAD));
1555
+ }), C;
1556
+ }
1557
+ async userSelect(D, C = null) {
1558
+ let B = this.getCurrentSelect(C);
1559
+ if (B.length == 0) {
1560
+ let F = new _();
1561
+ await F.userSelect(D, C) && F.forEach((A) => {
1562
+ B.push(A);
1563
+ });
1564
+ }
1565
+ return new Promise((F) => {
1566
+ F(B);
1567
+ });
1541
1568
  }
1542
1569
  init() {
1543
- this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
1570
+ this.imp || (this.imp = new r.mxcadassemblyimp.McDrawUtility());
1571
+ }
1572
+ async getCorner(D, C, B, F = !1) {
1573
+ let A = 0, e;
1574
+ for (; ; ) {
1575
+ if (!C) {
1576
+ let i = new V();
1577
+ D && i.setMessage(D), i.setDynamicInputType(dD.kDynTip), C = await i.go(), A = i.getDetailedResult();
1578
+ }
1579
+ if (!C)
1580
+ break;
1581
+ let t = await oD.getCorner(C.toVector3(), D, F, (i) => {
1582
+ A = i.detailedResult;
1583
+ });
1584
+ t && (e = new o(t));
1585
+ break;
1586
+ }
1587
+ return B && B(A), new Promise((t) => {
1588
+ A == Z.kEcsIn || A == Z.kNewCommadIn || A == Z.kUnknown ? t(null) : t(C && e ? { pt1: C, pt2: e } : null);
1589
+ });
1590
+ }
1591
+ getMcDbEntitysBoundingBox(D) {
1592
+ let C, B;
1593
+ if (D.forEach((F) => {
1594
+ let A = F.getMcDbEntity();
1595
+ if (A == null)
1596
+ return;
1597
+ let e = A.GetBoundingBox();
1598
+ !e.ret || (!C || !B ? (C = new THREE.Vector3(e.minPt.x, e.minPt.y, 0), B = new THREE.Vector3(e.maxPt.x, e.maxPt.y, 0)) : (C.x > e.minPt.x && (C.x = e.minPt.x), C.y > e.minPt.y && (C.y = e.minPt.y), B.x < e.maxPt.x && (B.x = e.maxPt.x), B.y < e.maxPt.y && (B.y = e.maxPt.y)));
1599
+ }), C && B)
1600
+ return { minPt: new o(C), maxPt: new o(B) };
1544
1601
  }
1545
1602
  }
1546
- let U = new zD();
1547
- class $ extends K {
1603
+ let z = new KD();
1604
+ var HD = /* @__PURE__ */ ((E) => (E[E.kSelected = 0] = "kSelected", E[E.kNone = 1] = "kNone", E[E.kCanceled = 2] = "kCanceled", E[E.kRejected = 3] = "kRejected", E[E.kKeyword = 4] = "kKeyword", E))(HD || {});
1605
+ class _ extends H {
1548
1606
  constructor() {
1549
- super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
1607
+ super(), this.initTempObject(new r.mxcadassemblyimp.McDrawSelSet());
1550
1608
  }
1551
1609
  allSelect(D = null) {
1552
- return this.imp.allSelect(_(D));
1610
+ return this.imp.allSelect(K(D));
1553
1611
  }
1554
1612
  pointSelect(D, C, B = null, F = -1) {
1555
- return this.imp.pointSelect(D, C, _(B), F);
1613
+ return this.imp.pointSelect(D, C, K(B), F);
1556
1614
  }
1557
1615
  crossingSelect(D, C, B, F, A = null) {
1558
- return this.imp.crossingSelect(D, C, B, F, _(A));
1616
+ return this.imp.crossingSelect(D, C, B, F, K(A));
1559
1617
  }
1560
1618
  count() {
1561
1619
  return this.imp.count();
@@ -1575,28 +1633,30 @@ class $ extends K {
1575
1633
  return D;
1576
1634
  }
1577
1635
  async userSelect(D, C = null) {
1578
- let B = new S();
1579
- D && B.setMessage(D), B.setCursorType(xD.kRect), B.setDynamicInputType(MD.kDynTip), B.setDisableOsnap(!0);
1580
- let F = 0;
1636
+ let B = new O();
1637
+ D && B.setMessage(D), B.setCursorType(MD.kRect), B.setDynamicInputType(dD.kDynTip), B.setDisableOsnap(!0);
1638
+ let F = 0, A = K(C);
1581
1639
  for (; ; ) {
1582
- let A = await B.go();
1583
- if (F = B.getDetailedResult(), !A)
1640
+ let e = await B.go();
1641
+ if (F = B.getDetailedResult(), !e)
1584
1642
  break;
1585
- let t = await fD.getCorner(A, D, !0, (e) => {
1586
- F = e.detailedResult;
1643
+ if (this.imp.userPointSelect(e.x, e.y, A) == 0)
1644
+ continue;
1645
+ let t = await oD.getCorner(e, D, !0, (i) => {
1646
+ F = i.detailedResult;
1587
1647
  });
1588
1648
  if (!t)
1589
1649
  break;
1590
- this.imp.userSelect(A.x, A.y, t.x, t.y, _(C));
1650
+ this.imp.userSelect(e.x, e.y, t.x, t.y, A);
1591
1651
  }
1592
- return this.imp.highlightEntity(!1), F == rD.kEcsIn || F == rD.kNewCommadIn || F == rD.kUnknown ? new Promise((A) => {
1593
- A(!1);
1594
- }) : new Promise((A) => {
1595
- A(!0);
1652
+ return this.imp.highlightEntity(!1), F == Z.kEcsIn || F == Z.kNewCommadIn || F == Z.kUnknown ? new Promise((e) => {
1653
+ e(!1);
1654
+ }) : new Promise((e) => {
1655
+ e(!0);
1596
1656
  });
1597
1657
  }
1598
1658
  }
1599
- class N {
1659
+ class q {
1600
1660
  imp;
1601
1661
  constructor(D) {
1602
1662
  this.imp = D;
@@ -1621,7 +1681,7 @@ class N {
1621
1681
  }
1622
1682
  setUserDraw(D) {
1623
1683
  this.imp.setUserDraw((C, B) => {
1624
- D(new a(C), B);
1684
+ D(new o(C), B);
1625
1685
  });
1626
1686
  }
1627
1687
  getDetailedResult() {
@@ -1663,26 +1723,32 @@ class N {
1663
1723
  isDisableOsnap() {
1664
1724
  return this.imp.isDisableOsnap();
1665
1725
  }
1726
+ userInputControls() {
1727
+ return this.imp.userInputControls();
1728
+ }
1729
+ setUserInputControls(D) {
1730
+ this.imp.setUserInputControls(D);
1731
+ }
1666
1732
  }
1667
- class z extends N {
1733
+ class V extends q {
1668
1734
  constructor() {
1669
- super(new S());
1735
+ super(new O());
1670
1736
  }
1671
1737
  go() {
1672
1738
  return new Promise((D) => {
1673
1739
  this.imp.go((C) => {
1674
- C != 0 ? D(null) : D(new a(this.imp.value()));
1740
+ C != 0 ? D(null) : D(new o(this.imp.value()));
1675
1741
  });
1676
1742
  });
1677
1743
  }
1678
1744
  value() {
1679
- return new a(this.imp.value());
1745
+ return new o(this.imp.value());
1680
1746
  }
1681
1747
  getCADValue() {
1682
1748
  return this.imp.getCADValue();
1683
1749
  }
1684
1750
  basePt() {
1685
- return new a(this.imp.basePt());
1751
+ return new o(this.imp.basePt());
1686
1752
  }
1687
1753
  setBasePt(D) {
1688
1754
  this.imp.setBasePt(D.toVector3());
@@ -1691,15 +1757,15 @@ class z extends N {
1691
1757
  this.imp.setUseBasePt(D);
1692
1758
  }
1693
1759
  }
1694
- class KD extends N {
1760
+ class ND extends q {
1695
1761
  constructor() {
1696
- super(new EC());
1762
+ super(new AC());
1697
1763
  }
1698
1764
  value() {
1699
1765
  return this.imp.value();
1700
1766
  }
1701
1767
  basePt() {
1702
- return new a(this.imp.basePt());
1768
+ return new o(this.imp.basePt());
1703
1769
  }
1704
1770
  setBasePt(D) {
1705
1771
  this.imp.setBasePt(D.toVector3());
@@ -1711,15 +1777,15 @@ class KD extends N {
1711
1777
  return this.imp.go();
1712
1778
  }
1713
1779
  }
1714
- class hC extends N {
1780
+ class yC extends q {
1715
1781
  constructor() {
1716
- super(new FC());
1782
+ super(new eC());
1717
1783
  }
1718
1784
  value() {
1719
1785
  return this.imp.value();
1720
1786
  }
1721
1787
  basePt() {
1722
- return new a(this.imp.basePt());
1788
+ return new o(this.imp.basePt());
1723
1789
  }
1724
1790
  setBasePt(D) {
1725
1791
  this.imp.setBasePt(D.toVector3());
@@ -1731,9 +1797,9 @@ class hC extends N {
1731
1797
  return this.imp.go();
1732
1798
  }
1733
1799
  }
1734
- class yC extends N {
1800
+ class wC extends q {
1735
1801
  constructor() {
1736
- super(new AC());
1802
+ super(new tC());
1737
1803
  }
1738
1804
  value() {
1739
1805
  return this.imp.value();
@@ -1742,17 +1808,17 @@ class yC extends N {
1742
1808
  return this.imp.go();
1743
1809
  }
1744
1810
  }
1745
- class gC extends N {
1811
+ class gC extends q {
1746
1812
  constructor() {
1747
- super(new tC());
1813
+ super(new iC());
1748
1814
  }
1749
1815
  go() {
1750
1816
  return this.imp.go();
1751
1817
  }
1752
1818
  }
1753
- class wC extends N {
1819
+ class fC extends q {
1754
1820
  constructor() {
1755
- super(new eC());
1821
+ super(new rC());
1756
1822
  }
1757
1823
  value() {
1758
1824
  return this.imp.value();
@@ -1761,7 +1827,7 @@ class wC extends N {
1761
1827
  return this.imp.go();
1762
1828
  }
1763
1829
  }
1764
- class q {
1830
+ class $ {
1765
1831
  imp;
1766
1832
  static currentFileName;
1767
1833
  constructor(D) {
@@ -1777,17 +1843,17 @@ class q {
1777
1843
  return this.imp;
1778
1844
  }
1779
1845
  openWebFile(D, C, B = !0, F = "") {
1780
- let A = this.imp.mxdrawObject, t = Math.round(Math.random() * 1e7);
1846
+ let A = this.imp.mxdrawObject, e = Math.round(Math.random() * 1e7);
1781
1847
  if (C) {
1782
- let e = (r, s) => {
1783
- A.removeEventFuction("openFileComplete", e), t == s && C(r);
1848
+ let t = (i, s) => {
1849
+ A.removeEventFuction("openFileComplete", t), e == s && C(i);
1784
1850
  };
1785
- A.addEvent("openFileComplete", e);
1851
+ A.addEvent("openFileComplete", t);
1786
1852
  }
1787
- return q.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, t, F || "");
1853
+ return $.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, e, F || "");
1788
1854
  }
1789
1855
  getCurrentFileName() {
1790
- return q.currentFileName;
1856
+ return $.currentFileName;
1791
1857
  }
1792
1858
  saveFileToUrl(D, C) {
1793
1859
  const B = window;
@@ -1798,12 +1864,12 @@ class q {
1798
1864
  saveFile(D, C, B = !0, F = !0) {
1799
1865
  D || (D = this.getCurrentFileName()), D.indexOf(".") == -1 && (D += ".mxweb");
1800
1866
  const A = window;
1801
- return A.mx_saveFile_call = (t) => {
1802
- if (C && C(t), !!t) {
1867
+ return A.mx_saveFile_call = (e) => {
1868
+ if (C && C(e), !!e) {
1803
1869
  if (B) {
1804
- let e;
1805
- /^((?!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 ? Y.saveAsFileDialog({
1806
- blob: e,
1870
+ let t;
1871
+ /^((?!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 ? Q.saveAsFileDialog({
1872
+ blob: t,
1807
1873
  filename: D,
1808
1874
  types: [{
1809
1875
  description: "mxweb File",
@@ -1811,14 +1877,14 @@ class q {
1811
1877
  "application/octet-stream": [".mxweb"]
1812
1878
  }
1813
1879
  }]
1814
- }) : Y.downloadFile(e, D);
1880
+ }) : Q.downloadFile(t, D);
1815
1881
  }
1816
1882
  A.mx_saveFile_call = null;
1817
1883
  }
1818
1884
  }, this.imp.saveFile(D);
1819
1885
  }
1820
1886
  GetDatabase() {
1821
- return this.imp.McDbDatabase || (this.imp.McDbDatabase = new pD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1887
+ return this.imp.McDbDatabase || (this.imp.McDbDatabase = new hD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1822
1888
  }
1823
1889
  GetSysVarString(D) {
1824
1890
  return this.imp.GetSysVarString(D);
@@ -1839,7 +1905,7 @@ class q {
1839
1905
  return this.imp.SetSysVarLong(D, C);
1840
1906
  }
1841
1907
  get DrawColor() {
1842
- return new H(this.imp.GetDrawColor());
1908
+ return new N(this.imp.GetDrawColor());
1843
1909
  }
1844
1910
  set DrawColor(D) {
1845
1911
  this.imp.SetDrawColor(D.getImp());
@@ -1886,8 +1952,8 @@ class q {
1886
1952
  AddLinetypeEx(D, C, B) {
1887
1953
  this.imp.AddLinetypeEx(D, C, B);
1888
1954
  }
1889
- DrawLine(D, C, B, F, A, t) {
1890
- return this.imp.DrawLine(D, C, B, F, A, t);
1955
+ DrawLine(D, C, B, F, A, e) {
1956
+ return this.imp.DrawLine(D, C, B, F, A, e);
1891
1957
  }
1892
1958
  AddDimStyle(D, C, B, F, A) {
1893
1959
  return this.imp.AddDimStyle(D, C, B, F, A);
@@ -1913,8 +1979,8 @@ class q {
1913
1979
  DrawArc(D, C, B, F, A) {
1914
1980
  return this.imp.DrawArc(D, C, B, F, A);
1915
1981
  }
1916
- DrawArc2(D, C, B, F, A, t) {
1917
- return this.imp.DrawArc2(D, C, B, F, A, t);
1982
+ DrawArc2(D, C, B, F, A, e) {
1983
+ return this.imp.DrawArc2(D, C, B, F, A, e);
1918
1984
  }
1919
1985
  DrawCircle(D, C, B) {
1920
1986
  return this.imp.DrawCircle(D, C, B);
@@ -1922,35 +1988,35 @@ class q {
1922
1988
  DrawEllipse(D, C, B, F, A) {
1923
1989
  return this.imp.DrawEllipse(D, C, B, F, A);
1924
1990
  }
1925
- DrawEllipseArc(D, C, B, F, A, t, e) {
1926
- return this.imp.DrawEllipseArc(D, C, B, F, A, t, e);
1991
+ DrawEllipseArc(D, C, B, F, A, e, t) {
1992
+ return this.imp.DrawEllipseArc(D, C, B, F, A, e, t);
1927
1993
  }
1928
1994
  DrawPoint(D, C) {
1929
1995
  return this.imp.DrawPoint(D, C);
1930
1996
  }
1931
- DrawSolid(D, C, B, F, A, t, e, r) {
1932
- return this.imp.DrawSolid(D, C, B, F, A, t, e, r);
1997
+ DrawSolid(D, C, B, F, A, e, t, i) {
1998
+ return this.imp.DrawSolid(D, C, B, F, A, e, t, i);
1933
1999
  }
1934
- DrawMText(D, C, B, F, A, t, e) {
1935
- return this.imp.DrawMText(D, C, B, F, A, t, e);
2000
+ DrawMText(D, C, B, F, A, e, t) {
2001
+ return this.imp.DrawMText(D, C, B, F, A, e, t);
1936
2002
  }
1937
- DrawText(D, C, B, F, A, t, e) {
1938
- return this.imp.DrawTextDrawText(D, C, B, F, A, t, e);
2003
+ DrawText(D, C, B, F, A, e, t) {
2004
+ return this.imp.DrawTextDrawText(D, C, B, F, A, e, t);
1939
2005
  }
1940
2006
  DrawBlockReference(D, C, B, F, A) {
1941
2007
  return this.imp.DrawBlockReference(D, C, B, F, A);
1942
2008
  }
1943
- DrawDimAligned(D, C, B, F, A, t) {
1944
- return this.imp.DrawDimAligned(D, C, B, F, A, t);
2009
+ DrawDimAligned(D, C, B, F, A, e) {
2010
+ return this.imp.DrawDimAligned(D, C, B, F, A, e);
1945
2011
  }
1946
- DrawDimAngular(D, C, B, F, A, t, e, r) {
1947
- return this.imp.DrawDimAngular(D, C, B, F, A, t, e, r);
2012
+ DrawDimAngular(D, C, B, F, A, e, t, i) {
2013
+ return this.imp.DrawDimAngular(D, C, B, F, A, e, t, i);
1948
2014
  }
1949
2015
  DrawDimDiametric(D, C, B, F, A) {
1950
2016
  return this.imp.DrawDimDiametric(D, C, B, F, A);
1951
2017
  }
1952
- DrawDimRotated(D, C, B, F, A, t, e) {
1953
- return this.imp.DrawDimRotated(D, C, B, F, A, t, e);
2018
+ DrawDimRotated(D, C, B, F, A, e, t) {
2019
+ return this.imp.DrawDimRotated(D, C, B, F, A, e, t);
1954
2020
  }
1955
2021
  DrawDimOrdinate(D, C, B, F, A) {
1956
2022
  return this.imp.DrawDimOrdinate(D, C, B, F, A);
@@ -1986,28 +2052,28 @@ class q {
1986
2052
  return this.imp.DrawEntity(D.getImp());
1987
2053
  }
1988
2054
  ObjectIdToObject(D) {
1989
- return i.App.ObjectIdToObject(D);
2055
+ return r.App.ObjectIdToObject(D);
1990
2056
  }
1991
2057
  DestroyObject(D) {
1992
- !D || i.App.getImp().DestroyObject(D);
2058
+ !D || r.App.getImp().DestroyObject(D);
1993
2059
  }
1994
2060
  GetAllLayoutName() {
1995
- return new vD(this.imp.GetAllLayoutName());
2061
+ return new ID(this.imp.GetAllLayoutName());
1996
2062
  }
1997
2063
  SetCurrentLayout(D) {
1998
2064
  this.imp.SetCurrentLayout(P.encodeToGb2312(D));
1999
2065
  }
2000
2066
  GetMxCpp() {
2001
- return i;
2067
+ return r;
2002
2068
  }
2003
2069
  docCoord2Cad(D) {
2004
- return new a(this.imp.mxdrawObject.docCoord2Cad(D.x, D.y, D.z));
2070
+ return new o(this.imp.mxdrawObject.docCoord2Cad(D.x, D.y, D.z));
2005
2071
  }
2006
2072
  }
2007
- class HD {
2073
+ class _D {
2008
2074
  imp;
2009
2075
  init(D) {
2010
- 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), j.kIdentity = new j();
2076
+ 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), o.kOrigin = new o(0, 0, 0), I.kIdentity = new I();
2011
2077
  }
2012
2078
  getImp() {
2013
2079
  return this.imp;
@@ -2016,15 +2082,15 @@ class HD {
2016
2082
  return this.imp.getLastCallResult();
2017
2083
  }
2018
2084
  CreateMxCAD(D, C, B, F, A) {
2019
- let t = this.imp.CreateMxDraw(D, C, B, F, A);
2020
- return new q(t);
2085
+ let e = this.imp.CreateMxDraw(D, C, B, F, A);
2086
+ return new $(e);
2021
2087
  }
2022
2088
  DestroyObject(D) {
2023
2089
  this.imp.DestroyObject(D);
2024
2090
  }
2025
2091
  GetCurrentMxCAD() {
2026
2092
  let D = this.imp.GetCurrentMxDraw();
2027
- return D.McObject || (D.McObject = new q(this.imp.GetCurrentMxDraw())), D.McObject;
2093
+ return D.McObject || (D.McObject = new $(this.imp.GetCurrentMxDraw())), D.McObject;
2028
2094
  }
2029
2095
  mcedRGB2Index(D, C, B, F = !0) {
2030
2096
  return this.imp.mcedRGB2Index(D, C, B, F);
@@ -2038,37 +2104,37 @@ class HD {
2038
2104
  let C = this.imp.ObjectIdToObjectName(D);
2039
2105
  if (C == "McDbLine") {
2040
2106
  let B = this.imp.ObjectIdToMdDbLine(D);
2041
- return new DD(B);
2107
+ return new CD(B);
2042
2108
  } else if (C == "McDbText") {
2043
2109
  let B = this.imp.ObjectIdToMdDbText(D);
2044
- return new uD(B);
2110
+ return new lD(B);
2045
2111
  } else if (C == "McDbPolyline") {
2046
2112
  let B = this.imp.ObjectIdToMdDbPolyline(D);
2047
- return new BD(B);
2113
+ return new ED(B);
2048
2114
  } else if (C == "McDbCircle") {
2049
2115
  let B = this.imp.ObjectIdToMdDbCircle(D);
2050
- return new V(B);
2116
+ return new U(B);
2051
2117
  } else if (C == "McDbArc") {
2052
2118
  let B = this.imp.ObjectIdToMdDbArc(D);
2053
- return new ED(B);
2119
+ return new FD(B);
2054
2120
  } else if (C == "McDbBlockReference") {
2055
2121
  let B = this.imp.ObjectIdToMdDbBlockReference(D);
2056
- return new lD(B);
2122
+ return new cD(B);
2057
2123
  } else if (C == "McDbAlignedDimension") {
2058
2124
  let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
2059
- return new cD(B);
2125
+ return new mD(B);
2060
2126
  } else if (C == "McDbRotatedDimension") {
2061
2127
  let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
2062
- return new mD(B);
2128
+ return new pD(B);
2063
2129
  } else if (C == "McDbMText") {
2064
2130
  let B = this.imp.ObjectIdToMdDbMText(D);
2065
- return new CD(B);
2131
+ return new BD(B);
2066
2132
  } else if (C == "McDbEllipse") {
2067
2133
  let B = this.imp.ObjectIdToMdDbEllipse(D);
2068
- return new AD(B);
2134
+ return new eD(B);
2069
2135
  } else if (C == "McDbPoint") {
2070
2136
  let B = this.imp.ObjectIdToMdDbPoint(D);
2071
- return new hD(B);
2137
+ return new wD(B);
2072
2138
  } else if (this.imp.ObjectIdIsKindOf(D, "McDbCurve")) {
2073
2139
  let B = this.imp.ObjectIdToMdDbCurve(D);
2074
2140
  return new W(B);
@@ -2077,14 +2143,14 @@ class HD {
2077
2143
  return new G(B);
2078
2144
  } else {
2079
2145
  let B = this.imp.ObjectIdToMdObject(D);
2080
- return new I(B);
2146
+ return new j(B);
2081
2147
  }
2082
2148
  }
2083
2149
  CreateCloneObject(D) {
2084
2150
  if (!D)
2085
2151
  return null;
2086
2152
  let C = D.getObjectName(), B = null;
2087
- return C == "McDbLine" ? B = new DD() : C == "McDbText" ? B = new uD() : C == "McDbPolyline" ? B = new BD() : C == "McDbCircle" ? B = new V() : C == "McDbArc" ? B = new ED() : C == "McDbBlockReference" ? B = new lD() : C == "McDbAlignedDimension" ? B = new cD() : C == "McDbRotatedDimension" ? B = new mD() : C == "McDbMText" ? B = new CD() : D.isKindOf("McDbCurve") ? (B = new W(), 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 I(D);
2153
+ return C == "McDbLine" ? B = new CD() : C == "McDbText" ? B = new lD() : C == "McDbPolyline" ? B = new ED() : C == "McDbCircle" ? B = new U() : C == "McDbArc" ? B = new FD() : C == "McDbBlockReference" ? B = new cD() : C == "McDbAlignedDimension" ? B = new mD() : C == "McDbRotatedDimension" ? B = new pD() : C == "McDbMText" ? B = new BD() : D.isKindOf("McDbCurve") ? (B = new W(), B.initTempObject(new r.mxcadassemblyimp.MdDbCurve())) : D.isKindOf("McDbEntity") && (B = new G(), B.initTempObject(new r.mxcadassemblyimp.MdDbEntity())), B ? (B.getImp().ConnectionTempObject(D), r.App.DestroyObject(D), B) : new j(D);
2088
2154
  }
2089
2155
  setFontFilePath(D) {
2090
2156
  this.imp.setFontFilePath(D);
@@ -2095,9 +2161,9 @@ class HD {
2095
2161
  });
2096
2162
  }
2097
2163
  }
2098
- class ND {
2164
+ class qD {
2099
2165
  mxcadassemblyimp;
2100
- App = new HD();
2166
+ App = new _D();
2101
2167
  getCallResult() {
2102
2168
  return this.App.getLastCallResult();
2103
2169
  }
@@ -2106,7 +2172,7 @@ class ND {
2106
2172
  let F = D.z || 0;
2107
2173
  D = h.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
2108
2174
  }
2109
- let B = new a();
2175
+ let B = new o();
2110
2176
  return D && D.x && D.y && (B.x = D.x, B.y = D.y, D.z && (B.y = D.z)), B;
2111
2177
  }
2112
2178
  GetCurrentMxCAD() {
@@ -2116,43 +2182,43 @@ class ND {
2116
2182
  return this.App.GetCurrentMxCAD().GetDatabase();
2117
2183
  }
2118
2184
  }
2119
- const yD = "1.0.80", bC = "SharedArrayBuffer" in window, eD = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), xC = (E, D = self.location.href) => eD ? `https://unpkg.com/mxcad@${yD}/dist/wasm/2d-st/${E}` : D + E, fC = (E, D = self.location.href) => eD ? `https://unpkg.com/mxcad@${yD}/dist/wasm/2d/${E}` : D + E, MC = (E, D = self.location.href) => eD ? `https://unpkg.com/mxcad@${yD}/dist/wasm/3d/${E}` : D + E, _D = (E) => new Promise((D, C) => {
2185
+ const gD = "1.0.81", xC = "SharedArrayBuffer" in window, iD = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), bC = (E, D = self.location.href) => iD ? `https://unpkg.com/mxcad@${gD}/dist/wasm/2d-st/${E}` : D + E, MC = (E, D = self.location.href) => iD ? `https://unpkg.com/mxcad@${gD}/dist/wasm/2d/${E}` : D + E, PC = (E, D = self.location.href) => iD ? `https://unpkg.com/mxcad@${gD}/dist/wasm/3d/${E}` : D + E, ZD = (E) => new Promise((D, C) => {
2120
2186
  const B = document.createElement("script");
2121
2187
  B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
2122
2188
  D();
2123
2189
  }, B.onerror = (F) => {
2124
2190
  C(F);
2125
2191
  };
2126
- }), PC = async (E, D, C) => {
2192
+ }), TC = async (E, D, C) => {
2127
2193
  const { locateFile: B } = C, F = B(E + ".js");
2128
- return await _D(F), await globalThis[D](C);
2194
+ return await ZD(F), await globalThis[D](C);
2129
2195
  };
2130
- let i;
2131
- async function qD(E, D = bC || !eD ? xC : fC, C, B, F) {
2132
- return new Promise(async (A, t) => {
2196
+ let r;
2197
+ async function $D(E, D = xC || !iD ? bC : MC, C, B, F) {
2198
+ return new Promise(async (A, e) => {
2133
2199
  try {
2134
- if (i || (i = new ND()), i.mxcadassemblyimp)
2135
- return E && E(i), A(i);
2136
- const r = await PC("mxdrawassembly_min", "mxdrawassembly", {
2200
+ if (r || (r = new qD()), r.mxcadassemblyimp)
2201
+ return E && E(r), A(r);
2202
+ const i = await TC("mxdrawassembly_min", "mxdrawassembly", {
2137
2203
  locateFile: D,
2138
2204
  wasmBinary: C
2139
2205
  });
2140
- i.mxcadassemblyimp = r;
2141
- let s = new r.McApp();
2142
- B && s.setFontFilePath(B), s.Init(), i.App.init(s), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
2143
- } catch (e) {
2144
- t(e);
2206
+ r.mxcadassemblyimp = i;
2207
+ let s = new i.McApp();
2208
+ B && s.setFontFilePath(B), s.Init(), r.App.init(s), F && r.App.addNetworkLoadingFont(F), E && E(r), A(r);
2209
+ } catch (t) {
2210
+ e(t);
2145
2211
  }
2146
2212
  });
2147
2213
  }
2148
- const TC = (E) => {
2214
+ const kC = (E) => {
2149
2215
  let D = null;
2150
2216
  if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
2151
2217
  return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
2152
- }, kC = (E, D) => new Promise((C, B) => {
2218
+ }, RC = (E, D) => new Promise((C, B) => {
2153
2219
  try {
2154
2220
  h.createMxObject({
2155
- canvasId: TC(E),
2221
+ canvasId: kC(E),
2156
2222
  isCPPMxCAD: !0,
2157
2223
  userIdentitySign: D,
2158
2224
  callback(F) {
@@ -2164,28 +2230,28 @@ const TC = (E) => {
2164
2230
  } catch (F) {
2165
2231
  B(F);
2166
2232
  }
2167
- }), RC = async (E) => {
2168
- PD.state.MxFun || await iC();
2169
- const { multipleSelect: D, openParameter: C, networkFonts: B, fontspath: F, locateFile: A, wasmBinary: t, canvas: e, userIdentitySign: r, onOpenFileComplete: s, fileUrl: o, onInit: u = () => {
2233
+ }), OC = async (E) => {
2234
+ PD.state.MxFun || await sC();
2235
+ const { multipleSelect: D, openParameter: C, networkFonts: B, fontspath: F, locateFile: A, wasmBinary: e, canvas: t, userIdentitySign: i, onOpenFileComplete: s, fileUrl: a, onInit: u = () => {
2170
2236
  h.setIniset({
2171
2237
  EnableIntelliSelect: !0,
2172
2238
  IntelliSelectType: 1,
2173
2239
  multipleSelect: !!D
2174
2240
  });
2175
2241
  } } = E || {};
2176
- await qD(() => {
2177
- }, A, t, F, B), u();
2178
- let l = await kC(e, r);
2242
+ await $D(() => {
2243
+ }, A, e, F, B), u();
2244
+ let l = await RC(t, i);
2179
2245
  const m = h.getMxFunTHREE();
2180
2246
  let n = new m.Vector2();
2181
2247
  l.getRenderer().getSize(n);
2182
- const c = i.App.CreateMxCAD(n.width, n.height, l.getCanvas().id, l.isWebgl2(), l.getId());
2248
+ const c = r.App.CreateMxCAD(n.width, n.height, l.getCanvas().id, l.isWebgl2(), l.getId());
2183
2249
  return l.initMxCpp(c), l.addEvent("openFileComplete", () => {
2184
2250
  s && s();
2185
- }), o && c.openWebFile(o, void 0, !0, C), c;
2251
+ }), a && c.openWebFile(a, void 0, !0, C), c;
2186
2252
  };
2187
- async function SC() {
2188
- const E = new S();
2253
+ async function LC() {
2254
+ const E = new O();
2189
2255
  E.setMessage(`
2190
2256
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2191
2257
  let D = await E.go();
@@ -2195,7 +2261,7 @@ async function SC() {
2195
2261
  if (C.length <= 0)
2196
2262
  return;
2197
2263
  let B = h.screenCoordLong2Doc(50);
2198
- C = Y.b64Encode(C);
2264
+ C = Q.b64Encode(C);
2199
2265
  const F = {
2200
2266
  postx: D.x,
2201
2267
  posty: D.y,
@@ -2204,77 +2270,77 @@ async function SC() {
2204
2270
  };
2205
2271
  h.call("Mx_Text", F);
2206
2272
  }
2207
- class OC extends TD {
2273
+ class vC extends TD {
2208
2274
  getGripPoints() {
2209
2275
  const { x: D, y: C, z: B } = this.center;
2210
- 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);
2211
- return [this.center, F, A, t, e];
2276
+ 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);
2277
+ return [this.center, F, A, e, t];
2212
2278
  }
2213
2279
  moveGripPointsAt(D, C) {
2214
- const [B, F, A, t, e] = this.getGripPoints();
2215
- 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;
2280
+ const [B, F, A, e, t] = this.getGripPoints();
2281
+ 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;
2216
2282
  }
2217
2283
  }
2218
- const wD = (E) => {
2219
- 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, m = 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), c = F * r - e * A - F * u + o * A + e * u - o * r, g = -(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), f = F * F + A * A + t * t - e * e - r * r - s * s, x = 2 * (o - F), w = 2 * (u - A), M = 2 * (l - t), L = F * F + A * A + t * t - o * o - u * u - l * l, J = -(n * d * L - n * M * f - p * c * L + p * M * g + w * c * f - w * d * g) / (m * p * M - m * w * d - b * n * M + b * w * c + x * n * d - x * p * c), CC = (m * d * L - m * M * f - b * c * L + b * M * g + x * c * f - x * d * g) / (m * p * M - m * w * d - b * n * M + b * w * c + x * n * d - x * p * c), BC = -(m * p * L - m * w * f - b * n * L + b * w * g + x * n * f - x * p * g) / (m * p * M - m * w * d - b * n * M + b * w * c + x * n * d - x * p * c);
2220
- return new THREE.Vector3(J, CC, BC);
2284
+ const xD = (E) => {
2285
+ const [D, C, B] = E, { x: F, y: A, z: e } = D, { x: t, y: i, z: s } = C, { x: a, y: u, z: l } = B, m = A * s - i * e - A * l + u * e + i * l - u * s, n = -(F * s - t * e - F * l + a * e + t * l - a * s), c = F * i - t * A - F * u + a * A + t * u - a * i, w = -(F * i * l - F * u * s - t * A * l + t * u * e + a * A * s - a * i * e), f = 2 * (t - F), p = 2 * (i - A), d = 2 * (s - e), b = F * F + A * A + e * e - t * t - i * i - s * s, x = 2 * (a - F), g = 2 * (u - A), M = 2 * (l - e), v = F * F + A * A + e * e - a * a - u * u - l * l, Y = -(n * d * v - n * M * b - p * c * v + p * M * w + g * c * b - g * d * w) / (m * p * M - m * g * d - f * n * M + f * g * c + x * n * d - x * p * c), EC = (m * d * v - m * M * b - f * c * v + f * M * w + x * c * b - x * d * w) / (m * p * M - m * g * d - f * n * M + f * g * c + x * n * d - x * p * c), FC = -(m * p * v - m * g * b - f * n * v + f * g * w + x * n * b - x * p * w) / (m * p * M - m * g * d - f * n * M + f * g * c + x * n * d - x * p * c);
2286
+ return new THREE.Vector3(Y, EC, FC);
2221
2287
  };
2222
- function ZD() {
2223
- const E = new S();
2224
- let D = new OC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2225
- v.use(D), D.closed = !1, D.setColor(C);
2288
+ function JD() {
2289
+ const E = new O();
2290
+ let D = new vC(), C = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2291
+ S.use(D), D.closed = !1, D.setColor(C);
2226
2292
  let B = 0, F = "default", A = !0;
2227
- const t = () => {
2293
+ const e = () => {
2228
2294
  E.setUserDraw(
2229
2295
  (n, c) => {
2230
2296
  D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, c.drawCustomEntity(D), c.drawLine(D.center, n);
2231
2297
  }
2232
2298
  );
2233
- }, e = (n) => {
2299
+ }, t = (n) => {
2234
2300
  if (F === "default") {
2235
2301
  if (n === T.kOk) {
2236
2302
  if (B === 0)
2237
2303
  E.setMessage(`
2238
- \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), t();
2304
+ \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), e();
2239
2305
  else if (B === 1)
2240
- return i.GetCurrentMxCAD().DrawEntity(new V(D.center.x, D.center.y, 0, D.radius)), !0;
2306
+ return r.GetCurrentMxCAD().DrawEntity(new U(D.center.x, D.center.y, 0, D.radius)), !0;
2241
2307
  B++;
2242
2308
  }
2243
- n === T.kKeyWord && E.isKeyWordPicked("D") && (A = !1, t(), E.setMessage(`
2309
+ n === T.kKeyWord && E.isKeyWordPicked("D") && (A = !1, e(), E.setMessage(`
2244
2310
  \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
2245
2311
  }
2246
2312
  };
2247
- let r = [];
2313
+ let i = [];
2248
2314
  const s = (n) => {
2249
2315
  if (F === "3P" && (E.setMessage(`
2250
2316
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === T.kOk)) {
2251
- if (B === 0 && (r.push(E.value()), E.setUserDraw((c, g) => {
2252
- g.drawLine(r[0], c);
2317
+ if (B === 0 && (i.push(E.value()), E.setUserDraw((c, w) => {
2318
+ w.drawLine(i[0], c);
2253
2319
  }), E.setMessage(`
2254
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((c, g) => {
2255
- const [b, p] = r, d = c;
2256
- D.center = wD([
2257
- b,
2320
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (i.push(E.value()), E.setUserDraw((c, w) => {
2321
+ const [f, p] = i, d = c;
2322
+ D.center = xD([
2323
+ f,
2258
2324
  p,
2259
2325
  d
2260
- ]), D.radius = D.center.distanceTo(b), g.drawCustomEntity(D);
2326
+ ]), D.radius = D.center.distanceTo(f), w.drawCustomEntity(D);
2261
2327
  }), E.setMessage(`
2262
2328
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), B === 2)
2263
- return r.push(E.value()), D.center = wD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new V(D.center.x, D.center.y, 0, D.radius)), !0;
2329
+ return i.push(E.value()), D.center = xD(i), D.radius = D.center.distanceTo(i[0]), r.GetCurrentMxCAD().DrawEntity(new U(D.center.x, D.center.y, 0, D.radius)), !0;
2264
2330
  B++;
2265
2331
  }
2266
2332
  };
2267
- let o;
2333
+ let a;
2268
2334
  const u = (n, c) => {
2269
2335
  new THREE.Line3(n, c).getCenter(D.center), D.radius = c.distanceTo(n) / 2;
2270
2336
  }, l = (n) => {
2271
2337
  if (F === "2P" && (E.setMessage(`
2272
2338
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === T.kOk)) {
2273
- if (B === 0 && (o = E.value(), E.setUserDraw((c, g) => {
2274
- u(o, c), g.drawCustomEntity(D), g.drawLine(o, c);
2339
+ if (B === 0 && (a = E.value(), E.setUserDraw((c, w) => {
2340
+ u(a, c), w.drawCustomEntity(D), w.drawLine(a, c);
2275
2341
  }), E.setMessage(`
2276
2342
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), B === 1)
2277
- return u(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new V(D.center.x, D.center.y, 0, D.radius)), !0;
2343
+ return u(a, E.value()), r.GetCurrentMxCAD().DrawEntity(new U(D.center.x, D.center.y, 0, D.radius)), !0;
2278
2344
  B++;
2279
2345
  }
2280
2346
  }, m = (n) => {
@@ -2295,7 +2361,7 @@ function ZD() {
2295
2361
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
2296
2362
  ), E.setKeyWords("3P 2P T"), E.goWhile(
2297
2363
  (n) => {
2298
- if (n === T.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), e(n))
2364
+ if (n === T.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), t(n))
2299
2365
  return { exit: !0 };
2300
2366
  if (s(n))
2301
2367
  return { exit: !0 };
@@ -2305,20 +2371,20 @@ function ZD() {
2305
2371
  return { exit: !0 };
2306
2372
  },
2307
2373
  (n) => {
2308
- n === T.kCancel && i.GetCurrentMxCAD().DrawEntity(new V(D.center.x, D.center.y, 0, D.radius));
2374
+ n === T.kCancel && r.GetCurrentMxCAD().DrawEntity(new U(D.center.x, D.center.y, 0, D.radius));
2309
2375
  }
2310
2376
  );
2311
2377
  }
2312
2378
  h.on("init", () => {
2313
- h.addCommand("Mx_Circle", ZD);
2379
+ h.addCommand("Mx_Circle", JD);
2314
2380
  });
2315
2381
  const bD = () => PD.state.MxFun.stopRunCommand();
2316
2382
  function sD(E, D, C, B) {
2317
2383
  const F = E - C, A = D - B;
2318
- let t = 0;
2319
- 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;
2384
+ let e = 0;
2385
+ 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;
2320
2386
  }
2321
- const O = (E, D, C) => {
2387
+ const L = (E, D, C) => {
2322
2388
  const B = () => {
2323
2389
  E.go((F) => {
2324
2390
  if (F === T.kKeyWord && C() && B(), F === T.kOk && D() && B(), F === T.kNone && B(), F === T.kCancel)
@@ -2327,56 +2393,56 @@ const O = (E, D, C) => {
2327
2393
  };
2328
2394
  return B;
2329
2395
  };
2330
- async function $D() {
2331
- const E = new S();
2332
- let D = new X(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2396
+ async function YD() {
2397
+ const E = new O();
2398
+ let D = new DD(), C = r.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2333
2399
  E.setMessage(`
2334
2400
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
2335
2401
  let F = await E.go();
2336
2402
  if (!F)
2337
2403
  return;
2338
- E.setUserDraw((t, e) => {
2339
- e.setColor(C), B.forEach((r) => {
2340
- r.color = C, e.drawCustomEntity(r);
2341
- }), e.drawLine(F, t);
2404
+ E.setUserDraw((e, t) => {
2405
+ t.setColor(C), B.forEach((i) => {
2406
+ i.color = C, t.drawCustomEntity(i);
2407
+ }), t.drawLine(F, e);
2342
2408
  });
2343
2409
  const A = () => {
2344
2410
  E.setMessage(`
2345
2411
  \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)]");
2346
2412
  };
2347
2413
  A(), E.goWhile(
2348
- (t) => {
2349
- if (t === T.kOk && (D = new X(), v.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), t === T.kKeyWord) {
2414
+ (e) => {
2415
+ if (e === T.kOk && (D = new DD(), S.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), e === T.kKeyWord) {
2350
2416
  if (E.isKeyWordPicked("E"))
2351
2417
  bD();
2352
2418
  else if (E.isKeyWordPicked("C")) {
2353
- const e = new X();
2354
- return e.pt1 = F.clone(), e.pt2 = B[0].pt1.clone(), v.use(e), B.push(e), F = e.pt2.clone(), bD(), { exit: !0 };
2419
+ const t = new DD();
2420
+ return t.pt1 = F.clone(), t.pt2 = B[0].pt1.clone(), S.use(t), B.push(t), F = t.pt2.clone(), bD(), { exit: !0 };
2355
2421
  } else if (E.isKeyWordPicked("U")) {
2356
- const e = B.pop();
2357
- e && (F = e.pt1);
2422
+ const t = B.pop();
2423
+ t && (F = t.pt1);
2358
2424
  }
2359
2425
  }
2360
2426
  },
2361
- (t) => (t != T.kCancel && B.forEach((e) => {
2362
- i.GetCurrentMxCAD().DrawEntity(new DD(e.pt1.x, e.pt1.y, 0, e.pt2.x, e.pt2.y, 0));
2427
+ (e) => (e != T.kCancel && B.forEach((t) => {
2428
+ r.GetCurrentMxCAD().DrawEntity(new CD(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0));
2363
2429
  }), { exit: !0 })
2364
2430
  );
2365
2431
  }
2366
- async function LC() {
2367
- let E = new z();
2432
+ async function SC() {
2433
+ let E = new V();
2368
2434
  for (E.setMessage("\u6307\u5B9A\u70B9"); ; ) {
2369
2435
  let D = await E.go();
2370
2436
  if (D == null)
2371
2437
  break;
2372
- i.GetCurrentMxCAD().DrawEntity(new hD(D));
2438
+ r.GetCurrentMxCAD().DrawEntity(new wD(D));
2373
2439
  }
2374
2440
  }
2375
2441
  h.on("init", () => {
2376
- h.addCommand("Mx_Line", $D), h.addCommand("Mx_Point", LC);
2442
+ h.addCommand("Mx_Line", YD), h.addCommand("Mx_Point", SC);
2377
2443
  });
2378
- async function vC() {
2379
- const E = new S();
2444
+ async function IC() {
2445
+ const E = new O();
2380
2446
  E.setMessage(`
2381
2447
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2382
2448
  let D = await E.go();
@@ -2387,7 +2453,7 @@ async function vC() {
2387
2453
  if (C.length <= 0)
2388
2454
  return;
2389
2455
  let B = h.screenCoordLong2Doc(50);
2390
- C = Y.b64Encode(C);
2456
+ C = Q.b64Encode(C);
2391
2457
  const F = {
2392
2458
  postx: D.x,
2393
2459
  posty: D.y,
@@ -2396,11 +2462,11 @@ async function vC() {
2396
2462
  };
2397
2463
  h.call("Mx_MText", F);
2398
2464
  }
2399
- async function JD() {
2400
- const E = new S();
2401
- let D = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2402
- const C = new rC();
2403
- v.use(C), C.color = D, E.setMessage(`
2465
+ async function QD() {
2466
+ const E = new O();
2467
+ let D = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2468
+ const C = new nC();
2469
+ S.use(C), C.color = D, E.setMessage(`
2404
2470
  \u6307\u5B9A\u8D77\u70B9:`);
2405
2471
  let B;
2406
2472
  E.setUserDraw((F, A) => {
@@ -2416,59 +2482,59 @@ async function JD() {
2416
2482
  },
2417
2483
  (F) => {
2418
2484
  if (F != T.kCancel) {
2419
- let A = i.GetCurrentMxCAD(), t = new BD();
2420
- for (let e = 0; e < C.points.length; e++)
2421
- t.addVertexAt(C.points[e]);
2422
- A.DrawEntity(t);
2485
+ let A = r.GetCurrentMxCAD(), e = new ED();
2486
+ for (let t = 0; t < C.points.length; t++)
2487
+ e.addVertexAt(C.points[t]);
2488
+ A.DrawEntity(e);
2423
2489
  }
2424
2490
  }
2425
2491
  );
2426
2492
  }
2427
2493
  h.on("init", () => {
2428
- h.addCommand("Mx_Pline", JD);
2494
+ h.addCommand("Mx_Pline", QD);
2429
2495
  });
2430
- async function YD() {
2431
- const E = new S();
2496
+ async function XD() {
2497
+ const E = new O();
2432
2498
  E.setMessage(`
2433
2499
  \u6307\u5B9A\u4E00\u70B9:`);
2434
- let D = await E.go(), C = new V();
2500
+ let D = await E.go(), C = new U();
2435
2501
  C.setCenter(D.x, D.y, D.z);
2436
- let B = 5, F = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2437
- E.setUserDraw((A, t) => {
2438
- t.setColor(F), C.radius = D.distanceTo(A);
2439
- let e = C.getEndParam().val, s = C.getDistAtParam(e).val / B, o = 0, u = new THREE.Vector3(), l = new THREE.Vector3();
2502
+ let B = 5, F = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2503
+ E.setUserDraw((A, e) => {
2504
+ e.setColor(F), C.radius = D.distanceTo(A);
2505
+ let t = C.getEndParam().val, s = C.getDistAtParam(t).val / B, a = 0, u = new THREE.Vector3(), l = new THREE.Vector3();
2440
2506
  for (let m = 0; m < B; m++) {
2441
- let n = C.getPointAtDist(o).val;
2442
- o += s, m > 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), m == 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);
2507
+ let n = C.getPointAtDist(a).val;
2508
+ a += s, m > 0 ? e.drawMcDbLine(n.x, n.y, n.z, u.x, u.y, u.z) : l = new THREE.Vector3(n.x, n.y, n.z), m == B - 1 && e.drawMcDbLine(n.x, n.y, n.z, l.x, l.y, l.z), u = new THREE.Vector3(n.x, n.y, n.z);
2443
2509
  }
2444
2510
  }), E.setMessage(`
2445
2511
  \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
2446
2512
  }
2447
- h.addCommand("Mx_Polygon", YD);
2513
+ h.addCommand("Mx_Polygon", XD);
2448
2514
  function jC(E, D, C) {
2449
- 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, m = (B * B - F * F + (t * t - e * e)) / 2, n = (B * B - A * A + (t * t - r * r)) / 2, c = o * u - s * l, g = -(l * m - o * n) / c, b = -(s * n - u * m) / c;
2450
- return new THREE.Vector3(g, b, 0);
2515
+ const B = E.x, F = D.x, A = C.x, e = E.y, t = D.y, i = C.y, s = B - F, a = e - t, u = B - A, l = e - i, m = (B * B - F * F + (e * e - t * t)) / 2, n = (B * B - A * A + (e * e - i * i)) / 2, c = a * u - s * l, w = -(l * m - a * n) / c, f = -(s * n - u * m) / c;
2516
+ return new THREE.Vector3(w, f, 0);
2451
2517
  }
2452
- function IC(E, D) {
2518
+ function GC(E, D) {
2453
2519
  const C = E.x, B = E.y, F = D.x, A = D.y;
2454
2520
  return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
2455
2521
  }
2456
- function GC(E, D, C) {
2522
+ function VC(E, D, C) {
2457
2523
  let B;
2458
2524
  E < C ? B = C - E : B = C - E + 360;
2459
2525
  let F;
2460
2526
  return E < D ? F = D - E : F = D - E + 360, F > B;
2461
2527
  }
2462
2528
  function nD(E, D, C) {
2463
- const B = E.x, F = D.x, A = E.y, t = D.y;
2464
- let e, r, s;
2465
- 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), {
2466
- sin: e,
2467
- cos: r,
2529
+ const B = E.x, F = D.x, A = E.y, e = D.y;
2530
+ let t, i, s;
2531
+ return t = (A - e) / C, i = (B - F) / C, i >= 0.99999 && (i = 0.99999), i <= -0.99999 && (i = -0.99999), s = Math.acos(i), s = s / Math.PI * 180, t < -0.05 && (s = 360 - s), {
2532
+ sin: t,
2533
+ cos: i,
2468
2534
  angle: s
2469
2535
  };
2470
2536
  }
2471
- class gD extends TD {
2537
+ class fD extends TD {
2472
2538
  constructor() {
2473
2539
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
2474
2540
  }
@@ -2476,24 +2542,24 @@ class gD extends TD {
2476
2542
  return "MxDbCircle";
2477
2543
  }
2478
2544
  create() {
2479
- return new gD();
2545
+ return new fD();
2480
2546
  }
2481
2547
  getArcBulge(D, C, B) {
2482
2548
  const F = D.distanceTo(C);
2483
- let e = 2 * new THREE.Line3(D, C).getCenter(
2549
+ let t = 2 * new THREE.Line3(D, C).getCenter(
2484
2550
  new THREE.Vector3()
2485
2551
  ).distanceTo(B) / F;
2486
- 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;
2552
+ 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;
2487
2553
  }
2488
2554
  getArcMidPoint(D, C, B, F, A) {
2489
- const t = D, e = B * Math.PI / 180;
2490
- let r = F * Math.PI / 180;
2491
- const s = new THREE.Vector3(), o = new THREE.Vector3();
2492
- 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);
2555
+ const e = D, t = B * Math.PI / 180;
2556
+ let i = F * Math.PI / 180;
2557
+ const s = new THREE.Vector3(), a = new THREE.Vector3();
2558
+ s.x = e.x + C * Math.cos(t), s.y = e.y + C * Math.sin(t), a.x = e.x + C * Math.cos(i), a.y = e.y + C * Math.sin(i);
2493
2559
  const u = C;
2494
- (A ? B < F : B > F) && (r += Math.PI * 2);
2560
+ (A ? B < F : B > F) && (i += Math.PI * 2);
2495
2561
  const l = new THREE.Vector3();
2496
- 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];
2562
+ return l.x = e.x + u * Math.cos((t + i) / 2), l.y = e.y + u * Math.sin((t + i) / 2), [s, l, a, this.center];
2497
2563
  }
2498
2564
  getGripPoints() {
2499
2565
  return this.getArcMidPoint(
@@ -2512,25 +2578,25 @@ class gD extends TD {
2512
2578
  }
2513
2579
  upDatePoints(D, C, B) {
2514
2580
  D[C].add(B);
2515
- const [F, A, t] = D;
2516
- this.center = jC(F, t, A), this.radius = IC(A, this.center);
2517
- const e = nD(F, this.center, this.radius), r = nD(t, this.center, this.radius), s = nD(A, this.center, this.radius);
2518
- this.clockwise = GC(
2519
- r.angle,
2520
- e.angle,
2581
+ const [F, A, e] = D;
2582
+ this.center = jC(F, e, A), this.radius = GC(A, this.center);
2583
+ const t = nD(F, this.center, this.radius), i = nD(e, this.center, this.radius), s = nD(A, this.center, this.radius);
2584
+ this.clockwise = VC(
2585
+ i.angle,
2586
+ t.angle,
2521
2587
  s.angle
2522
- ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2588
+ ), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(i.angle);
2523
2589
  }
2524
2590
  }
2525
- async function QD() {
2526
- let E = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2527
- const D = new S();
2591
+ async function DC() {
2592
+ let E = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2593
+ const D = new O();
2528
2594
  D.setMessage(`
2529
2595
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
2530
- let C = new gD();
2531
- C.closed = !1, v.use(C);
2596
+ let C = new fD();
2597
+ C.closed = !1, S.use(C);
2532
2598
  let B, F, A;
2533
- const t = O(
2599
+ const e = L(
2534
2600
  D,
2535
2601
  () => {
2536
2602
  B = D.value(), D.setMessage(`
@@ -2540,44 +2606,44 @@ async function QD() {
2540
2606
  },
2541
2607
  () => {
2542
2608
  if (D.isKeyWordPicked("C")) {
2543
- const p = new Q();
2609
+ const p = new X();
2544
2610
  p.color = E, C.center = D.value(), p.center = D.value(), D.setMessage(`
2545
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), r();
2611
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), i();
2546
2612
  } else
2547
2613
  return !0;
2548
2614
  }
2549
2615
  );
2550
- let e;
2551
- const r = O(
2616
+ let t;
2617
+ const i = L(
2552
2618
  D,
2553
2619
  () => {
2554
- e = D.value(), A = new Q(), A.closed = !1, v.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2620
+ t = D.value(), A = new X(), A.closed = !1, S.use(A), A.color = E, A.center = t, C.center = t, D.setMessage(`
2555
2621
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((p, d) => {
2556
- d.drawCustomEntity(A), d.setColor(E), d.drawLine(e, p);
2622
+ d.drawCustomEntity(A), d.setColor(E), d.drawLine(t, p);
2557
2623
  }), u();
2558
2624
  },
2559
2625
  () => {
2560
2626
  }
2561
2627
  );
2562
- let s, o;
2563
- const u = O(
2628
+ let s, a;
2629
+ const u = L(
2564
2630
  D,
2565
2631
  () => {
2566
2632
  s = D.value(), A.endPoint = s, D.setMessage(
2567
2633
  `
2568
2634
  \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)]:`
2569
- ), D.setKeyWords("A L R"), o = new X(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((p, d) => {
2570
- A.startPoint = p, o.pt2 = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2635
+ ), D.setKeyWords("A L R"), a = new DD(), a.setDashLineDisplay(!0), a.setDashArray(0.05), a.setLineWidth(2), a.setColor("#ffd30d"), a.pt1 = A.center, D.setUserDraw((p, d) => {
2636
+ A.startPoint = p, a.pt2 = p, d.drawCustomEntity(A), d.drawCustomEntity(a);
2571
2637
  }), m();
2572
2638
  },
2573
2639
  () => {
2574
2640
  }
2575
2641
  );
2576
2642
  let l;
2577
- const m = O(
2643
+ const m = L(
2578
2644
  D,
2579
2645
  () => {
2580
- l = D.value(), A.startPoint = l, A.endPoint = s, g.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2646
+ l = D.value(), A.startPoint = l, A.endPoint = s, w.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2581
2647
  },
2582
2648
  () => {
2583
2649
  if (D.isKeyWordPicked("A"))
@@ -2585,14 +2651,14 @@ async function QD() {
2585
2651
  `
2586
2652
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2587
2653
  ), D.setKeyWords("R"), D.setUserDraw((p, d) => {
2588
- A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2654
+ A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(a);
2589
2655
  }), !0;
2590
2656
  if (D.isKeyWordPicked("L"))
2591
2657
  return D.setMessage(
2592
2658
  `
2593
2659
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2594
2660
  ), D.setKeyWords("R"), D.setUserDraw((p, d) => {
2595
- A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2661
+ A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(a);
2596
2662
  }), !0;
2597
2663
  if (D.isKeyWordPicked("R"))
2598
2664
  D.setMessage(
@@ -2606,36 +2672,36 @@ async function QD() {
2606
2672
  }
2607
2673
  );
2608
2674
  let n;
2609
- const c = O(
2675
+ const c = L(
2610
2676
  D,
2611
2677
  () => {
2612
2678
  n = D.value(), D.setMessage(`
2613
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new sC(), F.color = E, F.autoClockwise = !0, F.closed = !1, v.use(F), D.setUserDraw((p, d) => {
2679
+ \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new oC(), F.color = E, F.autoClockwise = !0, F.closed = !1, S.use(F), D.setUserDraw((p, d) => {
2614
2680
  F.point1 = B, F.point3 = n, F.point2 = p, d.drawCustomEntity(F);
2615
- }), b();
2681
+ }), f();
2616
2682
  },
2617
2683
  () => {
2618
2684
  if (D.isKeyWordPicked("C"))
2619
- A = new Q(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2685
+ A = new X(), A.closed = !1, S.use(A), A.color = E, D.setMessage(`
2620
2686
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2621
2687
  A.startPoint = B, d.drawLine(p, A.startPoint);
2622
- }), r();
2688
+ }), i();
2623
2689
  else if (D.isKeyWordPicked("E"))
2624
- A = new Q(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2690
+ A = new X(), A.closed = !1, S.use(A), A.color = E, D.setMessage(`
2625
2691
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2626
2692
  A.startPoint = B, d.drawLine(p, A.startPoint);
2627
- }), r();
2693
+ }), i();
2628
2694
  else
2629
2695
  return !0;
2630
2696
  }
2631
2697
  );
2632
- let g = i.GetCurrentMxCAD();
2633
- const b = O(
2698
+ let w = r.GetCurrentMxCAD();
2699
+ const f = L(
2634
2700
  D,
2635
2701
  () => {
2636
2702
  F.point1 = B, F.point2 = D.value(), F.point3 = n;
2637
- let p = new ED();
2638
- p.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), g.DrawEntity(p);
2703
+ let p = new FD();
2704
+ p.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), w.DrawEntity(p);
2639
2705
  },
2640
2706
  () => {
2641
2707
  if (D.isKeyWordPicked("C"))
@@ -2646,99 +2712,99 @@ async function QD() {
2646
2712
  return !0;
2647
2713
  }
2648
2714
  );
2649
- t();
2715
+ e();
2650
2716
  }
2651
2717
  h.on("init", () => {
2652
- h.addCommand("Mx_Arc", QD);
2718
+ h.addCommand("Mx_Arc", DC);
2653
2719
  });
2654
- function XD() {
2655
- const E = new S(), D = new nC();
2656
- D.closed = !1, v.use(D), E.setMessage(`
2720
+ function CC() {
2721
+ const E = new O(), D = new aC();
2722
+ D.closed = !1, S.use(D), E.setMessage(`
2657
2723
  \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2658
2724
  let C, B = new THREE.Vector3();
2659
- O(
2725
+ L(
2660
2726
  E,
2661
2727
  () => {
2662
- C = E.value(), E.setUserDraw((s, o) => {
2728
+ C = E.value(), E.setUserDraw((s, a) => {
2663
2729
  const u = new THREE.Line3(C, s);
2664
- u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = sD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2730
+ u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = sD(s.x, s.y, B.x, B.y), a.drawLine(s, C);
2665
2731
  }), E.setMessage(`
2666
2732
  \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
2667
2733
  },
2668
2734
  () => {
2669
2735
  }
2670
2736
  )();
2671
- const A = O(
2737
+ const A = L(
2672
2738
  E,
2673
2739
  () => {
2674
- E.setUserDraw((s, o) => {
2675
- D.yRadius = B.distanceTo(s), o.drawLine(B, s), o.drawCustomEntity(D);
2740
+ E.setUserDraw((s, a) => {
2741
+ D.yRadius = B.distanceTo(s), a.drawLine(B, s), a.drawCustomEntity(D);
2676
2742
  }), E.setMessage(`
2677
- \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), t();
2743
+ \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), e();
2678
2744
  },
2679
2745
  () => {
2680
2746
  }
2681
- ), t = O(
2747
+ ), e = L(
2682
2748
  E,
2683
2749
  () => {
2684
2750
  E.setMessage(`
2685
- \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2686
- D.startAngle = sD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2687
- }), e();
2751
+ \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, a) => {
2752
+ D.startAngle = sD(s.x, s.y, B.x, B.y) - D.rotation, a.drawLine(B, s), a.drawCustomEntity(D);
2753
+ }), t();
2688
2754
  },
2689
2755
  () => {
2690
2756
  }
2691
- ), e = O(
2757
+ ), t = L(
2692
2758
  E,
2693
2759
  () => {
2694
- E.setUserDraw((s, o) => {
2695
- D.endAngle = sD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2760
+ E.setUserDraw((s, a) => {
2761
+ D.endAngle = sD(s.x, s.y, B.x, B.y) - D.rotation, a.drawLine(B, s), a.drawCustomEntity(D);
2696
2762
  }), E.setMessage(`
2697
- \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
2763
+ \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), i();
2698
2764
  },
2699
2765
  () => {
2700
2766
  }
2701
- ), r = O(
2767
+ ), i = L(
2702
2768
  E,
2703
2769
  () => {
2704
2770
  let s = new y(D.xRadius, 0, 0);
2705
- s.rotateBy(D.rotation, y.kZAxis), i.GetCurrentMxCAD().DrawEntity(new AD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2771
+ s.rotateBy(D.rotation, y.kZAxis), r.GetCurrentMxCAD().DrawEntity(new eD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2706
2772
  },
2707
2773
  () => {
2708
2774
  }
2709
2775
  );
2710
2776
  }
2711
- function VC() {
2712
- const E = new S(), D = new oC(), C = new aC();
2713
- let B = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2777
+ function UC() {
2778
+ const E = new O(), D = new uC(), C = new lC();
2779
+ let B = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2714
2780
  C.setColor(B), E.setMessage(`
2715
2781
  \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2716
2782
  C.point1 = E.value(), D.setDraw((F) => {
2717
2783
  C.point2 = F, D.drawCustomEntity(C);
2718
2784
  }), E.setUserDraw(D), E.setMessage(`
2719
2785
  \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2720
- i.GetCurrentMxCAD().DrawEntity(new AD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2786
+ r.GetCurrentMxCAD().DrawEntity(new eD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2721
2787
  });
2722
2788
  });
2723
2789
  }
2724
2790
  h.on("init", () => {
2725
- h.addCommand("Mx_EllipseArc", XD), h.addCommand("Mx_Ellipse", VC);
2791
+ h.addCommand("Mx_EllipseArc", CC), h.addCommand("Mx_Ellipse", UC);
2726
2792
  });
2727
- async function DC() {
2728
- let E = U.getCurrentSelect();
2793
+ async function BC() {
2794
+ let E = z.getCurrentSelect();
2729
2795
  if (E.length > 0) {
2730
2796
  E.forEach((C) => {
2731
2797
  C.erase();
2732
2798
  });
2733
2799
  return;
2734
2800
  }
2735
- let D = new $();
2801
+ let D = new _();
2736
2802
  !await D.userSelect(`
2737
2803
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`) || D.forEach((C) => {
2738
2804
  C.erase();
2739
2805
  });
2740
2806
  }
2741
- function iD(E) {
2807
+ function rD(E) {
2742
2808
  let D, C;
2743
2809
  if (E.forEach((B) => {
2744
2810
  let F = B.getMcDbEntity();
@@ -2751,169 +2817,169 @@ function iD(E) {
2751
2817
  }
2752
2818
  async function WC() {
2753
2819
  let E;
2754
- for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2755
- let t = new $();
2756
- if (!await t.userSelect(`
2757
- \u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = t.getIds(), E.length == 0))
2820
+ for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2821
+ let e = new _();
2822
+ if (!await e.userSelect(`
2823
+ \u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = e.getIds(), E.length == 0))
2758
2824
  return;
2759
2825
  break;
2760
2826
  }
2761
2827
  let D, C;
2762
2828
  if (E.length >= 10) {
2763
- let t = iD(E);
2764
- t && (D = t.minPt, C = t.maxPt);
2829
+ let e = rD(E);
2830
+ e && (D = e.minPt, C = e.maxPt);
2765
2831
  }
2766
- let B = new z();
2832
+ let B = new V();
2767
2833
  B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2768
2834
  let F = await B.go();
2769
2835
  if (!F)
2770
2836
  return;
2771
- B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2837
+ B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((e, t) => {
2772
2838
  if (D && C) {
2773
- 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), m = new THREE.Vector3(u.x, o.y, 0);
2774
- e.drawLine(m, o), e.drawLine(o, l), e.drawLine(l, u), e.drawLine(u, m);
2839
+ let i = e.x - F.x, s = e.y - F.y, a = new THREE.Vector3(D.x + i, C.y + s, 0), u = new THREE.Vector3(C.x + i, D.y + s, 0), l = new THREE.Vector3(a.x, u.y, 0), m = new THREE.Vector3(u.x, a.y, 0);
2840
+ t.drawLine(m, a), t.drawLine(a, l), t.drawLine(l, u), t.drawLine(u, m);
2775
2841
  }
2776
- for (let r = 0; r < E.length && r < 10; r++) {
2777
- let s = E[r].clone();
2778
- !s || (s.Move(F, t), e.drawMcDbEntity(s));
2842
+ for (let i = 0; i < E.length && i < 10; i++) {
2843
+ let s = E[i].clone();
2844
+ !s || (s.Move(F, e), t.drawMcDbEntity(s));
2779
2845
  }
2780
2846
  });
2781
2847
  let A = await B.go();
2782
2848
  if (!!A)
2783
- for (let t = 0; t < E.length; t++) {
2784
- let e = E[t].clone();
2785
- !e || (e.Move(F, A), i.GetCurrentMxCAD().DrawEntity(e));
2849
+ for (let e = 0; e < E.length; e++) {
2850
+ let t = E[e].clone();
2851
+ !t || (t.Move(F, A), r.GetCurrentMxCAD().DrawEntity(t));
2786
2852
  }
2787
2853
  }
2788
- async function UC() {
2854
+ async function zC() {
2789
2855
  let E;
2790
- for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2791
- let t = new $();
2792
- if (!await t.userSelect(`
2793
- \u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = t.getIds(), E.length == 0))
2856
+ for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2857
+ let e = new _();
2858
+ if (!await e.userSelect(`
2859
+ \u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = e.getIds(), E.length == 0))
2794
2860
  return;
2795
2861
  break;
2796
2862
  }
2797
2863
  let D, C;
2798
2864
  if (E.length >= 10) {
2799
- let t = iD(E);
2800
- t && (D = t.minPt, C = t.maxPt);
2865
+ let e = rD(E);
2866
+ e && (D = e.minPt, C = e.maxPt);
2801
2867
  }
2802
- let B = new z();
2868
+ let B = new V();
2803
2869
  B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2804
2870
  let F = await B.go();
2805
2871
  if (!F)
2806
2872
  return;
2807
- B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2873
+ B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((e, t) => {
2808
2874
  if (D && C) {
2809
- 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), m = new THREE.Vector3(u.x, o.y, 0);
2810
- e.drawLine(m, o), e.drawLine(o, l), e.drawLine(l, u), e.drawLine(u, m);
2875
+ let i = e.x - F.x, s = e.y - F.y, a = new THREE.Vector3(D.x + i, C.y + s, 0), u = new THREE.Vector3(C.x + i, D.y + s, 0), l = new THREE.Vector3(a.x, u.y, 0), m = new THREE.Vector3(u.x, a.y, 0);
2876
+ t.drawLine(m, a), t.drawLine(a, l), t.drawLine(l, u), t.drawLine(u, m);
2811
2877
  }
2812
- for (let r = 0; r < E.length && r < 10; r++) {
2813
- let s = E[r].clone();
2814
- !s || (s.Move(F, t), e.drawMcDbEntity(s));
2878
+ for (let i = 0; i < E.length && i < 10; i++) {
2879
+ let s = E[i].clone();
2880
+ !s || (s.Move(F, e), t.drawMcDbEntity(s));
2815
2881
  }
2816
2882
  });
2817
2883
  let A = await B.go();
2818
2884
  if (!!A)
2819
- for (let t = 0; t < E.length; t++) {
2820
- let e = E[t].getMcDbObject();
2821
- !e || e.Move(F, A);
2885
+ for (let e = 0; e < E.length; e++) {
2886
+ let t = E[e].getMcDbObject();
2887
+ !t || t.Move(F, A);
2822
2888
  }
2823
2889
  }
2824
- async function zC() {
2890
+ async function KC() {
2825
2891
  let E;
2826
- for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2827
- let l = new $();
2892
+ for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2893
+ let l = new _();
2828
2894
  if (!await l.userSelect(`
2829
2895
  \u9009\u62E9\u65CB\u8F6C\u5BF9\u8C61`) || (E = l.getIds(), E.length == 0))
2830
2896
  return;
2831
2897
  break;
2832
2898
  }
2833
- let D, C, B = iD(E);
2899
+ let D, C, B = rD(E);
2834
2900
  B && (D = B.minPt, C = B.maxPt);
2835
- let F = new z();
2901
+ let F = new V();
2836
2902
  F.setMessage("\u6307\u5B9A\u57FA\u70B9");
2837
2903
  let A = await F.go();
2838
2904
  if (A == null)
2839
2905
  return;
2840
2906
  F.setMessage("\u6307\u5B9A\u65CB\u8F6C\u89D2\u5EA6"), F.setBasePt(A), F.setUseBasePt(!0), F.setUserDraw((l, m) => {
2841
- let n = l, c = A, b = n.sub(c).angleTo2(y.kXAxis, y.kNegateZAxis), p = new j();
2842
- if (p.setToRotation(b, y.kZAxis, c), D && C) {
2843
- let d = new a(D.x, C.y, 0), f = new a(C.x, D.y, 0), x = new a(d.x, f.y, 0), w = new a(f.x, d.y, 0);
2844
- d.transformBy(p), f.transformBy(p), x.transformBy(p), w.transformBy(p), m.drawLine(w.toVector3(), d.toVector3()), m.drawLine(d.toVector3(), x.toVector3()), m.drawLine(x.toVector3(), f.toVector3()), m.drawLine(f.toVector3(), w.toVector3());
2907
+ let n = l, c = A, f = n.sub(c).angleTo2(y.kXAxis, y.kNegateZAxis), p = new I();
2908
+ if (p.setToRotation(f, y.kZAxis, c), D && C) {
2909
+ let d = new o(D.x, C.y, 0), b = new o(C.x, D.y, 0), x = new o(d.x, b.y, 0), g = new o(b.x, d.y, 0);
2910
+ d.transformBy(p), b.transformBy(p), x.transformBy(p), g.transformBy(p), m.drawLine(g.toVector3(), d.toVector3()), m.drawLine(d.toVector3(), x.toVector3()), m.drawLine(x.toVector3(), b.toVector3()), m.drawLine(b.toVector3(), g.toVector3());
2845
2911
  }
2846
- c = i.GetCurrentMxCAD().docCoord2Cad(c), p.setToRotation(b, y.kZAxis, c);
2912
+ c = r.GetCurrentMxCAD().docCoord2Cad(c), p.setToRotation(f, y.kZAxis, c);
2847
2913
  for (let d = 0; d < E.length && d < 10; d++) {
2848
- let f = E[d].clone();
2849
- !f || (f.TransformBy(p), m.drawMcDbEntity(f));
2914
+ let b = E[d].clone();
2915
+ !b || (b.TransformBy(p), m.drawMcDbEntity(b));
2850
2916
  }
2851
2917
  });
2852
- let t = await F.go();
2853
- if (!t)
2918
+ let e = await F.go();
2919
+ if (!e)
2854
2920
  return;
2855
- let e = t, r = A, o = e.sub(r).angleTo2(y.kXAxis, y.kNegateZAxis), u = new j();
2856
- r = i.GetCurrentMxCAD().docCoord2Cad(r), u.setToRotation(o, y.kZAxis, r);
2921
+ let t = e, i = A, a = t.sub(i).angleTo2(y.kXAxis, y.kNegateZAxis), u = new I();
2922
+ i = r.GetCurrentMxCAD().docCoord2Cad(i), u.setToRotation(a, y.kZAxis, i);
2857
2923
  for (let l = 0; l < E.length; l++) {
2858
2924
  let m = E[l].getMcDbObject();
2859
2925
  !m || m.TransformBy(u);
2860
2926
  }
2861
2927
  }
2862
- async function KC() {
2928
+ async function HC() {
2863
2929
  let E;
2864
- for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2865
- let c = new $();
2930
+ for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2931
+ let c = new _();
2866
2932
  if (!await c.userSelect(`
2867
2933
  \u9009\u62E9\u7F29\u653E\u5BF9\u8C61`) || (E = c.getIds(), E.length == 0))
2868
2934
  return;
2869
2935
  break;
2870
2936
  }
2871
- let D, C, B = iD(E);
2937
+ let D, C, B = rD(E);
2872
2938
  if (!B)
2873
2939
  return;
2874
2940
  D = B.minPt, C = B.maxPt;
2875
- let F = C.x - D.x, A = C.y - D.y, t = (F + A) / 3;
2876
- t < 1e-5 && (t = 1);
2877
- let e = new z();
2878
- e.setMessage("\u6307\u5B9A\u57FA\u70B9");
2879
- let r = await e.go();
2880
- if (r == null)
2941
+ let F = C.x - D.x, A = C.y - D.y, e = (F + A) / 3;
2942
+ e < 1e-5 && (e = 1);
2943
+ let t = new V();
2944
+ t.setMessage("\u6307\u5B9A\u57FA\u70B9");
2945
+ let i = await t.go();
2946
+ if (i == null)
2881
2947
  return;
2882
- e.setMessage("\u6307\u5B9A\u6BD4\u4F8B\u56E0\u5B50"), e.setBasePt(r), e.setUseBasePt(!0), e.setUserDraw((c, g) => {
2883
- let b = new a(c), p = new a(r), d = b.distanceTo(p);
2948
+ t.setMessage("\u6307\u5B9A\u6BD4\u4F8B\u56E0\u5B50"), t.setBasePt(i), t.setUseBasePt(!0), t.setUserDraw((c, w) => {
2949
+ let f = new o(c), p = new o(i), d = f.distanceTo(p);
2884
2950
  if (d < 1e-5)
2885
2951
  return;
2886
- let f = d / t;
2887
- f > 1e5 && (f = 1e5);
2888
- let x = new j();
2889
- if (x.setToScaling(f, p), D && C) {
2890
- let w = new a(D.x, C.y, 0), M = new a(C.x, D.y, 0), L = new a(w.x, M.y, 0), J = new a(M.x, w.y, 0);
2891
- w.transformBy(x), M.transformBy(x), L.transformBy(x), J.transformBy(x), g.drawLine(J.toVector3(), w.toVector3()), g.drawLine(w.toVector3(), L.toVector3()), g.drawLine(L.toVector3(), M.toVector3()), g.drawLine(M.toVector3(), J.toVector3());
2952
+ let b = d / e;
2953
+ b > 1e5 && (b = 1e5);
2954
+ let x = new I();
2955
+ if (x.setToScaling(b, p), D && C) {
2956
+ let g = new o(D.x, C.y, 0), M = new o(C.x, D.y, 0), v = new o(g.x, M.y, 0), Y = new o(M.x, g.y, 0);
2957
+ g.transformBy(x), M.transformBy(x), v.transformBy(x), Y.transformBy(x), w.drawLine(Y.toVector3(), g.toVector3()), w.drawLine(g.toVector3(), v.toVector3()), w.drawLine(v.toVector3(), M.toVector3()), w.drawLine(M.toVector3(), Y.toVector3());
2892
2958
  }
2893
- p = i.GetCurrentMxCAD().docCoord2Cad(p), x.setToScaling(f, p);
2894
- for (let w = 0; w < E.length && w < 10; w++) {
2895
- let M = E[w].clone();
2896
- !M || (M.TransformBy(x), g.drawMcDbEntity(M));
2959
+ p = r.GetCurrentMxCAD().docCoord2Cad(p), x.setToScaling(b, p);
2960
+ for (let g = 0; g < E.length && g < 10; g++) {
2961
+ let M = E[g].clone();
2962
+ !M || (M.TransformBy(x), w.drawMcDbEntity(M));
2897
2963
  }
2898
2964
  });
2899
- let s = await e.go();
2965
+ let s = await t.go();
2900
2966
  if (!s)
2901
2967
  return;
2902
- let o = s, u = r, l = o.distanceTo(u);
2968
+ let a = s, u = i, l = a.distanceTo(u);
2903
2969
  if (l < 1e-5)
2904
2970
  return;
2905
- let m = l / t;
2971
+ let m = l / e;
2906
2972
  m > 1e5 && (m = 1e5);
2907
- let n = new j();
2908
- u = i.GetCurrentMxCAD().docCoord2Cad(u), n.setToScaling(m, u);
2973
+ let n = new I();
2974
+ u = r.GetCurrentMxCAD().docCoord2Cad(u), n.setToScaling(m, u);
2909
2975
  for (let c = 0; c < E.length; c++) {
2910
- let g = E[c].getMcDbObject();
2911
- !g || g.TransformBy(n);
2976
+ let w = E[c].getMcDbObject();
2977
+ !w || w.TransformBy(n);
2912
2978
  }
2913
2979
  }
2914
- async function HC() {
2915
- let E = new z();
2916
- E.setDisableOsnap(!0), E.setMessage("\u70B9\u53D6\u7F29\u653E\u533A\u57DF"), E.setDynamicInputType(MD.kDynTip);
2980
+ async function NC() {
2981
+ let E = new V();
2982
+ E.setDisableOsnap(!0), E.setMessage("\u70B9\u53D6\u7F29\u653E\u533A\u57DF"), E.setDynamicInputType(dD.kDynTip);
2917
2983
  let D = await E.go();
2918
2984
  if (D == null)
2919
2985
  return;
@@ -2923,12 +2989,12 @@ async function HC() {
2923
2989
  let C = await E.go();
2924
2990
  C != null && h.getCurrentDraw().zoomW(D.toVector3(), C.toVector3());
2925
2991
  }
2926
- async function NC() {
2927
- let E = i.GetCurrentDatabase().CurrentSpace().getBoundingBox();
2992
+ async function _C() {
2993
+ let E = r.GetCurrentDatabase().CurrentSpace().getBoundingBox();
2928
2994
  !E.ret || h.getCurrentDraw().zoomW(E.minPt.toVector3(), E.maxPt.toVector3());
2929
2995
  }
2930
- async function _C() {
2931
- const E = new KD();
2996
+ async function qC() {
2997
+ const E = new ND();
2932
2998
  E.setMessage(`
2933
2999
  \u6307\u5B9A\u504F\u79FB\u8DDD\u79BB\u6216:`);
2934
3000
  let D = await E.go();
@@ -2936,40 +3002,40 @@ async function _C() {
2936
3002
  return;
2937
3003
  let C = new tD();
2938
3004
  C.AddMcDbEntityTypes("LINE,CIRCLE,LWPOLYLINE,ARC");
2939
- let B = await U.selectEnt(`
3005
+ let B = await z.selectEnt(`
2940
3006
  \u9009\u62E9\u504F\u79FB\u5BF9\u8C61`, C, !1);
2941
3007
  if (B.length == 0)
2942
3008
  return;
2943
- const F = new z();
3009
+ const F = new V();
2944
3010
  F.setMessage(`
2945
3011
  \u6307\u5B9A\u8981\u504F\u79FB\u90A3\u4E00\u4FA7\u4E0A\u7684\u70B9:`), F.setDisableOsnap(!0);
2946
3012
  let A = await F.go();
2947
3013
  if (A == null)
2948
3014
  return;
2949
- let t = B[0].getMcDbCurve();
2950
- if (!t)
3015
+ let e = B[0].getMcDbCurve();
3016
+ if (!e)
2951
3017
  return;
2952
- let e = t.offsetCurves(D, A);
2953
- e.empty() || e.forEach((r) => {
2954
- i.GetCurrentMxCAD().DrawEntity(r);
3018
+ let t = e.offsetCurves(D, A);
3019
+ t.empty() || t.forEach((i) => {
3020
+ r.GetCurrentMxCAD().DrawEntity(i);
2955
3021
  });
2956
3022
  }
2957
- function qC() {
2958
- i.GetCurrentMxCAD().getImp().regen();
3023
+ function ZC() {
3024
+ r.GetCurrentMxCAD().getImp().regen();
2959
3025
  }
2960
3026
  h.on("init", () => {
2961
- h.addCommand("Mx_Erase", DC), h.addCommand("Mx_Copy", WC), h.addCommand("Mx_Move", UC), h.addCommand("Mx_Rotate", zC), h.addCommand("Mx_Scale", KC), h.addCommand("Mx_WindowZoom", HC), h.addCommand("Mx_ZoomE", NC), h.addCommand("Mx_Offset", _C), h.addCommand("Mx_Regen", qC);
3027
+ h.addCommand("Mx_Erase", BC), h.addCommand("Mx_Copy", WC), h.addCommand("Mx_Move", zC), h.addCommand("Mx_Rotate", KC), h.addCommand("Mx_Scale", HC), h.addCommand("Mx_WindowZoom", NC), h.addCommand("Mx_ZoomE", _C), h.addCommand("Mx_Offset", qC), h.addCommand("Mx_Regen", ZC);
2962
3028
  });
2963
- const ZC = async (E, D, C) => {
3029
+ const $C = async (E, D, C) => {
2964
3030
  const { locateFile: B } = C, F = B(E + ".js");
2965
- return await _D(F), await globalThis[D](C);
3031
+ return await ZD(F), await globalThis[D](C);
2966
3032
  };
2967
- function $C(E) {
3033
+ function JC(E) {
2968
3034
  return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
2969
3035
  }
2970
- function JC(E, D) {
3036
+ function YC(E, D) {
2971
3037
  const C = () => requestAnimationFrame(D);
2972
- let B = $C(C);
3038
+ let B = JC(C);
2973
3039
  if (B) {
2974
3040
  B.observe(E);
2975
3041
  return;
@@ -2979,7 +3045,7 @@ function JC(E, D) {
2979
3045
  return;
2980
3046
  }
2981
3047
  }
2982
- function YC(E, D) {
3048
+ function QC(E, D) {
2983
3049
  let C = null;
2984
3050
  return function(...B) {
2985
3051
  C || (C = setTimeout(() => {
@@ -2987,34 +3053,34 @@ function YC(E, D) {
2987
3053
  }, D));
2988
3054
  };
2989
3055
  }
2990
- class Z {
3056
+ class J {
2991
3057
  static onloadWasmMxDraw3dModel;
2992
3058
  canvas;
2993
3059
  constructor(D) {
2994
3060
  const C = () => {
2995
3061
  const u = this.canvas.parentElement?.clientWidth || window.innerWidth, l = this.canvas.parentElement?.clientHeight || window.innerHeight;
2996
3062
  let m = Math.min(u, window.screen.availWidth), n = Math.min(l, window.screen.availHeight);
2997
- m = Math.max(A, m), n = Math.max(t, n), this.canvas.style.width = m + 1 + "px", this.canvas.style.height = n + "px";
3063
+ m = Math.max(A, m), n = Math.max(e, n), this.canvas.style.width = m + 1 + "px", this.canvas.style.height = n + "px";
2998
3064
  const c = window.devicePixelRatio || 1;
2999
3065
  this.canvas.width = m * c, this.canvas.height = n * c;
3000
- }, B = YC(C, 50), {
3066
+ }, B = QC(C, 50), {
3001
3067
  canvas: F,
3002
3068
  minWidth: A = 300,
3003
- minHeight: t = 300,
3004
- updateCanvasSize: e = B,
3005
- ...r
3069
+ minHeight: e = 300,
3070
+ updateCanvasSize: t = B,
3071
+ ...i
3006
3072
  } = D;
3007
- let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
3008
- o == null && (o = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = o, r.canvas = this.canvas;
3009
- for (let u in r)
3010
- this[u] = r[u];
3073
+ let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, a = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
3074
+ a == null && (a = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = a, i.canvas = this.canvas;
3075
+ for (let u in i)
3076
+ this[u] = i[u];
3011
3077
  if (this.canvas instanceof HTMLCanvasElement) {
3012
3078
  const u = this.canvas.parentElement || document.body;
3013
- JC(u, e);
3079
+ YC(u, t);
3014
3080
  } else
3015
3081
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
3016
- window.onresize = C, C(), ZC("mxdraw3d_min", "mxdraw3d", this).then(() => {
3017
- Z.onloadWasmMxDraw3dModel && Z.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (u) => {
3082
+ window.onresize = C, C(), $C("mxdraw3d_min", "mxdraw3d", this).then(() => {
3083
+ J.onloadWasmMxDraw3dModel && J.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (u) => {
3018
3084
  const l = new FileReader();
3019
3085
  l.onload = () => {
3020
3086
  if (!!l.result && l.result instanceof ArrayBuffer) {
@@ -3027,12 +3093,12 @@ class Z {
3027
3093
  });
3028
3094
  }
3029
3095
  }
3030
- function QC(E, D) {
3096
+ function XC(E, D) {
3031
3097
  return new Promise(async (C, B) => {
3032
3098
  try {
3033
- E.locateFile || (E.locateFile = MC);
3034
- const F = new Z(E);
3035
- Z.onloadWasmMxDraw3dModel = () => {
3099
+ E.locateFile || (E.locateFile = PC);
3100
+ const F = new J(E);
3101
+ J.onloadWasmMxDraw3dModel = () => {
3036
3102
  C(F), D && D(F);
3037
3103
  };
3038
3104
  } catch (F) {
@@ -3040,155 +3106,157 @@ function QC(E, D) {
3040
3106
  }
3041
3107
  });
3042
3108
  }
3043
- const D9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3109
+ const C9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3044
3110
  __proto__: null,
3045
3111
  b64Encode: kD,
3046
3112
  b64Decode: RD,
3047
- saveAsFileDialog: SD,
3048
- downloadFile: OD,
3049
- downloadFileFromUrl: LD,
3050
- MxTools: Y,
3051
- McGePoint3d: a,
3113
+ saveAsFileDialog: OD,
3114
+ downloadFile: LD,
3115
+ downloadFileFromUrl: vD,
3116
+ MxTools: Q,
3117
+ McGePoint3d: o,
3052
3118
  McGeVector3d: y,
3053
- McGeMatrix3d: j,
3054
- McGeLongArray: lC,
3055
- McGeStringArray: vD,
3056
- McGePoint3dArray: cC,
3057
- getFilterImp: _,
3119
+ McGeMatrix3d: I,
3120
+ McGeLongArray: SD,
3121
+ McGeStringArray: ID,
3122
+ McGePoint3dArray: mC,
3123
+ getFilterImp: K,
3058
3124
  MxCADResbuf: tD,
3059
- MxCADUtilityClass: zD,
3060
- MxCADUtility: U,
3061
- MxCADSelectionSet: $,
3062
- MxCADUiPrBase: N,
3063
- MxCADUiPrPoint: z,
3064
- MxCADUiPrDist: KD,
3065
- MxCADUiPrAngle: hC,
3066
- MxCADUiPrInt: yC,
3125
+ MxCADUtilityClass: KD,
3126
+ MxCADUtility: z,
3127
+ MxCADSelectionSetStatus: HD,
3128
+ MxCADSelectionSet: _,
3129
+ MxCADUiPrBase: q,
3130
+ MxCADUiPrPoint: V,
3131
+ MxCADUiPrDist: ND,
3132
+ MxCADUiPrAngle: yC,
3133
+ MxCADUiPrInt: wC,
3067
3134
  MxCADUiPrKeyWord: gC,
3068
- MxCADUiPrString: wC,
3069
- McRxObject: K,
3135
+ MxCADUiPrString: fC,
3136
+ McRxObject: H,
3070
3137
  McObjectIdType: k,
3071
3138
  McObjectId: R,
3072
- McDbObject: I,
3073
- McDbObjectArray: oD,
3139
+ McDbObject: j,
3140
+ McDbObjectArray: aD,
3074
3141
  get McDb() {
3075
- return aD;
3142
+ return uD;
3076
3143
  },
3077
- McCmColor: H,
3078
- McDbLayerTableRecord: dC,
3144
+ McCmColor: N,
3145
+ McDbLayerTableRecord: hC,
3079
3146
  McDbLayerTable: jD,
3080
- McDbLinetypeTable: ID,
3081
- McDbTextStyleTable: GD,
3082
- McDbDatabase: pD,
3083
- McDbBlockTableRecordIterator: VD,
3084
- McDbBlockTableRecord: FD,
3147
+ McDbLinetypeTable: GD,
3148
+ McDbTextStyleTable: VD,
3149
+ McDbDatabase: hD,
3150
+ McDbBlockTableRecordIterator: UD,
3151
+ McDbBlockTableRecord: AD,
3085
3152
  McDbBlockTableIterator: WD,
3086
- McDbBlockTable: UD,
3153
+ McDbBlockTable: zD,
3087
3154
  McDbEntity: G,
3088
3155
  McDbCurve: W,
3089
- McDbLine: DD,
3090
- McDbText: uD,
3091
- McDbMText: CD,
3092
- McDbCircle: V,
3093
- McDbPolyline: BD,
3094
- McDbBlockReference: lD,
3095
- McDbDimension: dD,
3096
- McDbAlignedDimension: cD,
3097
- McDbRotatedDimension: mD,
3098
- McDbArc: ED,
3099
- McDbEllipse: AD,
3100
- McDbPoint: hD,
3101
- McObject: q,
3102
- McAppType: HD,
3103
- MxCppType: ND,
3156
+ McDbLine: CD,
3157
+ McDbText: lD,
3158
+ McDbMText: BD,
3159
+ McDbCircle: U,
3160
+ McDbPolyline: ED,
3161
+ McDbBlockReference: cD,
3162
+ McDbDimension: yD,
3163
+ McDbAlignedDimension: mD,
3164
+ McDbRotatedDimension: pD,
3165
+ McDbArc: FD,
3166
+ McDbEllipse: eD,
3167
+ McDbPoint: wD,
3168
+ McObject: $,
3169
+ McAppType: _D,
3170
+ MxCppType: qD,
3104
3171
  get MxCpp() {
3105
- return i;
3172
+ return r;
3106
3173
  },
3107
- loadMxCADassembly: qD,
3108
- createMxCad: RC,
3109
- drawText: SC,
3110
- drawCircle: ZD,
3111
- drawLine: $D,
3112
- drawMText: vC,
3113
- drawPolyLine: JD,
3114
- drawPolygon: YD,
3115
- drawArc: QD,
3116
- drawEllipticalArc: XD,
3117
- Mx_Erase: DC,
3118
- MxDraw3d: Z,
3119
- loadMxCADassembly3d: QC
3174
+ loadMxCADassembly: $D,
3175
+ createMxCad: OC,
3176
+ drawText: LC,
3177
+ drawCircle: JD,
3178
+ drawLine: YD,
3179
+ drawMText: IC,
3180
+ drawPolyLine: QD,
3181
+ drawPolygon: XD,
3182
+ drawArc: DC,
3183
+ drawEllipticalArc: CC,
3184
+ Mx_Erase: BC,
3185
+ MxDraw3d: J,
3186
+ loadMxCADassembly3d: XC
3120
3187
  }, Symbol.toStringTag, { value: "Module" }));
3121
3188
  export {
3122
- HD as McAppType,
3123
- H as McCmColor,
3124
- aD as McDb,
3125
- cD as McDbAlignedDimension,
3126
- ED as McDbArc,
3127
- lD as McDbBlockReference,
3128
- UD as McDbBlockTable,
3189
+ _D as McAppType,
3190
+ N as McCmColor,
3191
+ uD as McDb,
3192
+ mD as McDbAlignedDimension,
3193
+ FD as McDbArc,
3194
+ cD as McDbBlockReference,
3195
+ zD as McDbBlockTable,
3129
3196
  WD as McDbBlockTableIterator,
3130
- FD as McDbBlockTableRecord,
3131
- VD as McDbBlockTableRecordIterator,
3132
- V as McDbCircle,
3197
+ AD as McDbBlockTableRecord,
3198
+ UD as McDbBlockTableRecordIterator,
3199
+ U as McDbCircle,
3133
3200
  W as McDbCurve,
3134
- pD as McDbDatabase,
3135
- dD as McDbDimension,
3136
- AD as McDbEllipse,
3201
+ hD as McDbDatabase,
3202
+ yD as McDbDimension,
3203
+ eD as McDbEllipse,
3137
3204
  G as McDbEntity,
3138
3205
  jD as McDbLayerTable,
3139
- dC as McDbLayerTableRecord,
3140
- DD as McDbLine,
3141
- ID as McDbLinetypeTable,
3142
- CD as McDbMText,
3143
- I as McDbObject,
3144
- oD as McDbObjectArray,
3145
- hD as McDbPoint,
3146
- BD as McDbPolyline,
3147
- mD as McDbRotatedDimension,
3148
- uD as McDbText,
3149
- GD as McDbTextStyleTable,
3150
- lC as McGeLongArray,
3151
- j as McGeMatrix3d,
3152
- a as McGePoint3d,
3153
- cC as McGePoint3dArray,
3154
- vD as McGeStringArray,
3206
+ hC as McDbLayerTableRecord,
3207
+ CD as McDbLine,
3208
+ GD as McDbLinetypeTable,
3209
+ BD as McDbMText,
3210
+ j as McDbObject,
3211
+ aD as McDbObjectArray,
3212
+ wD as McDbPoint,
3213
+ ED as McDbPolyline,
3214
+ pD as McDbRotatedDimension,
3215
+ lD as McDbText,
3216
+ VD as McDbTextStyleTable,
3217
+ SD as McGeLongArray,
3218
+ I as McGeMatrix3d,
3219
+ o as McGePoint3d,
3220
+ mC as McGePoint3dArray,
3221
+ ID as McGeStringArray,
3155
3222
  y as McGeVector3d,
3156
- q as McObject,
3223
+ $ as McObject,
3157
3224
  R as McObjectId,
3158
3225
  k as McObjectIdType,
3159
- K as McRxObject,
3226
+ H as McRxObject,
3160
3227
  tD as MxCADResbuf,
3161
- $ as MxCADSelectionSet,
3162
- hC as MxCADUiPrAngle,
3163
- N as MxCADUiPrBase,
3164
- KD as MxCADUiPrDist,
3165
- yC as MxCADUiPrInt,
3228
+ _ as MxCADSelectionSet,
3229
+ HD as MxCADSelectionSetStatus,
3230
+ yC as MxCADUiPrAngle,
3231
+ q as MxCADUiPrBase,
3232
+ ND as MxCADUiPrDist,
3233
+ wC as MxCADUiPrInt,
3166
3234
  gC as MxCADUiPrKeyWord,
3167
- z as MxCADUiPrPoint,
3168
- wC as MxCADUiPrString,
3169
- U as MxCADUtility,
3170
- zD as MxCADUtilityClass,
3171
- i as MxCpp,
3172
- ND as MxCppType,
3173
- Z as MxDraw3d,
3174
- Y as MxTools,
3175
- DC as Mx_Erase,
3235
+ V as MxCADUiPrPoint,
3236
+ fC as MxCADUiPrString,
3237
+ z as MxCADUtility,
3238
+ KD as MxCADUtilityClass,
3239
+ r as MxCpp,
3240
+ qD as MxCppType,
3241
+ J as MxDraw3d,
3242
+ Q as MxTools,
3243
+ BC as Mx_Erase,
3176
3244
  RD as b64Decode,
3177
3245
  kD as b64Encode,
3178
- RC as createMxCad,
3179
- D9 as default,
3180
- OD as downloadFile,
3181
- LD as downloadFileFromUrl,
3182
- QD as drawArc,
3183
- ZD as drawCircle,
3184
- XD as drawEllipticalArc,
3185
- $D as drawLine,
3186
- vC as drawMText,
3187
- JD as drawPolyLine,
3188
- YD as drawPolygon,
3189
- SC as drawText,
3190
- _ as getFilterImp,
3191
- qD as loadMxCADassembly,
3192
- QC as loadMxCADassembly3d,
3193
- SD as saveAsFileDialog
3246
+ OC as createMxCad,
3247
+ C9 as default,
3248
+ LD as downloadFile,
3249
+ vD as downloadFileFromUrl,
3250
+ DC as drawArc,
3251
+ JD as drawCircle,
3252
+ CC as drawEllipticalArc,
3253
+ YD as drawLine,
3254
+ IC as drawMText,
3255
+ QD as drawPolyLine,
3256
+ XD as drawPolygon,
3257
+ LC as drawText,
3258
+ K as getFilterImp,
3259
+ $D as loadMxCADassembly,
3260
+ XC as loadMxCADassembly3d,
3261
+ OD as saveAsFileDialog
3194
3262
  };