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