mxcad 1.0.73 → 1.0.75

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 k, MxCursorType as lD, MrxDbgUtils as cD, DynamicInputType as ZD, DetailedResult as X, store as mD, loadCoreCode as YD, MxPaintBrush as L, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as pD, MxDbLine as J, MxDbPolyline as QD, MxDbCircleArc as $, Mx3PointArc as XD, MxDbEllipseShape as DC, McEdGetPointWorldDrawObject as CC, MxDbEllipse as BC } from "mxdraw";
2
- function dD(E) {
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) {
3
3
  return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function hD(E) {
5
+ function MD(E) {
6
6
  return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function wD({
8
+ async function PD({
9
9
  blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
@@ -46,24 +46,24 @@ async function wD({
46
46
  console.error(B.name, B.message);
47
47
  }
48
48
  }
49
- function yD(E, D) {
49
+ function TD(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 gD(E, D) {
53
+ function kD(E, D) {
54
54
  fetch(E).then((C) => C.blob()).then((C) => {
55
55
  const B = document.createElement("a");
56
56
  B.href = window.URL.createObjectURL(C), B.download = D, B.click();
57
57
  });
58
58
  }
59
- const _ = {
60
- b64Encode: dD,
61
- b64Decode: hD,
62
- saveAsFileDialog: wD,
63
- downloadFile: yD,
64
- downloadFileFromUrl: gD
59
+ const J = {
60
+ b64Encode: fD,
61
+ b64Decode: MD,
62
+ saveAsFileDialog: PD,
63
+ downloadFile: TD,
64
+ downloadFileFromUrl: kD
65
65
  };
66
- class EC {
66
+ class AC {
67
67
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
68
68
  encodeToGb2312(D) {
69
69
  for (var C = "", B = 0; B < D.length; B++) {
@@ -112,12 +112,15 @@ class EC {
112
112
  return C;
113
113
  }
114
114
  }
115
- let g = new EC();
115
+ let P = new AC();
116
116
  class u {
117
117
  static kOrigin;
118
118
  imp;
119
119
  constructor(D, C, B) {
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);
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);
121
+ }
122
+ toVector3() {
123
+ return new THREE.Vector3(this.imp.x, this.imp.y, this.imp.z);
121
124
  }
122
125
  copy(D) {
123
126
  return this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z, this;
@@ -132,7 +135,7 @@ class u {
132
135
  return this.imp.subvec(D.imp), this;
133
136
  }
134
137
  sub(D) {
135
- return new w(this.imp.sub(D.imp));
138
+ return new y(this.imp.sub(D.imp));
136
139
  }
137
140
  distanceTo(D) {
138
141
  return this.imp.distanceTo(D.imp);
@@ -162,19 +165,20 @@ class u {
162
165
  this.imp.z = D;
163
166
  }
164
167
  }
165
- class w {
168
+ class y {
166
169
  static kXAxis;
167
170
  static kYAxis;
168
171
  static kZAxis;
172
+ static kNegateZAxis;
169
173
  imp;
170
174
  constructor(D, C, B) {
171
- 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);
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);
172
176
  }
173
177
  copy(D) {
174
178
  return this.imp.x = D.imp.x, this.imp.y = D.imp.y, this.imp.z = D.imp.z, this;
175
179
  }
176
180
  clone() {
177
- return new w(this.imp);
181
+ return new y(this.imp);
178
182
  }
179
183
  rotateBy(D, C) {
180
184
  return this.imp.rotateBy(D, C.imp), this;
@@ -207,7 +211,7 @@ class w {
207
211
  return this.imp.dotProduct(D.imp);
208
212
  }
209
213
  crossProduct(D) {
210
- let C = new w();
214
+ let C = new y();
211
215
  return C.imp = this.imp.crossProduct(D.imp), C;
212
216
  }
213
217
  isEqualTo(D) {
@@ -232,17 +236,17 @@ class w {
232
236
  this.imp.z = D;
233
237
  }
234
238
  }
235
- class U {
239
+ class I {
236
240
  static kIdentity;
237
241
  imp;
238
242
  constructor(D) {
239
- this.imp = i.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
243
+ this.imp = new r.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
240
244
  }
241
245
  copy(D) {
242
246
  return this.imp.copy(D.imp), this;
243
247
  }
244
248
  clone() {
245
- return new U(this.imp);
249
+ return new I(this.imp);
246
250
  }
247
251
  setToIdentity() {
248
252
  return this.imp.setToIdentity(), this;
@@ -290,10 +294,10 @@ class U {
290
294
  return this.imp.getData(D, C);
291
295
  }
292
296
  }
293
- class FC {
297
+ class tC {
294
298
  imp;
295
299
  constructor(D) {
296
- this.imp = new i.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
300
+ this.imp = new r.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
297
301
  }
298
302
  copy(D) {
299
303
  return this.imp.copy(D.imp), this;
@@ -311,10 +315,10 @@ class FC {
311
315
  this.imp.setAt(D, C);
312
316
  }
313
317
  }
314
- class bD {
318
+ class RD {
315
319
  imp;
316
320
  constructor(D) {
317
- this.imp = new i.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
321
+ this.imp = new r.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
318
322
  }
319
323
  copy(D) {
320
324
  return this.imp.copy(D.imp), this;
@@ -326,21 +330,21 @@ class bD {
326
330
  return this.imp.length();
327
331
  }
328
332
  at(D, C = !0) {
329
- return C ? g.decodeFromGb2312(this.imp.at(D)) : this.imp.at(D);
333
+ return C ? P.decodeFromGb2312(this.imp.at(D)) : this.imp.at(D);
330
334
  }
331
335
  setAt(D, C, B = !0) {
332
- B ? this.imp.setAt(D, g.encodeToGb2312(C)) : this.imp.setAt(D, C);
336
+ B ? this.imp.setAt(D, P.encodeToGb2312(C)) : this.imp.setAt(D, C);
333
337
  }
334
338
  forEach(D, C = !0) {
335
339
  let B = this.imp.length();
336
340
  for (let F = 0; F < B; F++)
337
- D(C ? g.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
341
+ D(C ? P.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
338
342
  }
339
343
  }
340
- class AC {
344
+ class eC {
341
345
  imp;
342
346
  constructor(D) {
343
- this.imp = new i.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
347
+ this.imp = new r.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
344
348
  }
345
349
  copy(D) {
346
350
  return this.imp.copy(D.imp), this;
@@ -358,13 +362,13 @@ class AC {
358
362
  this.imp.setAt(D, C.imp);
359
363
  }
360
364
  }
361
- const tC = new FinalizationRegistry((E) => {
362
- i.App.DestroyObject(E);
363
- }), eC = {};
364
- class j {
365
+ const iC = new FinalizationRegistry((E) => {
366
+ r.App.DestroyObject(E);
367
+ }), rC = {};
368
+ class V {
365
369
  imp = 0;
366
370
  constructor(D) {
367
- this.imp = D, this.imp && tC.register(this, D, eC);
371
+ this.imp = D, this.imp && iC.register(this, D, rC);
368
372
  }
369
373
  getImp() {
370
374
  return this.imp;
@@ -380,15 +384,18 @@ class j {
380
384
  }
381
385
  getJson() {
382
386
  let D = this.imp.getJson();
383
- return g.decodeFromGb2312(D);
387
+ return P.decodeFromGb2312(D);
384
388
  }
385
389
  setJson(D) {
386
- let C = g.encodeToGb2312(D);
390
+ let C = P.encodeToGb2312(D);
387
391
  return this.imp.setJson(C);
388
392
  }
393
+ isKindOf(D) {
394
+ return this.imp.isKindOf(D);
395
+ }
389
396
  }
390
- var f = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(f || {});
391
- class M {
397
+ var k = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(k || {});
398
+ class R {
392
399
  id;
393
400
  type;
394
401
  constructor(D, C) {
@@ -398,14 +405,27 @@ class M {
398
405
  return this.type != 2 && this.id != 0;
399
406
  }
400
407
  erase() {
401
- this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && sD.eraseEntity(this.id);
408
+ this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && z.eraseEntity(this.id);
402
409
  }
403
410
  getMcDbObject() {
404
- return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
411
+ return this.type == 0 ? r.App.ObjectIdToObject(this.id) : null;
412
+ }
413
+ getMcDbEntity() {
414
+ return this.type == 0 && r.App.ObjectIdIsKindOf(this.id, "McDbEntity") ? r.App.ObjectIdToObject(this.id) : null;
415
+ }
416
+ clone() {
417
+ if (this.type == 0) {
418
+ let D = r.App.getImp().ObjectIdToMdObject(this.id);
419
+ if (!D)
420
+ return null;
421
+ let C = D.Clone();
422
+ return r.App.DestroyObject(D), r.App.CreateCloneObject(C);
423
+ }
424
+ return null;
405
425
  }
406
426
  getObjectName() {
407
427
  if (this.type == 0)
408
- return i.App.getImp().ObjectIdToObjectName(this.id);
428
+ return r.App.getImp().ObjectIdToObjectName(this.id);
409
429
  if (this.type == 1) {
410
430
  let D = h.getCurrentDraw().getMxEntity(this.id);
411
431
  if (D)
@@ -417,7 +437,7 @@ class M {
417
437
  return this.type == 1 ? h.getCurrentDraw().getMxEntity(this.id) : null;
418
438
  }
419
439
  }
420
- class v extends j {
440
+ class j extends V {
421
441
  constructor(D) {
422
442
  super(D);
423
443
  }
@@ -429,19 +449,19 @@ class v extends j {
429
449
  }
430
450
  Clone() {
431
451
  let D = this.imp.Clone();
432
- return i.App.CreateCloneObject(D);
452
+ return r.App.CreateCloneObject(D);
433
453
  }
434
454
  GetHandle() {
435
455
  return this.imp.GetHandle();
436
456
  }
437
457
  GetDatabase() {
438
- return new FD(this.imp.GetDatabase());
458
+ return new lD(this.imp.GetDatabase());
439
459
  }
440
460
  GetOwnerID() {
441
461
  return this.imp.GetOwnerID();
442
462
  }
443
463
  }
444
- var BD;
464
+ var sD;
445
465
  ((E) => {
446
466
  ((D) => {
447
467
  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";
@@ -452,11 +472,11 @@ var BD;
452
472
  })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
453
473
  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";
454
474
  })(E.LineWeight || (E.LineWeight = {}));
455
- })(BD || (BD = {}));
456
- class G {
475
+ })(sD || (sD = {}));
476
+ class U {
457
477
  imp;
458
478
  constructor(D, C, B) {
459
- 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);
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);
460
480
  }
461
481
  getImp() {
462
482
  return this.imp;
@@ -465,7 +485,7 @@ class G {
465
485
  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;
466
486
  }
467
487
  clone() {
468
- return new G(this.imp);
488
+ return new U(this.imp);
469
489
  }
470
490
  setColorIndex(D) {
471
491
  this.imp.setColorIndex(D);
@@ -510,9 +530,9 @@ class G {
510
530
  this.imp.colorIndex = D;
511
531
  }
512
532
  }
513
- class iC extends v {
533
+ class sC extends j {
514
534
  constructor(D) {
515
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
535
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbLayerTableRecord());
516
536
  }
517
537
  get name() {
518
538
  return this.imp.getName();
@@ -539,13 +559,13 @@ class iC extends v {
539
559
  this.imp.setIsLocked(D);
540
560
  }
541
561
  get color() {
542
- return new G(this.imp.color());
562
+ return new U(this.imp.color());
543
563
  }
544
564
  set color(D) {
545
565
  this.imp.setColor(D.getImp());
546
566
  }
547
567
  get linetypeObjectId() {
548
- return new M(this.imp.linetypeObjectId(), f.kMxCAD);
568
+ return new R(this.imp.linetypeObjectId(), k.kMxCAD);
549
569
  }
550
570
  set linetypeObjectId(D) {
551
571
  this.imp.setLinetypeObjectId(D.id);
@@ -557,39 +577,39 @@ class iC extends v {
557
577
  this.imp.setLineWeight(D);
558
578
  }
559
579
  }
560
- class xD extends v {
580
+ class SD extends j {
561
581
  constructor(D) {
562
582
  super(D);
563
583
  }
564
584
  }
565
- class fD extends v {
585
+ class LD extends j {
566
586
  constructor(D) {
567
587
  super(D);
568
588
  }
569
589
  }
570
- class MD extends v {
590
+ class OD extends j {
571
591
  constructor(D) {
572
592
  super(D);
573
593
  }
574
594
  }
575
- class FD extends j {
595
+ class lD extends V {
576
596
  constructor(D) {
577
597
  super(D);
578
598
  }
579
599
  GetLayerTable() {
580
- return new xD(this.imp.GetLayerTable());
600
+ return new SD(this.imp.GetLayerTable());
581
601
  }
582
602
  GetLinetypeTable() {
583
- return new fD(this.imp.GetLinetypeTable());
603
+ return new LD(this.imp.GetLinetypeTable());
584
604
  }
585
605
  GetTextStyleTable() {
586
- return new MD(this.imp.GetTextStyleTable());
606
+ return new OD(this.imp.GetTextStyleTable());
587
607
  }
588
608
  GetBlockTable() {
589
- return new PD(this.imp.GetBlockTable());
609
+ return new jD(this.imp.GetBlockTable());
590
610
  }
591
611
  CurrentSpace() {
592
- return new Y(this.imp.CurrentSpace());
612
+ return new FD(this.imp.CurrentSpace());
593
613
  }
594
614
  GetCurrentlyLineTypeScale() {
595
615
  return this.imp.GetCurrentlyLineTypeScale();
@@ -599,22 +619,22 @@ class FD extends j {
599
619
  }
600
620
  GetCurrentlyLineTypeName() {
601
621
  let D = this.imp.GetCurrentlyLineTypeName();
602
- return g.decodeFromGb2312(D);
622
+ return P.decodeFromGb2312(D);
603
623
  }
604
624
  SetCurrentlyLineTypeName(D) {
605
- let C = g.encodeToGb2312(D);
625
+ let C = P.encodeToGb2312(D);
606
626
  this.imp.SetCurrentlyLineTypeName(C);
607
627
  }
608
628
  GetCurrentlyLayerName() {
609
629
  let D = this.imp.GetCurrentlyLayerName();
610
- return g.decodeFromGb2312(D);
630
+ return P.decodeFromGb2312(D);
611
631
  }
612
632
  SetCurrentlyLayerName(D) {
613
- let C = g.encodeToGb2312(D);
633
+ let C = P.encodeToGb2312(D);
614
634
  this.imp.SetCurrentlyLayerName(C);
615
635
  }
616
636
  GetCurrentlyTrueColor() {
617
- return new G(this.imp.GetCurrentlyTrueColor());
637
+ return new U(this.imp.GetCurrentlyTrueColor());
618
638
  }
619
639
  GetCurrentlyDrawColor() {
620
640
  let D = this.imp.GetCurrentlyDrawColor(), C = new THREE.Color();
@@ -631,14 +651,14 @@ class FD extends j {
631
651
  }
632
652
  GetCurrentlyTextStyleName() {
633
653
  let D = this.imp.GetCurrentlyTextStyleName();
634
- return g.decodeFromGb2312(D);
654
+ return P.decodeFromGb2312(D);
635
655
  }
636
656
  SetCurrentlyTextStyle(D) {
637
- let C = g.encodeToGb2312(D);
657
+ let C = P.encodeToGb2312(D);
638
658
  this.imp.SetCurrentlyTextStyle(C);
639
659
  }
640
660
  }
641
- class TD extends j {
661
+ class vD extends V {
642
662
  constructor(D) {
643
663
  super(D);
644
664
  }
@@ -649,25 +669,25 @@ class TD extends j {
649
669
  return this.imp.done();
650
670
  }
651
671
  getEntityId() {
652
- return new M(this.imp.getEntityId(), f.kMxCAD);
672
+ return new R(this.imp.getEntityId(), k.kMxCAD);
653
673
  }
654
674
  step(D = !0, C = !0) {
655
675
  return this.imp.step(D, C);
656
676
  }
657
677
  }
658
- class Y extends v {
678
+ class FD extends j {
659
679
  constructor(D) {
660
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
680
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockTableRecord());
661
681
  }
662
682
  appendAcDbEntity(D) {
663
- return new M(
683
+ return new R(
664
684
  this.imp.appendAcDbEntity(D.getImp()),
665
- f.kMxCAD
685
+ k.kMxCAD
666
686
  );
667
687
  }
668
688
  newIterator(D = !0, C = !0) {
669
689
  let B = this.imp.newIterator(D, C);
670
- return new TD(B);
690
+ return new vD(B);
671
691
  }
672
692
  get origin() {
673
693
  return new u(this.imp.origin());
@@ -676,7 +696,7 @@ class Y extends v {
676
696
  this.imp.setOrigin(D.imp);
677
697
  }
678
698
  }
679
- class kD extends j {
699
+ class ID extends V {
680
700
  constructor(D) {
681
701
  super(D);
682
702
  }
@@ -688,41 +708,41 @@ class kD extends j {
688
708
  }
689
709
  getRecord() {
690
710
  let D = this.imp.getRecord();
691
- return new Y(D);
711
+ return new FD(D);
692
712
  }
693
713
  step(D = !0, C = !0) {
694
714
  this.imp.start(D, C);
695
715
  }
696
716
  }
697
- class PD extends v {
717
+ class jD extends j {
698
718
  constructor(D) {
699
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
719
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockTable());
700
720
  }
701
721
  getAt(D) {
702
722
  let C = this.getAt(D);
703
- return C && new Y(C);
723
+ return C && new FD(C);
704
724
  }
705
725
  has(D) {
706
726
  return this.imp.has(D);
707
727
  }
708
728
  newIterator(D = !0, C = !0) {
709
729
  let B = this.imp.newIterator(D, C);
710
- return new kD(B);
730
+ return new ID(B);
711
731
  }
712
732
  add(D) {
713
733
  return this.imp.add(D.getImp());
714
734
  }
715
735
  }
716
- class H extends v {
736
+ class W extends j {
717
737
  constructor(D) {
718
738
  super(D);
719
739
  }
720
740
  explode() {
721
741
  let D = this.imp.explode();
722
- return new q(D);
742
+ return new $(D);
723
743
  }
724
744
  get trueColor() {
725
- return new G(this.imp.TrueColor());
745
+ return new U(this.imp.TrueColor());
726
746
  }
727
747
  set trueColor(D) {
728
748
  this.imp.SetTrueColor(D.getImp());
@@ -785,104 +805,104 @@ class H extends v {
785
805
  let D = this.imp.GetBoundingBox();
786
806
  if (D) {
787
807
  let C = {
788
- minPt: new u(D.AtPoint(0).val),
789
- maxPt: new u(D.AtPoint(1).val),
808
+ minPt: new u(D.AtPoint(0)),
809
+ maxPt: new u(D.AtPoint(1)),
790
810
  ret: 0
791
811
  };
792
- return i.App.DestroyObject(D), C;
812
+ return r.App.DestroyObject(D), C;
793
813
  } else
794
814
  return { minPt: new u(), maxPt: new u(), ret: 1 };
795
815
  }
796
816
  }
797
- class N extends H {
817
+ class _ extends W {
798
818
  constructor(D) {
799
819
  super(D);
800
820
  }
801
821
  getStartParam() {
802
- return { val: this.imp.getStartParam(), ret: i.getCallResult() };
822
+ return { val: this.imp.getStartParam(), ret: r.getCallResult() };
803
823
  }
804
824
  getEndParam() {
805
- return { val: this.imp.getEndParam(), ret: i.getCallResult() };
825
+ return { val: this.imp.getEndParam(), ret: r.getCallResult() };
806
826
  }
807
827
  getDistAtParam(D) {
808
- return { val: this.imp.getDistAtParam(D), ret: i.getCallResult() };
828
+ return { val: this.imp.getDistAtParam(D), ret: r.getCallResult() };
809
829
  }
810
830
  getParamAtDist(D) {
811
- return { val: this.imp.getParamAtDist(D), ret: i.getCallResult() };
831
+ return { val: this.imp.getParamAtDist(D), ret: r.getCallResult() };
812
832
  }
813
833
  getDistAtPoint(D) {
814
- return { val: this.imp.getDistAtPoint(D.imp), ret: i.getCallResult() };
834
+ return { val: this.imp.getDistAtPoint(D.imp), ret: r.getCallResult() };
815
835
  }
816
836
  getPointAtDist(D) {
817
837
  return {
818
838
  val: new u(this.imp.getPointAtDist(D)),
819
- ret: i.getCallResult()
839
+ ret: r.getCallResult()
820
840
  };
821
841
  }
822
842
  getStartPoint() {
823
843
  return {
824
844
  val: new u(this.imp.getStartPoint()),
825
- ret: i.getCallResult()
845
+ ret: r.getCallResult()
826
846
  };
827
847
  }
828
848
  getEndPoint() {
829
849
  return {
830
850
  val: new u(this.imp.getStartPoint()),
831
- ret: i.getCallResult()
851
+ ret: r.getCallResult()
832
852
  };
833
853
  }
834
854
  getPointAtParam(D) {
835
855
  return {
836
856
  val: new u(this.imp.getPointAtParam(D)),
837
- ret: i.getCallResult()
857
+ ret: r.getCallResult()
838
858
  };
839
859
  }
840
860
  getParamAtPoint(D) {
841
861
  return {
842
862
  val: this.imp.getParamAtPoint(D.imp),
843
- ret: i.getCallResult()
863
+ ret: r.getCallResult()
844
864
  };
845
865
  }
846
866
  getFirstDeriv(D) {
847
867
  return {
848
- val: new w(this.imp.getFirstDeriv(D)),
849
- ret: i.getCallResult()
868
+ val: new y(this.imp.getFirstDeriv(D)),
869
+ ret: r.getCallResult()
850
870
  };
851
871
  }
852
872
  getFirstDerivEx(D) {
853
873
  return {
854
- val: new w(this.imp.getFirstDerivEx(D.imp)),
855
- ret: i.getCallResult()
874
+ val: new y(this.imp.getFirstDerivEx(D.imp)),
875
+ ret: r.getCallResult()
856
876
  };
857
877
  }
858
878
  getClosestPointTo(D, C) {
859
879
  return {
860
880
  val: new u(this.imp.getClosestPointTo(D.imp, C)),
861
- ret: i.getCallResult()
881
+ ret: r.getCallResult()
862
882
  };
863
883
  }
864
884
  offsetCurves(D, C) {
865
885
  let B = this.imp.offsetCurves(D, C.imp);
866
- return new q(B);
886
+ return new $(B);
867
887
  }
868
888
  splitCurves(D) {
869
889
  let C = this.imp.splitCurves(D);
870
- return new q(C);
890
+ return new $(C);
871
891
  }
872
892
  getArea() {
873
- return { val: this.imp.getArea(), ret: i.getCallResult() };
893
+ return { val: this.imp.getArea(), ret: r.getCallResult() };
874
894
  }
875
895
  getSamplePoints(D) {
876
896
  let C = this.imp.getSamplePoints(D);
877
- return new q(C);
897
+ return new $(C);
878
898
  }
879
899
  getLength() {
880
- return { val: this.imp.getLength(), ret: i.getCallResult() };
900
+ return { val: this.imp.getLength(), ret: r.getCallResult() };
881
901
  }
882
902
  }
883
- class Z extends N {
903
+ class DD extends _ {
884
904
  constructor(D, C, B, F, A, t) {
885
- D instanceof Object ? D instanceof u ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof u && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new u(D, C, B), this.endPoint = new u(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));
886
906
  }
887
907
  get startPoint() {
888
908
  return new u(this.imp.startPoint());
@@ -897,9 +917,9 @@ class Z extends N {
897
917
  this.imp.setEndPoint(D.imp);
898
918
  }
899
919
  }
900
- class ED extends H {
920
+ class nD extends W {
901
921
  constructor(D) {
902
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
922
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbText());
903
923
  }
904
924
  get position() {
905
925
  return new u(this.imp.position());
@@ -938,10 +958,10 @@ class ED extends H {
938
958
  this.imp.setWidthFactor(D);
939
959
  }
940
960
  get textString() {
941
- return g.decodeFromGb2312(this.imp.textString());
961
+ return P.decodeFromGb2312(this.imp.textString());
942
962
  }
943
963
  set textString(D) {
944
- this.imp.setTextString(g.encodeToGb2312(D));
964
+ this.imp.setTextString(P.encodeToGb2312(D));
945
965
  }
946
966
  get horizontalMode() {
947
967
  return this.imp.horizontalMode();
@@ -956,9 +976,9 @@ class ED extends H {
956
976
  this.imp.setVerticalMode(D);
957
977
  }
958
978
  }
959
- class AD extends H {
979
+ class CD extends W {
960
980
  constructor(D) {
961
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
981
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbMText());
962
982
  }
963
983
  get location() {
964
984
  return new u(this.imp.location());
@@ -991,15 +1011,15 @@ class AD extends H {
991
1011
  this.imp.setAttachment(D);
992
1012
  }
993
1013
  get contents() {
994
- return g.decodeFromGb2312(this.imp.contents());
1014
+ return P.decodeFromGb2312(this.imp.contents());
995
1015
  }
996
1016
  set contents(D) {
997
- this.imp.setContents(g.encodeToGb2312(D));
1017
+ this.imp.setContents(P.encodeToGb2312(D));
998
1018
  }
999
1019
  }
1000
- class O extends N {
1020
+ class G extends _ {
1001
1021
  constructor(D, C, B, F) {
1002
- D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbCircle()), typeof D == "number" && (this.imp.setCenter(new u(D, C, B).imp), this.imp.setRadius(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)));
1003
1023
  }
1004
1024
  setCenter(D, C, B) {
1005
1025
  this.imp.setCenter(new u(D, C, B).imp);
@@ -1017,9 +1037,9 @@ class O extends N {
1017
1037
  this.imp.setRadius(D);
1018
1038
  }
1019
1039
  }
1020
- class tD extends N {
1040
+ class BD extends _ {
1021
1041
  constructor(D) {
1022
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
1042
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbPolyline());
1023
1043
  }
1024
1044
  get isClosed() {
1025
1045
  return this.imp.isClosed();
@@ -1035,7 +1055,7 @@ class tD extends N {
1035
1055
  }
1036
1056
  addVertexAt(D, C = 0, B = 0, F = 0, A = 0) {
1037
1057
  if (D instanceof THREE.Vector3) {
1038
- let t = new i.mxcadassemblyimp.MdGePoint3d();
1058
+ let t = new r.mxcadassemblyimp.MdGePoint3d();
1039
1059
  return t.x = D.x, t.y = D.y, t.z = D.z, this.imp.addVertexAt(A, t, C, B, F);
1040
1060
  } else
1041
1061
  return this.imp.addVertexAt(A, D.imp, C, B, F);
@@ -1047,7 +1067,7 @@ class tD extends N {
1047
1067
  return this.imp.numVerts();
1048
1068
  }
1049
1069
  getPointAt(D) {
1050
- return { val: this.imp.getPointAt(D), ret: i.getCallResult() };
1070
+ return { val: this.imp.getPointAt(D), ret: r.getCallResult() };
1051
1071
  }
1052
1072
  getBulgeAt(D) {
1053
1073
  return this.imp.getBulgeAt(D);
@@ -1056,7 +1076,7 @@ class tD extends N {
1056
1076
  return {
1057
1077
  val1: this.imp.getStartWidthsAt(D),
1058
1078
  val2: this.imp.getEndWidthsAt(D),
1059
- ret: i.getCallResult()
1079
+ ret: r.getCallResult()
1060
1080
  };
1061
1081
  }
1062
1082
  setPointAt(D, C) {
@@ -1066,12 +1086,12 @@ class tD extends N {
1066
1086
  return this.imp.setBulgeAt(D, C);
1067
1087
  }
1068
1088
  }
1069
- class RD extends H {
1089
+ class oD extends W {
1070
1090
  constructor(D) {
1071
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
1091
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockReference());
1072
1092
  }
1073
1093
  get blockTableRecordId() {
1074
- return new M(this.imp.blockTableRecord(), f.kMxCAD);
1094
+ return new R(this.imp.blockTableRecord(), k.kMxCAD);
1075
1095
  }
1076
1096
  set blockTableRecordId(D) {
1077
1097
  this.imp.setBlockTableRecordId(D.id);
@@ -1095,13 +1115,13 @@ class RD extends H {
1095
1115
  this.imp.setRotation(D);
1096
1116
  }
1097
1117
  get blockTransform() {
1098
- return new U(this.imp.blockTransform());
1118
+ return new I(this.imp.blockTransform());
1099
1119
  }
1100
1120
  set blockTransform(D) {
1101
1121
  this.imp.setBlockTransform(D.imp);
1102
1122
  }
1103
1123
  }
1104
- class eD extends H {
1124
+ class cD extends W {
1105
1125
  constructor(D) {
1106
1126
  super(D);
1107
1127
  }
@@ -1139,7 +1159,7 @@ class eD extends H {
1139
1159
  this.imp.setTextRotation(D);
1140
1160
  }
1141
1161
  get dimensionStyle() {
1142
- return new M(this.imp.dimensionStyle(), f.kMxCAD);
1162
+ return new R(this.imp.dimensionStyle(), k.kMxCAD);
1143
1163
  }
1144
1164
  set dimensionStyle(D) {
1145
1165
  this.imp.setDimensionStyle(D.id);
@@ -1178,18 +1198,18 @@ class eD extends H {
1178
1198
  this.imp.SetDimVarString(D, C);
1179
1199
  }
1180
1200
  getDimVarObjectId(D) {
1181
- return new M(
1201
+ return new R(
1182
1202
  this.imp.GetDimVarObjectId(D),
1183
- f.kMxCAD
1203
+ k.kMxCAD
1184
1204
  );
1185
1205
  }
1186
1206
  setDimVarObjectId(D, C) {
1187
1207
  this.imp.SetDimVarObjectId(D, C.id);
1188
1208
  }
1189
1209
  }
1190
- class SD extends eD {
1210
+ class aD extends cD {
1191
1211
  constructor(D) {
1192
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
1212
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbAlignedDimension());
1193
1213
  }
1194
1214
  get xLine1Point() {
1195
1215
  return new u(this.imp.xLine1Point());
@@ -1216,9 +1236,9 @@ class SD extends eD {
1216
1236
  this.imp.setOblique(D);
1217
1237
  }
1218
1238
  }
1219
- class LD extends eD {
1239
+ class uD extends cD {
1220
1240
  constructor(D) {
1221
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
1241
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbRotatedDimension());
1222
1242
  }
1223
1243
  get xLine1Point() {
1224
1244
  return new u(this.imp.xLine1Point());
@@ -1251,9 +1271,9 @@ class LD extends eD {
1251
1271
  this.imp.setRotation(D);
1252
1272
  }
1253
1273
  }
1254
- class iD extends N {
1274
+ class ED extends _ {
1255
1275
  constructor(D) {
1256
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1276
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbArc());
1257
1277
  }
1258
1278
  setCenter(D, C, B) {
1259
1279
  this.imp.setCenter(new u(D, C, B).imp);
@@ -1293,9 +1313,9 @@ class iD extends N {
1293
1313
  );
1294
1314
  }
1295
1315
  }
1296
- class rD extends N {
1297
- constructor(D, C, B, F, A, t, e, r, s) {
1298
- D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (e || (e = 1), typeof r != "number" && (r = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.Init(new u(D, C, B).imp, new w(F, A, t).imp, e, r, s)));
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)));
1299
1319
  }
1300
1320
  setCenter(D, C, B) {
1301
1321
  this.imp.setCenter(new u(D, C, B).imp);
@@ -1307,19 +1327,19 @@ class rD extends N {
1307
1327
  this.imp.setCenter(D.imp);
1308
1328
  }
1309
1329
  setMajorAxis(D, C, B) {
1310
- this.imp.setMajorAxis(new w(D, C, B).imp);
1330
+ this.imp.setMajorAxis(new y(D, C, B).imp);
1311
1331
  }
1312
1332
  get majorAxis() {
1313
- return new w(this.imp.majorAxis());
1333
+ return new y(this.imp.majorAxis());
1314
1334
  }
1315
1335
  set majorAxis(D) {
1316
1336
  this.imp.setMajorAxis(D.imp);
1317
1337
  }
1318
1338
  setMinorAxis(D, C, B) {
1319
- this.imp.setMinorAxis(new w(D, C, B).imp);
1339
+ this.imp.setMinorAxis(new y(D, C, B).imp);
1320
1340
  }
1321
1341
  get minorAxis() {
1322
- return new w(this.imp.minorAxis());
1342
+ return new y(this.imp.minorAxis());
1323
1343
  }
1324
1344
  set minorAxis(D) {
1325
1345
  this.imp.setMinorAxis(D.imp);
@@ -1343,13 +1363,13 @@ class rD extends N {
1343
1363
  this.imp.setEndAngle(D);
1344
1364
  }
1345
1365
  }
1346
- function z(E = null) {
1366
+ function K(E = null) {
1347
1367
  let D;
1348
- return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1368
+ return E == null ? D = new r.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1349
1369
  }
1350
- class q extends j {
1370
+ class $ extends V {
1351
1371
  constructor(D) {
1352
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
1372
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.McDrawResbuf());
1353
1373
  }
1354
1374
  Clear() {
1355
1375
  this.imp.Clear();
@@ -1358,16 +1378,16 @@ class q extends j {
1358
1378
  return this.imp.GetCount();
1359
1379
  }
1360
1380
  AtDouble(D) {
1361
- return { val: this.imp.AtDouble(D), ret: i.getCallResult() };
1381
+ return { val: this.imp.AtDouble(D), ret: r.getCallResult() };
1362
1382
  }
1363
1383
  Atlong(D) {
1364
- return { val: this.imp.Atlong(D), ret: i.getCallResult() };
1384
+ return { val: this.imp.Atlong(D), ret: r.getCallResult() };
1365
1385
  }
1366
1386
  AtObject(D) {
1367
1387
  if (this.imp.AtObjectName(D) == "McDbMText") {
1368
1388
  let B = this.imp.AtObjectMdDbMText(D);
1369
1389
  if (B)
1370
- return { val: new AD(B), ret: i.getCallResult() };
1390
+ return { val: new CD(B), ret: r.getCallResult() };
1371
1391
  }
1372
1392
  return { val: void 0, ret: -1 };
1373
1393
  }
@@ -1375,13 +1395,13 @@ class q extends j {
1375
1395
  this.imp.AddObject(D.getImp());
1376
1396
  }
1377
1397
  AtObjectId(D) {
1378
- return { val: new M(this.imp.AtObjectId(D), f.kMxCAD), ret: i.getCallResult() };
1398
+ return { val: new R(this.imp.AtObjectId(D), k.kMxCAD), ret: r.getCallResult() };
1379
1399
  }
1380
1400
  AtString(D, C = !0) {
1381
- return C ? { val: g.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1401
+ return C ? { val: P.decodeFromGb2312(this.imp.AtString(D)), ret: r.getCallResult() } : { val: this.imp.AtString(D), ret: r.getCallResult() };
1382
1402
  }
1383
1403
  AtPoint(D) {
1384
- return { val: new u(this.imp.AtPoint(D)), ret: i.getCallResult() };
1404
+ return { val: new u(this.imp.AtPoint(D)), ret: r.getCallResult() };
1385
1405
  }
1386
1406
  ItemDataType() {
1387
1407
  return this.imp.ItemDataType();
@@ -1396,7 +1416,7 @@ class q extends j {
1396
1416
  return this.imp.AddObjectId(D, C);
1397
1417
  }
1398
1418
  AddString(D, C = -10, B = !0) {
1399
- return B ? this.imp.AddString(g.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1419
+ return B ? this.imp.AddString(P.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1400
1420
  }
1401
1421
  AddPoint(D, C = -10) {
1402
1422
  return this.imp.AddPoint(D.imp, C);
@@ -1408,7 +1428,7 @@ class q extends j {
1408
1428
  this.imp.Remove(D);
1409
1429
  }
1410
1430
  }
1411
- class vD {
1431
+ class GD {
1412
1432
  imp;
1413
1433
  constructor() {
1414
1434
  }
@@ -1420,106 +1440,198 @@ class vD {
1420
1440
  }
1421
1441
  findEntAtPoint(D, C, B, F = -1, A = null) {
1422
1442
  this.init();
1423
- let t = this.imp.findEntAtPoint(D, C, B, F, z(A));
1424
- return new M(t, f.kMxCAD);
1443
+ let t = this.imp.findEntAtPoint(D, C, B, F, K(A));
1444
+ return new R(t, k.kMxCAD);
1425
1445
  }
1426
1446
  selectEnt(D, C = null) {
1427
1447
  return this.init(), new Promise(async (B) => {
1428
- const F = new k();
1429
- D && F.setMessage(D), F.setCursorType(lD.kRect);
1448
+ const F = new S();
1449
+ D && F.setMessage(D), F.setCursorType(wD.kRect);
1430
1450
  let A = await F.go();
1431
1451
  if (!A) {
1432
1452
  B([]);
1433
1453
  return;
1434
1454
  }
1435
- cD.findEntAtPoint(A).then((t) => {
1455
+ gD.findEntAtPoint(A).then((t) => {
1436
1456
  let e = [];
1437
1457
  t.forEach((s) => {
1438
- e.push(new M(s, f.kMxDraw));
1458
+ e.push(new R(s, k.kMxDraw));
1439
1459
  });
1440
- let r = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1441
- r.isValid() && e.push(r), B(e);
1460
+ let i = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1461
+ i.isValid() && e.push(i), B(e);
1442
1462
  });
1443
1463
  });
1444
1464
  }
1445
1465
  getCurrentSelect() {
1446
1466
  let D = [];
1447
1467
  return h.getCurrentDraw().getMxCurrentSelect().forEach((F) => {
1448
- D.push(new M(F, f.kMxDraw));
1468
+ D.push(new R(F, k.kMxDraw));
1449
1469
  }), h.getCurrentDraw().getMxCADCurrentSelect().forEach((F) => {
1450
- D.push(new M(F, f.kMxCAD));
1470
+ D.push(new R(F, k.kMxCAD));
1451
1471
  }), D;
1452
1472
  }
1453
1473
  init() {
1454
- this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
1474
+ this.imp || (this.imp = new r.mxcadassemblyimp.McDrawUtility());
1455
1475
  }
1456
1476
  }
1457
- let sD = new vD();
1458
- class OD extends j {
1477
+ let z = new GD();
1478
+ class q extends V {
1459
1479
  constructor() {
1460
- super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
1480
+ super(), this.initTempObject(new r.mxcadassemblyimp.McDrawSelSet());
1461
1481
  }
1462
1482
  allSelect(D = null) {
1463
- return this.imp.allSelect(z(D));
1483
+ return this.imp.allSelect(K(D));
1464
1484
  }
1465
1485
  pointSelect(D, C, B = null, F = -1) {
1466
- return this.imp.pointSelect(D, C, z(B), F);
1486
+ return this.imp.pointSelect(D, C, K(B), F);
1467
1487
  }
1468
1488
  crossingSelect(D, C, B, F, A = null) {
1469
- return this.imp.crossingSelect(D, C, B, F, z(A));
1489
+ return this.imp.crossingSelect(D, C, B, F, K(A));
1470
1490
  }
1471
1491
  count() {
1472
1492
  return this.imp.count();
1473
1493
  }
1474
1494
  item(D) {
1475
- return new M(this.imp.item(D), f.kMxCAD);
1495
+ return new R(this.imp.item(D), k.kMxCAD);
1476
1496
  }
1477
1497
  forEach(D) {
1478
1498
  let C = this.imp.count();
1479
1499
  for (let B = 0; B < C; B++)
1480
1500
  D(this.item(B));
1481
1501
  }
1502
+ getIds() {
1503
+ let D = [], C = this.imp.count();
1504
+ for (let B = 0; B < C; B++)
1505
+ D.push(this.item(B));
1506
+ return D;
1507
+ }
1482
1508
  async userSelect(D, C = null) {
1483
- let B = new k();
1484
- D && B.setMessage(D), B.setCursorType(lD.kRect), B.setDynamicInputType(ZD.kDynTip);
1509
+ let B = new S();
1510
+ D && B.setMessage(D), B.setCursorType(wD.kRect), B.setDynamicInputType(QD.kDynTip), B.setDisableOsnap(!0);
1485
1511
  let F = 0;
1486
1512
  for (; ; ) {
1487
1513
  let A = await B.go();
1488
1514
  if (F = B.getDetailedResult(), !A)
1489
1515
  break;
1490
- let t = await cD.getCorner(A, D, !0, (e) => {
1516
+ let t = await gD.getCorner(A, D, !0, (e) => {
1491
1517
  F = e.detailedResult;
1492
1518
  });
1493
1519
  if (!t)
1494
1520
  break;
1495
- this.imp.userSelect(A.x, A.y, t.x, t.y, z(C));
1521
+ this.imp.userSelect(A.x, A.y, t.x, t.y, K(C));
1496
1522
  }
1497
- return this.imp.highlightEntity(!1), F == X.kEcsIn || F == X.kNewCommadIn || F == X.kUnknown ? new Promise((A) => {
1523
+ return this.imp.highlightEntity(!1), F == eD.kEcsIn || F == eD.kNewCommadIn || F == eD.kUnknown ? new Promise((A) => {
1498
1524
  A(!1);
1499
1525
  }) : new Promise((A) => {
1500
1526
  A(!0);
1501
1527
  });
1502
1528
  }
1503
1529
  }
1504
- class V {
1530
+ class Y {
1531
+ imp;
1532
+ constructor() {
1533
+ this.imp = new S();
1534
+ }
1535
+ go() {
1536
+ return new Promise((D, C) => {
1537
+ this.imp.go((B) => {
1538
+ B != 0 ? C(null) : D(new u(this.imp.value()));
1539
+ });
1540
+ });
1541
+ }
1542
+ keyWords() {
1543
+ return this.imp.keyWords();
1544
+ }
1545
+ setKeyWords(D) {
1546
+ this.imp.setKeyWords(D);
1547
+ }
1548
+ message() {
1549
+ return this.imp.message();
1550
+ }
1551
+ setMessage(D) {
1552
+ this.imp.setMessage(D);
1553
+ }
1554
+ keyWordPicked() {
1555
+ return this.imp.keyWordPicked();
1556
+ }
1557
+ isKeyWordPicked(D) {
1558
+ return this.imp.isKeyWordPicked(D);
1559
+ }
1560
+ setUserDraw(D) {
1561
+ this.imp.setUserDraw((C, B) => {
1562
+ D(new u(C), B);
1563
+ });
1564
+ }
1565
+ value() {
1566
+ return new u(this.imp.value());
1567
+ }
1568
+ getCADValue() {
1569
+ return this.imp.getCADValue();
1570
+ }
1571
+ basePt() {
1572
+ return new u(this.imp.basePt());
1573
+ }
1574
+ setBasePt(D) {
1575
+ this.imp.setBasePt(D.toVector3());
1576
+ }
1577
+ setUseBasePt(D) {
1578
+ this.imp.setUseBasePt(D);
1579
+ }
1580
+ getDetailedResult() {
1581
+ return this.imp.getDetailedResult();
1582
+ }
1583
+ getStatus() {
1584
+ return this.imp.getStatus();
1585
+ }
1586
+ drawReserve(D) {
1587
+ this.imp.drawReserve(D);
1588
+ }
1589
+ setInputToucheType(D) {
1590
+ this.imp.setInputToucheType(D);
1591
+ }
1592
+ getInputToucheType() {
1593
+ return this.imp.getInputToucheType();
1594
+ }
1595
+ setCursorType(D) {
1596
+ this.imp.setCursorType(D);
1597
+ }
1598
+ getCursorType() {
1599
+ return this.imp.getCursorType();
1600
+ }
1601
+ setDynamicInputType(D) {
1602
+ this.imp.setDynamicInputType(D);
1603
+ }
1604
+ getDynamicInputType() {
1605
+ return this.imp.getDynamicInputType();
1606
+ }
1607
+ isDisableDynInput() {
1608
+ return this.imp.isDisableDynInput();
1609
+ }
1610
+ setDisableDynInput(D) {
1611
+ this.imp.setDisableDynInput(D);
1612
+ }
1613
+ setDisableOsnap(D) {
1614
+ this.imp.setDisableOsnap(D);
1615
+ }
1616
+ isDisableOsnap() {
1617
+ return this.imp.isDisableOsnap();
1618
+ }
1619
+ }
1620
+ class H {
1505
1621
  imp;
1506
- mxObject;
1507
1622
  static currentFileName;
1508
1623
  constructor(D) {
1509
1624
  this.imp = D;
1510
1625
  }
1511
1626
  initMxObject(D) {
1512
- this.mxObject = D;
1627
+ this.imp.mxdrawObject = D;
1513
1628
  }
1514
1629
  getMxDrawObject() {
1515
- return this.mxObject;
1630
+ return this.imp.mxdrawObject;
1516
1631
  }
1517
1632
  getImp() {
1518
1633
  return this.imp;
1519
1634
  }
1520
- getMxCppImp() {
1521
- return i.mxcadassemblyimp;
1522
- }
1523
1635
  updateDisplay(D, C) {
1524
1636
  this.imp.updateDisplay(D, C);
1525
1637
  }
@@ -1527,17 +1639,17 @@ class V {
1527
1639
  this.imp.test();
1528
1640
  }
1529
1641
  openWebFile(D, C, B = !0) {
1530
- let F = Math.round(Math.random() * 1e7);
1642
+ let F = this.imp.mxdrawObject, A = Math.round(Math.random() * 1e7);
1531
1643
  if (C) {
1532
- let A = this, t = (e, r) => {
1533
- A.mxObject.removeEventFuction("openFileComplete", t), F == r && C(e);
1644
+ let t = (e, i) => {
1645
+ F.removeEventFuction("openFileComplete", t), A == i && C(e);
1534
1646
  };
1535
- A.mxObject.addEvent("openFileComplete", t);
1647
+ F.addEvent("openFileComplete", t);
1536
1648
  }
1537
- return V.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, F);
1649
+ return H.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, A);
1538
1650
  }
1539
1651
  getCurrentFileName() {
1540
- return V.currentFileName;
1652
+ return H.currentFileName;
1541
1653
  }
1542
1654
  saveFileToUrl(D, C) {
1543
1655
  const B = window;
@@ -1552,7 +1664,7 @@ class V {
1552
1664
  if (C && C(t), !!t) {
1553
1665
  if (B) {
1554
1666
  let e;
1555
- /^((?!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 ? _.saveAsFileDialog({
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({
1556
1668
  blob: e,
1557
1669
  filename: D,
1558
1670
  types: [{
@@ -1561,14 +1673,14 @@ class V {
1561
1673
  "application/octet-stream": [".mxweb"]
1562
1674
  }
1563
1675
  }]
1564
- }) : _.downloadFile(e, D);
1676
+ }) : J.downloadFile(e, D);
1565
1677
  }
1566
1678
  A.mx_saveFile_call = null;
1567
1679
  }
1568
1680
  }, this.imp.saveFile(D);
1569
1681
  }
1570
1682
  GetDatabase() {
1571
- return this.imp.McDbDatabase || (this.imp.McDbDatabase = new FD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1683
+ return this.imp.McDbDatabase || (this.imp.McDbDatabase = new lD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1572
1684
  }
1573
1685
  GetSysVarString(D) {
1574
1686
  return this.imp.GetSysVarString(D);
@@ -1589,7 +1701,7 @@ class V {
1589
1701
  return this.imp.SetSysVarLong(D, C);
1590
1702
  }
1591
1703
  get DrawColor() {
1592
- return new G(this.imp.GetDrawColor());
1704
+ return new U(this.imp.GetDrawColor());
1593
1705
  }
1594
1706
  set DrawColor(D) {
1595
1707
  this.imp.SetDrawColor(D.getImp());
@@ -1678,8 +1790,8 @@ class V {
1678
1790
  DrawPoint(D, C) {
1679
1791
  return this.imp.DrawPoint(D, C);
1680
1792
  }
1681
- DrawSolid(D, C, B, F, A, t, e, r) {
1682
- return this.imp.DrawSolid(D, C, B, F, A, t, e, r);
1793
+ DrawSolid(D, C, B, F, A, t, e, i) {
1794
+ return this.imp.DrawSolid(D, C, B, F, A, t, e, i);
1683
1795
  }
1684
1796
  DrawMText(D, C, B, F, A, t, e) {
1685
1797
  return this.imp.DrawMText(D, C, B, F, A, t, e);
@@ -1693,8 +1805,8 @@ class V {
1693
1805
  DrawDimAligned(D, C, B, F, A, t) {
1694
1806
  return this.imp.DrawDimAligned(D, C, B, F, A, t);
1695
1807
  }
1696
- DrawDimAngular(D, C, B, F, A, t, e, r) {
1697
- return this.imp.DrawDimAngular(D, C, B, F, A, t, e, r);
1808
+ DrawDimAngular(D, C, B, F, A, t, e, i) {
1809
+ return this.imp.DrawDimAngular(D, C, B, F, A, t, e, i);
1698
1810
  }
1699
1811
  DrawDimDiametric(D, C, B, F, A) {
1700
1812
  return this.imp.DrawDimDiametric(D, C, B, F, A);
@@ -1736,29 +1848,28 @@ class V {
1736
1848
  return this.imp.DrawEntity(D.getImp());
1737
1849
  }
1738
1850
  ObjectIdToObject(D) {
1739
- return i.App.ObjectIdToObject(D);
1740
- }
1741
- CloneMcDbObject(D) {
1742
- let C = this.imp.CloneMcDbObject(D);
1743
- return i.App.CreateCloneObject(C);
1744
- }
1745
- ObjectIdToMdObjectImp(D) {
1746
- return i.App.getImp().ObjectIdToMdObject(D);
1851
+ return r.App.ObjectIdToObject(D);
1747
1852
  }
1748
1853
  DestroyObject(D) {
1749
- !D || i.App.getImp().DestroyObject(D);
1854
+ !D || r.App.getImp().DestroyObject(D);
1750
1855
  }
1751
1856
  GetAllLayoutName() {
1752
- return new bD(this.imp.GetAllLayoutName());
1857
+ return new RD(this.imp.GetAllLayoutName());
1753
1858
  }
1754
1859
  SetCurrentLayout(D) {
1755
- this.imp.SetCurrentLayout(g.encodeToGb2312(D));
1860
+ this.imp.SetCurrentLayout(P.encodeToGb2312(D));
1861
+ }
1862
+ GetMxCpp() {
1863
+ return r;
1864
+ }
1865
+ docCoord2Cad(D) {
1866
+ return new u(this.imp.mxdrawObject.docCoord2Cad(D.x, D.y, D.z));
1756
1867
  }
1757
1868
  }
1758
- class jD {
1869
+ class WD {
1759
1870
  imp;
1760
1871
  init(D) {
1761
- this.imp = D, w.kZAxis = new w(0, 0, 1), w.kXAxis = new w(1, 0, 0), w.kYAxis = new w(0, 1, 0), u.kOrigin = new u(0, 0, 0), U.kIdentity = new U();
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();
1762
1873
  }
1763
1874
  getImp() {
1764
1875
  return this.imp;
@@ -1768,62 +1879,65 @@ class jD {
1768
1879
  }
1769
1880
  CreateMxCAD(D, C, B, F, A) {
1770
1881
  let t = this.imp.CreateMxDraw(D, C, B, F, A);
1771
- return new V(t);
1882
+ return new H(t);
1772
1883
  }
1773
1884
  DestroyObject(D) {
1774
1885
  this.imp.DestroyObject(D);
1775
1886
  }
1776
1887
  GetCurrentMxCAD() {
1777
1888
  let D = this.imp.GetCurrentMxDraw();
1778
- return D.McObject || (D.McObject = new V(this.imp.GetCurrentMxDraw())), D.McObject;
1889
+ return D.McObject || (D.McObject = new H(this.imp.GetCurrentMxDraw())), D.McObject;
1779
1890
  }
1780
1891
  mcedRGB2Index(D, C, B, F = !0) {
1781
1892
  return this.imp.mcedRGB2Index(D, C, B, F);
1782
1893
  }
1894
+ ObjectIdIsKindOf(D, C) {
1895
+ return this.imp.ObjectIdIsKindOf(D, C);
1896
+ }
1783
1897
  ObjectIdToObject(D) {
1784
1898
  if (!D)
1785
1899
  return null;
1786
1900
  let C = this.imp.ObjectIdToObjectName(D);
1787
1901
  if (C == "McDbLine") {
1788
1902
  let B = this.imp.ObjectIdToMdDbLine(D);
1789
- return new Z(B);
1903
+ return new DD(B);
1790
1904
  } else if (C == "McDbText") {
1791
1905
  let B = this.imp.ObjectIdToMdDbText(D);
1792
- return new ED(B);
1906
+ return new nD(B);
1793
1907
  } else if (C == "McDbPolyline") {
1794
1908
  let B = this.imp.ObjectIdToMdDbPolyline(D);
1795
- return new tD(B);
1909
+ return new BD(B);
1796
1910
  } else if (C == "McDbCircle") {
1797
1911
  let B = this.imp.ObjectIdToMdDbCircle(D);
1798
- return new O(B);
1912
+ return new G(B);
1799
1913
  } else if (C == "McDbArc") {
1800
1914
  let B = this.imp.ObjectIdToMdDbArc(D);
1801
- return new iD(B);
1915
+ return new ED(B);
1802
1916
  } else if (C == "McDbBlockReference") {
1803
1917
  let B = this.imp.ObjectIdToMdDbBlockReference(D);
1804
- return new RD(B);
1918
+ return new oD(B);
1805
1919
  } else if (C == "McDbAlignedDimension") {
1806
1920
  let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
1807
- return new SD(B);
1921
+ return new aD(B);
1808
1922
  } else if (C == "McDbRotatedDimension") {
1809
1923
  let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
1810
- return new LD(B);
1924
+ return new uD(B);
1811
1925
  } else if (C == "McDbMText") {
1812
1926
  let B = this.imp.ObjectIdToMdDbMText(D);
1813
- return new AD(B);
1927
+ return new CD(B);
1928
+ } else if (this.imp.ObjectIdIsKindOf(D, "McDbEntity")) {
1929
+ let B = this.imp.ObjectIdToMdDbEntity(D);
1930
+ return new W(B);
1931
+ } else {
1932
+ let B = this.imp.ObjectIdToMdObject(D);
1933
+ return new j(B);
1814
1934
  }
1815
- return console.log("Mx ObjectIdToObject error type:" + C), null;
1816
1935
  }
1817
1936
  CreateCloneObject(D) {
1818
- let C = D.getObjectName();
1819
- if (C == "McDbLine") {
1820
- let B = new Z();
1821
- return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1822
- } else if (C == "McDbText") {
1823
- let B = new ED();
1824
- return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1825
- }
1826
- return console.log("Mx: Clone error type"), new v(D);
1937
+ if (!D)
1938
+ return null;
1939
+ 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);
1827
1941
  }
1828
1942
  setFontFilePath(D) {
1829
1943
  this.imp.setFontFilePath(D);
@@ -1834,9 +1948,9 @@ class jD {
1834
1948
  });
1835
1949
  }
1836
1950
  }
1837
- class GD {
1951
+ class VD {
1838
1952
  mxcadassemblyimp;
1839
- App = new jD();
1953
+ App = new WD();
1840
1954
  getCallResult() {
1841
1955
  return this.App.getLastCallResult();
1842
1956
  }
@@ -1855,43 +1969,43 @@ class GD {
1855
1969
  return this.App.GetCurrentMxCAD().GetDatabase();
1856
1970
  }
1857
1971
  }
1858
- const nD = "1.0.73", rC = "SharedArrayBuffer" in window, Q = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), sC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${nD}/dist/wasm/2d-st/${E}` : D + E, nC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${nD}/dist/wasm/2d/${E}` : D + E, oC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${nD}/dist/wasm/3d/${E}` : D + E, ID = (E) => new Promise((D, C) => {
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) => {
1859
1973
  const B = document.createElement("script");
1860
1974
  B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
1861
1975
  D();
1862
1976
  }, B.onerror = (F) => {
1863
1977
  C(F);
1864
1978
  };
1865
- }), aC = async (E, D, C) => {
1979
+ }), lC = async (E, D, C) => {
1866
1980
  const { locateFile: B } = C, F = B(E + ".js");
1867
- return await ID(F), await globalThis[D](C);
1981
+ return await UD(F), await globalThis[D](C);
1868
1982
  };
1869
- let i;
1870
- async function WD(E, D = rC || !Q ? sC : nC, C, B, F) {
1983
+ let r;
1984
+ async function zD(E, D = nC || !AD ? oC : aC, C, B, F) {
1871
1985
  return new Promise(async (A, t) => {
1872
1986
  try {
1873
- if (i || (i = new GD()), i.mxcadassemblyimp)
1874
- return E && E(i), A(i);
1875
- const r = await aC("mxdrawassembly_min", "mxdrawassembly", {
1987
+ if (r || (r = new VD()), r.mxcadassemblyimp)
1988
+ return E && E(r), A(r);
1989
+ const i = await lC("mxdrawassembly_min", "mxdrawassembly", {
1876
1990
  locateFile: D,
1877
1991
  wasmBinary: C
1878
1992
  });
1879
- i.mxcadassemblyimp = r;
1880
- let s = new r.McApp();
1881
- B && s.setFontFilePath(B), s.Init(), i.App.init(s), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
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);
1882
1996
  } catch (e) {
1883
1997
  t(e);
1884
1998
  }
1885
1999
  });
1886
2000
  }
1887
- const uC = (E) => {
2001
+ const cC = (E) => {
1888
2002
  let D = null;
1889
2003
  if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
1890
2004
  return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
1891
- }, lC = (E, D) => new Promise((C, B) => {
2005
+ }, mC = (E, D) => new Promise((C, B) => {
1892
2006
  try {
1893
2007
  h.createMxObject({
1894
- canvasId: uC(E),
2008
+ canvasId: cC(E),
1895
2009
  isCPPMxCAD: !0,
1896
2010
  userIdentitySign: D,
1897
2011
  callback(F) {
@@ -1903,28 +2017,28 @@ const uC = (E) => {
1903
2017
  } catch (F) {
1904
2018
  B(F);
1905
2019
  }
1906
- }), cC = async (E) => {
1907
- mD.state.MxFun || await YD();
1908
- const { multipleSelect: D, networkFonts: C, fontspath: B, locateFile: F, wasmBinary: A, canvas: t, userIdentitySign: e, onOpenFileComplete: r, fileUrl: s, onInit: o = () => {
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 = () => {
1909
2023
  h.setIniset({
1910
2024
  EnableIntelliSelect: !0,
1911
2025
  IntelliSelectType: 1,
1912
2026
  multipleSelect: !!D
1913
2027
  });
1914
2028
  } } = E || {};
1915
- await WD(() => {
2029
+ await zD(() => {
1916
2030
  }, F, A, B, C), o();
1917
- let a = await lC(t, e);
1918
- const p = h.getMxFunTHREE();
1919
- let d = new p.Vector2();
1920
- a.getRenderer().getSize(d);
1921
- const n = i.App.CreateMxCAD(d.width, d.height, a.getCanvas().id, a.isWebgl2(), a.getId());
2031
+ let a = await mC(t, e);
2032
+ const l = h.getMxFunTHREE();
2033
+ 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());
1922
2036
  return a.initMxCpp(n), a.addEvent("openFileComplete", () => {
1923
- r && r();
2037
+ i && i();
1924
2038
  }), s && n.openWebFile(s), n;
1925
2039
  };
1926
- async function mC() {
1927
- const E = new k();
2040
+ async function dC() {
2041
+ const E = new S();
1928
2042
  E.setMessage(`
1929
2043
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
1930
2044
  let D = await E.go();
@@ -1934,7 +2048,7 @@ async function mC() {
1934
2048
  if (C.length <= 0)
1935
2049
  return;
1936
2050
  let B = h.screenCoordLong2Doc(50);
1937
- C = _.b64Encode(C);
2051
+ C = J.b64Encode(C);
1938
2052
  const F = {
1939
2053
  postx: D.x,
1940
2054
  posty: D.y,
@@ -1943,7 +2057,7 @@ async function mC() {
1943
2057
  };
1944
2058
  h.call("Mx_Text", F);
1945
2059
  }
1946
- class pC extends pD {
2060
+ class hC extends bD {
1947
2061
  getGripPoints() {
1948
2062
  const { x: D, y: C, z: B } = this.center;
1949
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);
@@ -1954,75 +2068,75 @@ class pC extends pD {
1954
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;
1955
2069
  }
1956
2070
  }
1957
- const aD = (E) => {
1958
- const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: r, z: s } = C, { x: o, y: a, z: p } = B, d = A * s - r * t - A * p + a * t + r * p - a * s, n = -(F * s - e * t - F * p + o * t + e * p - o * s), c = F * r - e * A - F * a + o * A + e * a - o * r, y = -(F * r * p - F * a * s - e * A * p + e * a * t + o * A * s - o * r * t), b = 2 * (e - F), l = 2 * (r - A), m = 2 * (s - t), I = F * F + A * A + t * t - e * e - r * r - s * s, P = 2 * (o - F), R = 2 * (a - A), S = 2 * (p - t), W = F * F + A * A + t * t - o * o - a * a - p * p, _D = -(n * m * W - n * S * I - l * c * W + l * S * y + R * c * I - R * m * y) / (d * l * S - d * R * m - b * n * S + b * R * c + P * n * m - P * l * c), $D = (d * m * W - d * S * I - b * c * W + b * S * y + P * c * I - P * m * y) / (d * l * S - d * R * m - b * n * S + b * R * c + P * n * m - P * l * c), JD = -(d * l * W - d * R * I - b * n * W + b * R * y + P * n * I - P * l * y) / (d * l * S - d * R * m - b * n * S + b * R * c + P * n * m - P * l * c);
1959
- return new THREE.Vector3(_D, $D, JD);
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);
1960
2074
  };
1961
- function zD() {
1962
- const E = new k();
1963
- let D = new pC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
1964
- L.use(D), D.closed = !1, D.setColor(C);
2075
+ function KD() {
2076
+ const E = new S();
2077
+ let D = new hC(), C = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2078
+ v.use(D), D.closed = !1, D.setColor(C);
1965
2079
  let B = 0, F = "default", A = !0;
1966
2080
  const t = () => {
1967
2081
  E.setUserDraw(
1968
- (n, c) => {
1969
- D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, c.drawCustomEntity(D), c.drawLine(D.center, n);
2082
+ (n, m) => {
2083
+ D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, m.drawCustomEntity(D), m.drawLine(D.center, n);
1970
2084
  }
1971
2085
  );
1972
2086
  }, e = (n) => {
1973
2087
  if (F === "default") {
1974
- if (n === x.kOk) {
2088
+ if (n === T.kOk) {
1975
2089
  if (B === 0)
1976
2090
  E.setMessage(`
1977
2091
  \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), t();
1978
2092
  else if (B === 1)
1979
- return i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2093
+ return r.GetCurrentMxCAD().DrawEntity(new G(D.center.x, D.center.y, 0, D.radius)), !0;
1980
2094
  B++;
1981
2095
  }
1982
- n === x.kKeyWord && E.isKeyWordPicked("D") && (A = !1, t(), E.setMessage(`
2096
+ n === T.kKeyWord && E.isKeyWordPicked("D") && (A = !1, t(), E.setMessage(`
1983
2097
  \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
1984
2098
  }
1985
2099
  };
1986
- let r = [];
2100
+ let i = [];
1987
2101
  const s = (n) => {
1988
2102
  if (F === "3P" && (E.setMessage(`
1989
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === x.kOk)) {
1990
- if (B === 0 && (r.push(E.value()), E.setUserDraw((c, y) => {
1991
- y.drawLine(r[0], c);
2103
+ \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);
1992
2106
  }), E.setMessage(`
1993
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((c, y) => {
1994
- const [b, l] = r, m = c;
1995
- D.center = aD([
1996
- b,
1997
- l,
1998
- m
1999
- ]), D.radius = D.center.distanceTo(b), y.drawCustomEntity(D);
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,
2111
+ p,
2112
+ d
2113
+ ]), D.radius = D.center.distanceTo(x), w.drawCustomEntity(D);
2000
2114
  }), E.setMessage(`
2001
2115
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), B === 2)
2002
- return r.push(E.value()), D.center = aD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
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;
2003
2117
  B++;
2004
2118
  }
2005
2119
  };
2006
2120
  let o;
2007
- const a = (n, c) => {
2008
- new THREE.Line3(n, c).getCenter(D.center), D.radius = c.distanceTo(n) / 2;
2009
- }, p = (n) => {
2121
+ const a = (n, m) => {
2122
+ new THREE.Line3(n, m).getCenter(D.center), D.radius = m.distanceTo(n) / 2;
2123
+ }, l = (n) => {
2010
2124
  if (F === "2P" && (E.setMessage(`
2011
- \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === x.kOk)) {
2012
- if (B === 0 && (o = E.value(), E.setUserDraw((c, y) => {
2013
- a(o, c), y.drawCustomEntity(D), y.drawLine(o, c);
2125
+ \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === T.kOk)) {
2126
+ if (B === 0 && (o = E.value(), E.setUserDraw((m, w) => {
2127
+ a(o, m), w.drawCustomEntity(D), w.drawLine(o, m);
2014
2128
  }), E.setMessage(`
2015
2129
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), B === 1)
2016
- return a(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2130
+ return a(o, E.value()), r.GetCurrentMxCAD().DrawEntity(new G(D.center.x, D.center.y, 0, D.radius)), !0;
2017
2131
  B++;
2018
2132
  }
2019
- }, d = (n) => {
2133
+ }, c = (n) => {
2020
2134
  if (F === "T") {
2021
2135
  if (E.setMessage(`
2022
- \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === x.kOk) {
2136
+ \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === T.kOk) {
2023
2137
  if (B === 0) {
2024
- const c = E.value();
2025
- console.log(c), h.getCurrentDraw();
2138
+ const m = E.value();
2139
+ console.log(m), h.getCurrentDraw();
2026
2140
  }
2027
2141
  B++;
2028
2142
  }
@@ -2034,49 +2148,49 @@ function zD() {
2034
2148
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
2035
2149
  ), E.setKeyWords("3P 2P T"), E.goWhile(
2036
2150
  (n) => {
2037
- if (n === x.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), e(n))
2151
+ if (n === T.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), e(n))
2038
2152
  return { exit: !0 };
2039
2153
  if (s(n))
2040
2154
  return { exit: !0 };
2041
- if (p(n))
2155
+ if (l(n))
2042
2156
  return { exit: !0 };
2043
- if (d(n))
2157
+ if (c(n))
2044
2158
  return { exit: !0 };
2045
2159
  },
2046
2160
  (n) => {
2047
- n === x.kCancel && i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius));
2161
+ n === T.kCancel && r.GetCurrentMxCAD().DrawEntity(new G(D.center.x, D.center.y, 0, D.radius));
2048
2162
  }
2049
2163
  );
2050
2164
  }
2051
2165
  h.on("init", () => {
2052
- h.addCommand("Mx_Circle", zD);
2166
+ h.addCommand("Mx_Circle", KD);
2053
2167
  });
2054
- const uD = () => mD.state.MxFun.stopRunCommand();
2055
- function DD(E, D, C, B) {
2168
+ const yD = () => xD.state.MxFun.stopRunCommand();
2169
+ function iD(E, D, C, B) {
2056
2170
  const F = E - C, A = D - B;
2057
2171
  let t = 0;
2058
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;
2059
2173
  }
2060
- const T = (E, D, C) => {
2174
+ const L = (E, D, C) => {
2061
2175
  const B = () => {
2062
2176
  E.go((F) => {
2063
- if (F === x.kKeyWord && C() && B(), F === x.kOk && D() && B(), F === x.kNone && B(), F === x.kCancel)
2177
+ if (F === T.kKeyWord && C() && B(), F === T.kOk && D() && B(), F === T.kNone && B(), F === T.kCancel)
2064
2178
  return { exit: !0 };
2065
2179
  });
2066
2180
  };
2067
2181
  return B;
2068
2182
  };
2069
- async function UD() {
2070
- const E = new k();
2071
- let D = new J(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2183
+ async function HD() {
2184
+ const E = new S();
2185
+ let D = new X(), C = r.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2072
2186
  E.setMessage(`
2073
2187
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
2074
2188
  let F = await E.go();
2075
2189
  if (!F)
2076
2190
  return;
2077
2191
  E.setUserDraw((t, e) => {
2078
- e.setColor(C), B.forEach((r) => {
2079
- r.color = C, e.drawCustomEntity(r);
2192
+ e.setColor(C), B.forEach((i) => {
2193
+ i.color = C, e.drawCustomEntity(i);
2080
2194
  }), e.drawLine(F, t);
2081
2195
  });
2082
2196
  const A = () => {
@@ -2085,28 +2199,28 @@ async function UD() {
2085
2199
  };
2086
2200
  A(), E.goWhile(
2087
2201
  (t) => {
2088
- if (t === x.kOk && (D = new J(), L.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), t === x.kKeyWord) {
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) {
2089
2203
  if (E.isKeyWordPicked("E"))
2090
- uD();
2204
+ yD();
2091
2205
  else if (E.isKeyWordPicked("C")) {
2092
- const e = new J();
2093
- return e.pt1 = F.clone(), e.pt2 = B[0].pt1.clone(), L.use(e), B.push(e), F = e.pt2.clone(), uD(), { exit: !0 };
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 };
2094
2208
  } else if (E.isKeyWordPicked("U")) {
2095
2209
  const e = B.pop();
2096
2210
  e && (F = e.pt1);
2097
2211
  }
2098
2212
  }
2099
2213
  },
2100
- (t) => (t != x.kCancel && B.forEach((e) => {
2101
- i.GetCurrentMxCAD().DrawEntity(new Z(e.pt1.x, e.pt1.y, 0, e.pt2.x, e.pt2.y, 0));
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));
2102
2216
  }), { exit: !0 })
2103
2217
  );
2104
2218
  }
2105
2219
  h.on("init", () => {
2106
- h.addCommand("Mx_Line", UD);
2220
+ h.addCommand("Mx_Line", HD);
2107
2221
  });
2108
- async function dC() {
2109
- const E = new k();
2222
+ async function yC() {
2223
+ const E = new S();
2110
2224
  E.setMessage(`
2111
2225
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2112
2226
  let D = await E.go();
@@ -2117,7 +2231,7 @@ async function dC() {
2117
2231
  if (C.length <= 0)
2118
2232
  return;
2119
2233
  let B = h.screenCoordLong2Doc(50);
2120
- C = _.b64Encode(C);
2234
+ C = J.b64Encode(C);
2121
2235
  const F = {
2122
2236
  postx: D.x,
2123
2237
  posty: D.y,
@@ -2126,27 +2240,27 @@ async function dC() {
2126
2240
  };
2127
2241
  h.call("Mx_MText", F);
2128
2242
  }
2129
- async function VD() {
2130
- const E = new k();
2131
- let D = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2132
- const C = new QD();
2133
- L.use(C), C.color = D, E.setMessage(`
2243
+ async function ND() {
2244
+ const E = new S();
2245
+ let D = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2246
+ const C = new DC();
2247
+ v.use(C), C.color = D, E.setMessage(`
2134
2248
  \u6307\u5B9A\u8D77\u70B9:`);
2135
2249
  let B;
2136
2250
  E.setUserDraw((F, A) => {
2137
2251
  A.setColor(D), A.drawCustomEntity(C), B && A.drawLine(B, F);
2138
2252
  }), E.goWhile(
2139
2253
  (F) => {
2140
- if (F === x.kOk) {
2254
+ if (F === T.kOk) {
2141
2255
  const A = E.value();
2142
2256
  C.points.push(E.value()), B = A, E.setMessage(`
2143
2257
  \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), E.setKeyWords("[\u5706\u5F27(A)/\u5BBD\u5EA6(W)]");
2144
2258
  } else
2145
- F === x.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2259
+ F === T.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2146
2260
  },
2147
2261
  (F) => {
2148
- if (F === x.kCancel) {
2149
- let A = i.GetCurrentMxCAD(), t = new tD();
2262
+ if (F === T.kCancel) {
2263
+ let A = r.GetCurrentMxCAD(), t = new BD();
2150
2264
  for (let e = 0; e < C.points.length; e++)
2151
2265
  t.addVertexAt(C.points[e]);
2152
2266
  A.DrawEntity(t);
@@ -2155,50 +2269,50 @@ async function VD() {
2155
2269
  );
2156
2270
  }
2157
2271
  h.on("init", () => {
2158
- h.addCommand("Mx_Pline", VD);
2272
+ h.addCommand("Mx_Pline", ND);
2159
2273
  });
2160
- async function KD() {
2161
- const E = new k();
2274
+ async function _D() {
2275
+ const E = new S();
2162
2276
  E.setMessage(`
2163
2277
  \u6307\u5B9A\u4E00\u70B9:`);
2164
- let D = await E.go(), C = new O();
2278
+ let D = await E.go(), C = new G();
2165
2279
  C.setCenter(D.x, D.y, D.z);
2166
- let B = 5, F = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2280
+ let B = 5, F = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2167
2281
  E.setUserDraw((A, t) => {
2168
2282
  t.setColor(F), C.radius = D.distanceTo(A);
2169
- let e = C.getEndParam().val, s = C.getDistAtParam(e).val / B, o = 0, a = new THREE.Vector3(), p = new THREE.Vector3();
2170
- for (let d = 0; d < B; d++) {
2283
+ let e = C.getEndParam().val, s = C.getDistAtParam(e).val / B, o = 0, a = new THREE.Vector3(), l = new THREE.Vector3();
2284
+ for (let c = 0; c < B; c++) {
2171
2285
  let n = C.getPointAtDist(o).val;
2172
- o += s, d > 0 ? t.drawMcDbLine(n.x, n.y, n.z, a.x, a.y, a.z) : p = new THREE.Vector3(n.x, n.y, n.z), d == B - 1 && t.drawMcDbLine(n.x, n.y, n.z, p.x, p.y, p.z), a = new THREE.Vector3(n.x, n.y, n.z);
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);
2173
2287
  }
2174
2288
  }), E.setMessage(`
2175
2289
  \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
2176
2290
  }
2177
- h.addCommand("Mx_Polygon", KD);
2178
- function hC(E, D, C) {
2179
- const B = E.x, F = D.x, A = C.x, t = E.y, e = D.y, r = C.y, s = B - F, o = t - e, a = B - A, p = t - r, d = (B * B - F * F + (t * t - e * e)) / 2, n = (B * B - A * A + (t * t - r * r)) / 2, c = o * a - s * p, y = -(p * d - o * n) / c, b = -(s * n - a * d) / c;
2180
- return new THREE.Vector3(y, b, 0);
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);
2181
2295
  }
2182
- function wC(E, D) {
2296
+ function gC(E, D) {
2183
2297
  const C = E.x, B = E.y, F = D.x, A = D.y;
2184
2298
  return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
2185
2299
  }
2186
- function yC(E, D, C) {
2300
+ function xC(E, D, C) {
2187
2301
  let B;
2188
2302
  E < C ? B = C - E : B = C - E + 360;
2189
2303
  let F;
2190
2304
  return E < D ? F = D - E : F = D - E + 360, F > B;
2191
2305
  }
2192
- function CD(E, D, C) {
2306
+ function rD(E, D, C) {
2193
2307
  const B = E.x, F = D.x, A = E.y, t = D.y;
2194
- let e, r, s;
2195
- return e = (A - t) / C, r = (B - F) / C, r >= 0.99999 && (r = 0.99999), r <= -0.99999 && (r = -0.99999), s = Math.acos(r), s = s / Math.PI * 180, e < -0.05 && (s = 360 - s), {
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), {
2196
2310
  sin: e,
2197
- cos: r,
2311
+ cos: i,
2198
2312
  angle: s
2199
2313
  };
2200
2314
  }
2201
- class oD extends pD {
2315
+ class dD extends bD {
2202
2316
  constructor() {
2203
2317
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
2204
2318
  }
@@ -2206,7 +2320,7 @@ class oD extends pD {
2206
2320
  return "MxDbCircle";
2207
2321
  }
2208
2322
  create() {
2209
- return new oD();
2323
+ return new dD();
2210
2324
  }
2211
2325
  getArcBulge(D, C, B) {
2212
2326
  const F = D.distanceTo(C);
@@ -2217,13 +2331,13 @@ class oD extends pD {
2217
2331
  }
2218
2332
  getArcMidPoint(D, C, B, F, A) {
2219
2333
  const t = D, e = B * Math.PI / 180;
2220
- let r = F * Math.PI / 180;
2334
+ let i = F * Math.PI / 180;
2221
2335
  const s = new THREE.Vector3(), o = new THREE.Vector3();
2222
- s.x = t.x + C * Math.cos(e), s.y = t.y + C * Math.sin(e), o.x = t.x + C * Math.cos(r), o.y = t.y + C * Math.sin(r);
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);
2223
2337
  const a = C;
2224
- (A ? B < F : B > F) && (r += Math.PI * 2);
2225
- const p = new THREE.Vector3();
2226
- return p.x = t.x + a * Math.cos((e + r) / 2), p.y = t.y + a * Math.sin((e + r) / 2), [s, p, o, this.center];
2338
+ (A ? B < F : B > F) && (i += Math.PI * 2);
2339
+ 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];
2227
2341
  }
2228
2342
  getGripPoints() {
2229
2343
  return this.getArcMidPoint(
@@ -2243,129 +2357,129 @@ class oD extends pD {
2243
2357
  upDatePoints(D, C, B) {
2244
2358
  D[C].add(B);
2245
2359
  const [F, A, t] = D;
2246
- this.center = hC(F, t, A), this.radius = wC(A, this.center);
2247
- const e = CD(F, this.center, this.radius), r = CD(t, this.center, this.radius), s = CD(A, this.center, this.radius);
2248
- this.clockwise = yC(
2249
- r.angle,
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,
2250
2364
  e.angle,
2251
2365
  s.angle
2252
- ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2366
+ ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(i.angle);
2253
2367
  }
2254
2368
  }
2255
- async function HD() {
2256
- let E = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2257
- const D = new k();
2369
+ async function qD() {
2370
+ let E = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2371
+ const D = new S();
2258
2372
  D.setMessage(`
2259
2373
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
2260
- let C = new oD();
2261
- C.closed = !1, L.use(C);
2374
+ let C = new dD();
2375
+ C.closed = !1, v.use(C);
2262
2376
  let B, F, A;
2263
- const t = T(
2377
+ const t = L(
2264
2378
  D,
2265
2379
  () => {
2266
2380
  B = D.value(), D.setMessage(`
2267
- \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((l, m) => {
2268
- m.setColor(E), m.drawLine(B, l);
2269
- }), c();
2381
+ \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((p, d) => {
2382
+ d.setColor(E), d.drawLine(B, p);
2383
+ }), m();
2270
2384
  },
2271
2385
  () => {
2272
2386
  if (D.isKeyWordPicked("C")) {
2273
- const l = new $();
2274
- l.color = E, C.center = D.value(), l.center = D.value(), D.setMessage(`
2275
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), r();
2387
+ const p = new Q();
2388
+ p.color = E, C.center = D.value(), p.center = D.value(), D.setMessage(`
2389
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), i();
2276
2390
  } else
2277
2391
  return !0;
2278
2392
  }
2279
2393
  );
2280
2394
  let e;
2281
- const r = T(
2395
+ const i = L(
2282
2396
  D,
2283
2397
  () => {
2284
- e = D.value(), A = new $(), A.closed = !1, L.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2285
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((l, m) => {
2286
- m.drawCustomEntity(A), m.setColor(E), m.drawLine(e, l);
2398
+ e = D.value(), A = new Q(), A.closed = !1, v.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2399
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((p, d) => {
2400
+ d.drawCustomEntity(A), d.setColor(E), d.drawLine(e, p);
2287
2401
  }), a();
2288
2402
  },
2289
2403
  () => {
2290
2404
  }
2291
2405
  );
2292
2406
  let s, o;
2293
- const a = T(
2407
+ const a = L(
2294
2408
  D,
2295
2409
  () => {
2296
2410
  s = D.value(), A.endPoint = s, D.setMessage(
2297
2411
  `
2298
2412
  \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)]:`
2299
- ), D.setKeyWords("A L R"), o = new J(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((l, m) => {
2300
- A.startPoint = l, o.pt2 = l, m.drawCustomEntity(A), m.drawCustomEntity(o);
2301
- }), d();
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) => {
2414
+ A.startPoint = p, o.pt2 = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2415
+ }), c();
2302
2416
  },
2303
2417
  () => {
2304
2418
  }
2305
2419
  );
2306
- let p;
2307
- const d = T(
2420
+ let l;
2421
+ const c = L(
2308
2422
  D,
2309
2423
  () => {
2310
- p = D.value(), A.startPoint = p, A.endPoint = s, y.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2424
+ l = D.value(), A.startPoint = l, A.endPoint = s, w.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2311
2425
  },
2312
2426
  () => {
2313
2427
  if (D.isKeyWordPicked("A"))
2314
2428
  return D.setMessage(
2315
2429
  `
2316
2430
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2317
- ), D.setKeyWords("R"), D.setUserDraw((l, m) => {
2318
- A.startPoint = l, m.drawCustomEntity(A), m.drawCustomEntity(o);
2431
+ ), D.setKeyWords("R"), D.setUserDraw((p, d) => {
2432
+ A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2319
2433
  }), !0;
2320
2434
  if (D.isKeyWordPicked("L"))
2321
2435
  return D.setMessage(
2322
2436
  `
2323
2437
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2324
- ), D.setKeyWords("R"), D.setUserDraw((l, m) => {
2325
- A.startPoint = l, m.drawCustomEntity(A), m.drawCustomEntity(o);
2438
+ ), D.setKeyWords("R"), D.setUserDraw((p, d) => {
2439
+ A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2326
2440
  }), !0;
2327
2441
  if (D.isKeyWordPicked("R"))
2328
2442
  D.setMessage(
2329
2443
  `
2330
2444
  \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${A.radius ? "<" + A.radius + ">" : ""}:`
2331
- ), D.setKeyWords(""), D.setUserDraw((l, m) => {
2332
- m.drawLine(l, A.center), A.startPoint = l, m.drawCustomEntity(A);
2445
+ ), D.setKeyWords(""), D.setUserDraw((p, d) => {
2446
+ d.drawLine(p, A.center), A.startPoint = p, d.drawCustomEntity(A);
2333
2447
  }), a();
2334
2448
  else
2335
2449
  return !0;
2336
2450
  }
2337
2451
  );
2338
2452
  let n;
2339
- const c = T(
2453
+ const m = L(
2340
2454
  D,
2341
2455
  () => {
2342
2456
  n = D.value(), D.setMessage(`
2343
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new XD(), F.color = E, F.autoClockwise = !0, F.closed = !1, L.use(F), D.setUserDraw((l, m) => {
2344
- F.point1 = B, F.point3 = n, F.point2 = l, m.drawCustomEntity(F);
2345
- }), b();
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) => {
2458
+ F.point1 = B, F.point3 = n, F.point2 = p, d.drawCustomEntity(F);
2459
+ }), x();
2346
2460
  },
2347
2461
  () => {
2348
2462
  if (D.isKeyWordPicked("C"))
2349
- A = new $(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2350
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((l, m) => {
2351
- A.startPoint = B, m.drawLine(l, A.startPoint);
2352
- }), r();
2463
+ A = new Q(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2464
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2465
+ A.startPoint = B, d.drawLine(p, A.startPoint);
2466
+ }), i();
2353
2467
  else if (D.isKeyWordPicked("E"))
2354
- A = new $(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2355
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((l, m) => {
2356
- A.startPoint = B, m.drawLine(l, A.startPoint);
2357
- }), r();
2468
+ A = new Q(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2469
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2470
+ A.startPoint = B, d.drawLine(p, A.startPoint);
2471
+ }), i();
2358
2472
  else
2359
2473
  return !0;
2360
2474
  }
2361
2475
  );
2362
- let y = i.GetCurrentMxCAD();
2363
- const b = T(
2476
+ let w = r.GetCurrentMxCAD();
2477
+ const x = L(
2364
2478
  D,
2365
2479
  () => {
2366
2480
  F.point1 = B, F.point2 = D.value(), F.point3 = n;
2367
- let l = new iD();
2368
- l.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), y.DrawEntity(l);
2481
+ let p = new ED();
2482
+ p.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), w.DrawEntity(p);
2369
2483
  },
2370
2484
  () => {
2371
2485
  if (D.isKeyWordPicked("C"))
@@ -2379,26 +2493,26 @@ async function HD() {
2379
2493
  t();
2380
2494
  }
2381
2495
  h.on("init", () => {
2382
- h.addCommand("Mx_Arc", HD);
2496
+ h.addCommand("Mx_Arc", qD);
2383
2497
  });
2384
- function ND() {
2385
- const E = new k(), D = new DC();
2386
- D.closed = !1, L.use(D), E.setMessage(`
2498
+ function ZD() {
2499
+ const E = new S(), D = new BC();
2500
+ D.closed = !1, v.use(D), E.setMessage(`
2387
2501
  \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2388
2502
  let C, B = new THREE.Vector3();
2389
- T(
2503
+ L(
2390
2504
  E,
2391
2505
  () => {
2392
2506
  C = E.value(), E.setUserDraw((s, o) => {
2393
2507
  const a = new THREE.Line3(C, s);
2394
- a.getCenter(B), D.center = B, D.xRadius = a.distance() / 2, D.yRadius = D.xRadius, D.rotation = DD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
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);
2395
2509
  }), E.setMessage(`
2396
2510
  \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
2397
2511
  },
2398
2512
  () => {
2399
2513
  }
2400
2514
  )();
2401
- const A = T(
2515
+ const A = L(
2402
2516
  E,
2403
2517
  () => {
2404
2518
  E.setUserDraw((s, o) => {
@@ -2408,77 +2522,252 @@ function ND() {
2408
2522
  },
2409
2523
  () => {
2410
2524
  }
2411
- ), t = T(
2525
+ ), t = L(
2412
2526
  E,
2413
2527
  () => {
2414
2528
  E.setMessage(`
2415
2529
  \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2416
- D.startAngle = DD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2530
+ D.startAngle = iD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2417
2531
  }), e();
2418
2532
  },
2419
2533
  () => {
2420
2534
  }
2421
- ), e = T(
2535
+ ), e = L(
2422
2536
  E,
2423
2537
  () => {
2424
2538
  E.setUserDraw((s, o) => {
2425
- D.endAngle = DD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2539
+ D.endAngle = iD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2426
2540
  }), E.setMessage(`
2427
- \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
2541
+ \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), i();
2428
2542
  },
2429
2543
  () => {
2430
2544
  }
2431
- ), r = T(
2545
+ ), i = L(
2432
2546
  E,
2433
2547
  () => {
2434
- let s = new w(D.xRadius, 0, 0);
2435
- s.rotateBy(D.rotation, w.kZAxis), i.GetCurrentMxCAD().DrawEntity(new rD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2548
+ 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));
2436
2550
  },
2437
2551
  () => {
2438
2552
  }
2439
2553
  );
2440
2554
  }
2441
- function gC() {
2442
- const E = new k(), D = new CC(), C = new BC();
2443
- let B = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2555
+ function bC() {
2556
+ const E = new S(), D = new EC(), C = new FC();
2557
+ let B = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2444
2558
  C.setColor(B), E.setMessage(`
2445
2559
  \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2446
2560
  C.point1 = E.value(), D.setDraw((F) => {
2447
2561
  C.point2 = F, D.drawCustomEntity(C);
2448
2562
  }), E.setUserDraw(D), E.setMessage(`
2449
2563
  \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2450
- i.GetCurrentMxCAD().DrawEntity(new rD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2564
+ r.GetCurrentMxCAD().DrawEntity(new mD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2451
2565
  });
2452
2566
  });
2453
2567
  }
2454
2568
  h.on("init", () => {
2455
- h.addCommand("Mx_EllipseArc", ND), h.addCommand("Mx_Ellipse", gC);
2569
+ h.addCommand("Mx_EllipseArc", ZD), h.addCommand("Mx_Ellipse", bC);
2456
2570
  });
2457
- async function qD() {
2458
- let E = sD.getCurrentSelect();
2571
+ async function $D() {
2572
+ let E = z.getCurrentSelect();
2459
2573
  if (E.length > 0) {
2460
2574
  E.forEach((C) => {
2461
2575
  C.erase();
2462
2576
  });
2463
2577
  return;
2464
2578
  }
2465
- let D = new OD();
2579
+ let D = new q();
2466
2580
  !await D.userSelect(`
2467
2581
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`) || D.forEach((C) => {
2468
2582
  C.erase();
2469
2583
  });
2470
2584
  }
2471
- h.addCommand("Mx_Erase", qD);
2472
- const bC = async (E, D, C) => {
2585
+ function tD(E) {
2586
+ let D, C;
2587
+ if (E.forEach((B) => {
2588
+ let F = B.getMcDbEntity();
2589
+ if (F == null)
2590
+ return;
2591
+ 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)));
2593
+ }), D && C)
2594
+ return { minPt: D, maxPt: C };
2595
+ }
2596
+ async function fC() {
2597
+ 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))
2602
+ return;
2603
+ break;
2604
+ }
2605
+ let D, C;
2606
+ if (E.length >= 10) {
2607
+ let t = tD(E);
2608
+ t && (D = t.minPt, C = t.maxPt);
2609
+ }
2610
+ let B = new Y();
2611
+ B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2612
+ let F = await B.go();
2613
+ if (!F)
2614
+ return;
2615
+ B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2616
+ 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);
2619
+ }
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));
2623
+ }
2624
+ });
2625
+ let A = await B.go();
2626
+ 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));
2630
+ }
2631
+ }
2632
+ async function MC() {
2633
+ 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))
2638
+ return;
2639
+ break;
2640
+ }
2641
+ let D, C;
2642
+ if (E.length >= 10) {
2643
+ let t = tD(E);
2644
+ t && (D = t.minPt, C = t.maxPt);
2645
+ }
2646
+ let B = new Y();
2647
+ B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2648
+ let F = await B.go();
2649
+ if (!F)
2650
+ return;
2651
+ B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2652
+ 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);
2655
+ }
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));
2659
+ }
2660
+ });
2661
+ let A = await B.go();
2662
+ if (!!A)
2663
+ for (let t = 0; t < E.length; t++) {
2664
+ let e = E[t].getMcDbObject();
2665
+ !e || e.Move(F, A);
2666
+ }
2667
+ }
2668
+ async function PC() {
2669
+ let E;
2670
+ for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2671
+ let l = new q();
2672
+ if (!await l.userSelect(`
2673
+ \u9009\u62E9\u65CB\u8F6C\u5BF9\u8C61`) || (E = l.getIds(), E.length == 0))
2674
+ return;
2675
+ break;
2676
+ }
2677
+ let D, C, B = tD(E);
2678
+ B && (D = B.minPt, C = B.maxPt);
2679
+ let F = new Y();
2680
+ F.setMessage("\u6307\u5B9A\u57FA\u70B9");
2681
+ let A = await F.go();
2682
+ if (A == null)
2683
+ return;
2684
+ 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());
2689
+ }
2690
+ m = r.GetCurrentMxCAD().docCoord2Cad(m), p.setToRotation(x, y.kZAxis, m);
2691
+ for (let d = 0; d < E.length && d < 10; d++) {
2692
+ let f = E[d].clone();
2693
+ !f || (f.TransformBy(p), c.drawMcDbEntity(f));
2694
+ }
2695
+ });
2696
+ let t = await F.go();
2697
+ if (!t)
2698
+ 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);
2701
+ for (let l = 0; l < E.length; l++) {
2702
+ let c = E[l].getMcDbObject();
2703
+ !c || c.TransformBy(a);
2704
+ }
2705
+ }
2706
+ async function TC() {
2707
+ let E;
2708
+ for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2709
+ let m = new q();
2710
+ if (!await m.userSelect(`
2711
+ \u9009\u62E9\u7F29\u653E\u5BF9\u8C61`) || (E = m.getIds(), E.length == 0))
2712
+ return;
2713
+ break;
2714
+ }
2715
+ let D, C, B = tD(E);
2716
+ if (!B)
2717
+ return;
2718
+ 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)
2725
+ 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);
2728
+ if (d < 1e-5)
2729
+ 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());
2736
+ }
2737
+ p = r.GetCurrentMxCAD().docCoord2Cad(p), b.setToScaling(f, p);
2738
+ for (let g = 0; g < E.length && g < 10; g++) {
2739
+ let M = E[g].clone();
2740
+ !M || (M.TransformBy(b), w.drawMcDbEntity(M));
2741
+ }
2742
+ });
2743
+ let s = await e.go();
2744
+ if (!s)
2745
+ return;
2746
+ let o = s, a = i, l = o.distanceTo(a);
2747
+ if (l < 1e-5)
2748
+ return;
2749
+ let c = l / t;
2750
+ c > 1e5 && (c = 1e5);
2751
+ let n = new I();
2752
+ a = r.GetCurrentMxCAD().docCoord2Cad(a), n.setToScaling(c, a);
2753
+ for (let m = 0; m < E.length; m++) {
2754
+ let w = E[m].getMcDbObject();
2755
+ !w || w.TransformBy(n);
2756
+ }
2757
+ }
2758
+ 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);
2760
+ });
2761
+ const kC = async (E, D, C) => {
2473
2762
  const { locateFile: B } = C, F = B(E + ".js");
2474
- return await ID(F), await globalThis[D](C);
2763
+ return await UD(F), await globalThis[D](C);
2475
2764
  };
2476
- function xC(E) {
2765
+ function RC(E) {
2477
2766
  return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
2478
2767
  }
2479
- function fC(E, D) {
2768
+ function SC(E, D) {
2480
2769
  const C = () => requestAnimationFrame(D);
2481
- let B = xC(C);
2770
+ let B = RC(C);
2482
2771
  if (B) {
2483
2772
  B.observe(E);
2484
2773
  return;
@@ -2488,7 +2777,7 @@ function fC(E, D) {
2488
2777
  return;
2489
2778
  }
2490
2779
  }
2491
- function MC(E, D) {
2780
+ function LC(E, D) {
2492
2781
  let C = null;
2493
2782
  return function(...B) {
2494
2783
  C || (C = setTimeout(() => {
@@ -2496,52 +2785,52 @@ function MC(E, D) {
2496
2785
  }, D));
2497
2786
  };
2498
2787
  }
2499
- class K {
2788
+ class N {
2500
2789
  static onloadWasmMxDraw3dModel;
2501
2790
  canvas;
2502
2791
  constructor(D) {
2503
2792
  const C = () => {
2504
- const a = this.canvas.parentElement?.clientWidth || window.innerWidth, p = this.canvas.parentElement?.clientHeight || window.innerHeight;
2505
- let d = Math.min(a, window.screen.availWidth), n = Math.min(p, window.screen.availHeight);
2506
- d = Math.max(A, d), n = Math.max(t, n), this.canvas.style.width = d + 1 + "px", this.canvas.style.height = n + "px";
2507
- const c = window.devicePixelRatio || 1;
2508
- this.canvas.width = d * c, this.canvas.height = n * c;
2509
- }, B = MC(C, 50), {
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";
2796
+ const m = window.devicePixelRatio || 1;
2797
+ this.canvas.width = c * m, this.canvas.height = n * m;
2798
+ }, B = LC(C, 50), {
2510
2799
  canvas: F,
2511
2800
  minWidth: A = 300,
2512
2801
  minHeight: t = 300,
2513
2802
  updateCanvasSize: e = B,
2514
- ...r
2803
+ ...i
2515
2804
  } = D;
2516
2805
  let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2517
- o == null && (o = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = o, r.canvas = this.canvas;
2518
- for (let a in r)
2519
- this[a] = r[a];
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];
2520
2809
  if (this.canvas instanceof HTMLCanvasElement) {
2521
2810
  const a = this.canvas.parentElement || document.body;
2522
- fC(a, e);
2811
+ SC(a, e);
2523
2812
  } else
2524
2813
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
2525
- window.onresize = C, C(), bC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2526
- K.onloadWasmMxDraw3dModel && K.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (a) => {
2527
- const p = new FileReader();
2528
- p.onload = () => {
2529
- if (!!p.result && p.result instanceof ArrayBuffer) {
2530
- var d = new Uint8Array(p.result);
2531
- const n = this._malloc(d.length);
2532
- this.HEAPU8.set(d, n), this.openFromMemory(a.name, n, d.length, !0), this.displayGround(!0), this.canvas.focus();
2814
+ window.onresize = C, C(), kC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2815
+ N.onloadWasmMxDraw3dModel && N.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (a) => {
2816
+ const l = new FileReader();
2817
+ l.onload = () => {
2818
+ if (!!l.result && l.result instanceof ArrayBuffer) {
2819
+ var c = new Uint8Array(l.result);
2820
+ 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();
2533
2822
  }
2534
- }, p.readAsArrayBuffer(a);
2823
+ }, l.readAsArrayBuffer(a);
2535
2824
  };
2536
2825
  });
2537
2826
  }
2538
2827
  }
2539
- function TC(E, D) {
2828
+ function OC(E, D) {
2540
2829
  return new Promise(async (C, B) => {
2541
2830
  try {
2542
- E.locateFile || (E.locateFile = oC);
2543
- const F = new K(E);
2544
- K.onloadWasmMxDraw3dModel = () => {
2831
+ E.locateFile || (E.locateFile = uC);
2832
+ const F = new N(E);
2833
+ N.onloadWasmMxDraw3dModel = () => {
2545
2834
  C(F), D && D(F);
2546
2835
  };
2547
2836
  } catch (F) {
@@ -2549,137 +2838,139 @@ function TC(E, D) {
2549
2838
  }
2550
2839
  });
2551
2840
  }
2552
- const PC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2841
+ const IC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2553
2842
  __proto__: null,
2554
- b64Encode: dD,
2555
- b64Decode: hD,
2556
- saveAsFileDialog: wD,
2557
- downloadFile: yD,
2558
- downloadFileFromUrl: gD,
2559
- MxTools: _,
2843
+ b64Encode: fD,
2844
+ b64Decode: MD,
2845
+ saveAsFileDialog: PD,
2846
+ downloadFile: TD,
2847
+ downloadFileFromUrl: kD,
2848
+ MxTools: J,
2560
2849
  McGePoint3d: u,
2561
- McGeVector3d: w,
2562
- McGeMatrix3d: U,
2563
- McGeLongArray: FC,
2564
- McGeStringArray: bD,
2565
- McGePoint3dArray: AC,
2566
- getFilterImp: z,
2567
- McDrawResbuf: q,
2568
- MxCADUtilityClass: vD,
2569
- MxCADUtility: sD,
2570
- MxCADSelectionSet: OD,
2571
- McRxObject: j,
2572
- McObjectIdType: f,
2573
- McObjectId: M,
2574
- McDbObject: v,
2850
+ McGeVector3d: y,
2851
+ 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,
2862
+ McObjectIdType: k,
2863
+ McObjectId: R,
2864
+ McDbObject: j,
2575
2865
  get McDb() {
2576
- return BD;
2866
+ return sD;
2577
2867
  },
2578
- McCmColor: G,
2579
- McDbLayerTableRecord: iC,
2580
- McDbLayerTable: xD,
2581
- McDbLinetypeTable: fD,
2582
- McDbTextStyleTable: MD,
2583
- McDbDatabase: FD,
2584
- McDbBlockTableRecordIterator: TD,
2585
- McDbBlockTableRecord: Y,
2586
- McDbBlockTableIterator: kD,
2587
- McDbBlockTable: PD,
2588
- McDbEntity: H,
2589
- McDbCurve: N,
2590
- McDbLine: Z,
2591
- McDbText: ED,
2592
- McDbMText: AD,
2593
- McDbCircle: O,
2594
- McDbPolyline: tD,
2595
- McDbBlockReference: RD,
2596
- McDbDimension: eD,
2597
- McDbAlignedDimension: SD,
2598
- McDbRotatedDimension: LD,
2599
- McDbArc: iD,
2600
- McDbEllipse: rD,
2601
- McObject: V,
2602
- McAppType: jD,
2603
- MxCppType: GD,
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,
2604
2894
  get MxCpp() {
2605
- return i;
2895
+ return r;
2606
2896
  },
2607
- loadMxCADassembly: WD,
2608
- createMxCad: cC,
2609
- drawText: mC,
2610
- drawCircle: zD,
2611
- drawLine: UD,
2612
- drawMText: dC,
2613
- drawPolyLine: VD,
2614
- drawPolygon: KD,
2615
- drawArc: HD,
2616
- drawEllipticalArc: ND,
2617
- mxErase: qD,
2618
- MxDraw3d: K,
2619
- loadMxCADassembly3d: TC
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
2620
2910
  }, Symbol.toStringTag, { value: "Module" }));
2621
2911
  export {
2622
- jD as McAppType,
2623
- G as McCmColor,
2624
- BD as McDb,
2625
- SD as McDbAlignedDimension,
2626
- iD as McDbArc,
2627
- RD as McDbBlockReference,
2628
- PD as McDbBlockTable,
2629
- kD as McDbBlockTableIterator,
2630
- Y as McDbBlockTableRecord,
2631
- TD as McDbBlockTableRecordIterator,
2632
- O as McDbCircle,
2633
- N as McDbCurve,
2634
- FD as McDbDatabase,
2635
- eD as McDbDimension,
2636
- rD as McDbEllipse,
2637
- H as McDbEntity,
2638
- xD as McDbLayerTable,
2639
- iC as McDbLayerTableRecord,
2640
- Z as McDbLine,
2641
- fD as McDbLinetypeTable,
2642
- AD as McDbMText,
2643
- v as McDbObject,
2644
- tD as McDbPolyline,
2645
- LD as McDbRotatedDimension,
2646
- ED as McDbText,
2647
- MD as McDbTextStyleTable,
2648
- q as McDrawResbuf,
2649
- FC as McGeLongArray,
2650
- U as McGeMatrix3d,
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,
2933
+ 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,
2940
+ I as McGeMatrix3d,
2651
2941
  u as McGePoint3d,
2652
- AC as McGePoint3dArray,
2653
- bD as McGeStringArray,
2654
- w as McGeVector3d,
2655
- V as McObject,
2656
- M as McObjectId,
2657
- f as McObjectIdType,
2658
- j as McRxObject,
2659
- OD as MxCADSelectionSet,
2660
- sD as MxCADUtility,
2661
- vD as MxCADUtilityClass,
2662
- i as MxCpp,
2663
- GD as MxCppType,
2664
- K as MxDraw3d,
2665
- _ as MxTools,
2666
- hD as b64Decode,
2667
- dD as b64Encode,
2668
- cC as createMxCad,
2669
- PC as default,
2670
- yD as downloadFile,
2671
- gD as downloadFileFromUrl,
2672
- HD as drawArc,
2673
- zD as drawCircle,
2674
- ND as drawEllipticalArc,
2675
- UD as drawLine,
2676
- dC as drawMText,
2677
- VD as drawPolyLine,
2678
- KD as drawPolygon,
2679
- mC as drawText,
2680
- z as getFilterImp,
2681
- WD as loadMxCADassembly,
2682
- TC as loadMxCADassembly3d,
2683
- qD as mxErase,
2684
- wD as saveAsFileDialog
2942
+ eC as McGePoint3dArray,
2943
+ RD as McGeStringArray,
2944
+ y as McGeVector3d,
2945
+ H as McObject,
2946
+ R as McObjectId,
2947
+ 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,
2956
+ 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
2685
2976
  };