mxcad 1.0.75 → 1.0.77

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