BLENDER_v234REND `㿿SceneSRdsiVjSR1-Animation?T\TTtijhk5DATA?W?DATA?W??DATA?W\??DATA\?W??DATA?WT\?DATATWT?DATATWTTDATATW\TTDATA\TWTTDATATWT\TDATATWTTDATATWTDATA\TXT??DATATXT\T?\?DATATXTT?TDATATX\TT?TDATA\TXTT?TDATATXT\TTTDATATXTT?\TDATATX\TTT\TDATA\TXTTTTDATATXT\TTTDATATXTT\TTDATATX\TTTTDATA\TXTT?TDATATXT\T?TDATATXTT?TDATATX\TTTTDATA\TXTT\?TDATATX\TTTDATAtiZ|i?TT\?J{iduiziDATAuiYviLink and MaterialsEditing>DATAviYwiuiMeshEditingF>DATAwiYxiviAnim settingsObject>DATAxiYyiwiDrawObjectF>DATAyiYzixiConstraintsObject>DATAziYyiEffectsObjectDATA{iHd333?\<@DhC)DhCC(BDC?z?DATATdJ{i333?\</9DATA|iZ}itiT??TDATA}iZj|i?TT\T|+9=U_=o?  #$Stjj~iiDATA~iYiTransform PropertiesView3d>DATAiY~i3D Viewport propertiesView3d>"DATAtjCj333?e|????????|+9=U_=o?;AkA?|+9=U_=o??????;Al B?=CFF DATATjJtj333?e|/9DATAjZj}i\TTTT??Pף  #$jjjjDATAjYTransform PropertiesIpo!>DATAjGj333?kzC̽̌?zC@ #< #<`jFzD OBzC̽̌?DATAjKjj333?k@zAAQAQAB A@CC #<@iiDATA,ijiAMffANkDATA,ijiiETAlDATA,ijiiBO`AlDATA,ijiBOp=AlDATAhjNxjj 333?k6 j>DATAxjCjj333?k??? ???? A???PA A!O?j?}GCHB? Al B? #<C@h@hDATATjJxj333?k/9DATAjZjT?TT 'jjjjDATAjYjLink and MaterialsEditing>DATAjYjMeshEditingF>DATAjj 333?v<zCCHBC'?CFC= ADATAjHjj333?v<#DhC`DpJgChCC(BDC?z?DATATjJj333?v</9SRdjVjsiSR2-Model TT\TTjjhkDATATWTDATATW\TTDATA\TWTTDATATWT\TDATATWTT(DATATW\TT(DATA\TWTTDATATWT\TDATATWTT4(DATATWT4DATA\TXTT\TDATATXT\TTTDATATXTTTTDATATX\TTTTDATA\TXTTTTDATATXT\TT\TDATATXTT\TTDATATX\TT\TTDATA\TXTTT\TDATATXT\TTTDATATXTTTTDATATX\TTTTDATA\TXTT\TTDATATXT\TTTDATATXTTTDATAjZjTTTT0>ЮR?o?' '  OjjYjjDATAjYjPreviewLamp>DATAjYjjLampLampF>DATAjYjjSpotLamp>DATAjYjjTexture and InputLamp>DATAjYjjMap ToLamp>jDATAjYjjPreviewMaterial>DATAjYjjMaterialMaterialF>DATAjYjjPreviewWorld>DATAjYjjWorldWorldF>DATAjYjjMist Stars PhysicsWorld>DATAjYjjTexture and InputWorld>DATAjYjjMap ToWorld>jDATAjYjjOutputRender>DATAjYjjRenderRenderF>DATAjYjjAnimRender>DATAjYjjFormatRender>DATAjYjjLink and MaterialsEditing>DATAjYjjMeshEditingF>DATAjYjjMesh ToolsEditing>DATAjYjjMesh Tools 1Editing>DATAjYjjCameraEditingF>DATAjYjjShadersMaterial>DATAjYjjTextureMaterial>DATAjYjjAnim settingsObject>DATAjYjjDrawObjectF>DATAjYjjConstraintsObject>DATAjYjjScriptlinksScript>DATAjYjjEffectsObjectjDATAjYjjMap InputMaterial>jDATAjYjjMap ToMaterial>jDATAjYjjAnimAnim>DATAjYjjSoundSound>DATAjYjjListenerSoundF>DATAjYjjSequencerSound>DATAjYjjRampsMaterialF>jDATAjYjjMirror TranspMaterial>jDATAjYjjParticle InteractionObject>jDATAjYjTransform PropertiesView3d>"DATAjH|j333?jDhC&D mCC(BDC?z?  lmDATA|jCij333?j???β>ݾ? ?%% ??% >β>?0o0>ЮRЮR?o!BW\e=Oc:?* *@*&H%H H?>β>?0>ЮR?o????β>ݾ??*@l B? #<Cݾβ> W WDATAhjNji 333?j = "DATAjKjj333?j@̌AR|B1@lA A@CC #<@DATATjJj333?j/9DATAjZjj\TT\TTDATAjZjjTTTT?[? JL5)5)C5D   jjjjDATAjYTransform PropertiesView3d>"DATAhjNj 333?j_kB8 O?DATAjCjj333?j*?Z6~)?K?ȳ>nUS?m?F"?*?K?nX6ȳ>US?~)?m?x@;@?V~)?6k0)~)^?>>>8Su?e|m5$AF"A ?E:?Y¾>5?@3FeAXB8iA@?[? JL*?Z6~)?K?ȳ>nUS?m?F"?68K?SԾ54Z̐ǾF"Al B?=C   DATAjGjj333?j?XFC6CA"{TCppANN #< #<`jFzD rk lOB?XFC6CADATAjMjj 333?j?zDzD=C+HŽCzDzD=HB DATAjjj 333?j?zDzDBCFzD #<HB DATAjKjj333?j@0AQBhfACD@NPA A@CC #<@iiDATA,ijiOBp=A lDATA,ijiiIPffArkDATA,ijiiMEAXkDATA,ijiiMAAlDATA,ijiiMAANkDATA,ijiiTEBlDATA,ijiiOB@HAlDATA,ijiOB@أ@lDATAjHjj333?jDdC8CnD fCC(BDC?z?DATATjJj333?jESAVE TEXT FILEICTURES//root/.blender/scripts/test230//er/../megabool_r04.py DATAjZjT\TTTh4??AHM3)3)C3D 4gjj88jjDATAjYjTransform PropertiesView3d?D>"?DATAjYjjOutputRender>DATAjYjjRenderRender@>DATAjYjjAnimRender>DATAjYjjFormatRender>DATAjYjjAnim settingsObject>DATAjYjjDrawObject@>DATAjYjjConstraintsObject>DATAjYjjEffectsObjectjDATAjYjParticle InteractionObject>jDATAjCj333?j+?Y6~)?K?ȳ>%nUS?m?˅>U?*?K?@nV6ȳ>US?~)?m? @ϼ@?D|g?a )~) +?>0>>ٱ?m>|ǾAUAz>^c? it]ӏ>)?3Ao֟OCA@dA(@h4??AHM+?Y6~)?K?ȳ>%nUS?m?˅>U?68K?SԾ54Z̐Ǿ+$lAl B?=C¿e@D" DATAhjNjj 333?j8 `v?DATAjHjj333?jDdCq~C?rD^ DC(BDC?z?4JDATAjjj 333?jzCCHBC?CFC= ADATAjGjj333?jzC AzC A #< #<`jFzD OBDATATjJj333?j9Save Ast FileICTURES/oot/ton/Desktop/work/test230//er/../booltest_anim.blendSRdjV&kjSR3-Materialodel SingT\kkkj$khk5DATATW\TDATA\TWTTDATATWT\TDATATWTTDATATW\TT,DATA\TWTT,DATATWT\TDATATWTTDATATW\TT,DATA\TWTTDATATWT\T DATATWkT DATAkW\kT DATA\kWkDATAkXk\TTDATAkXkkTTDATAkX\kkTTDATA\kXkkT\TDATAkXk\kT\TDATAkXkk\TTDATAkX\kkTTDATA\kXkkTTDATAkXk\k\TTDATAkXkkTTDATAkX\kk\TTDATA\kXkkT\TDATAkXk\kT\TDATAkXkkTTDATAkX\kkTTDATA\kXkk\TTDATAkXk\kTTDATAkXkkTTDATAkX\kkTkDATA\kXkkTkDATAkXk\kT\kDATAkXkk\T\kDATAkXkk\kDATAjZkTT\TT?@Pף++ ,kjjjDATAjYjOutputRender>DATAjYjjRenderRenderF>DATAjYjjAnimRender>DATAjYjFormatRender>DATAkk 333?zCCHBC,?CFC= ADATAkHjk333?DhC?DhCC(BDC?z?mDATAjCkk333???? ???? A??@PA Aj?c3>}GCHB? Al B? #<CzzDATAkKjj333?@̌AR|B1@lA A@CC #<@DATATjJk333?/9DATAkZkjT\TTTDATAkZ kkT\TT\TG@? JL - -G Hh~kjkkDATAkYkOutputRender>DATAkYkkRenderRender>DATAkYkkAnimRender0>DATAkYkkFormatRenderH>DATAkYkkPreviewMaterial>DATAkYkkMaterialMaterial>DATAkYkkShadersMaterial0>DATAkYkkTextureMaterialH>DATAkYkkMap InputMaterialD>DATAkYkMap ToMaterial`>DATAkHj333?lCqhCC~qLmCC(BDC?z?hyDATAjCjk333?lJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?J>#xu?ܗ=Hi6>(? ?Pb^L?\FAA?4[?[!?@jG>gb>Pb>4Im>k&?]M^L<0@AzA=>Kc<2֍7&> ?:x¸A1vB,jB~@G@? JLJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?@?$$OAl  B?=Ch?j(4?t'>SSdDATAjGjj333?lzC AzC A #< #<`jFzD OBDATATjJj333?l;SAVE FILE/usr/home/intrr/blender/blend/untitled.blendDATA kZ"kkTTTTU.=z=o?- -GH S0kjDATA0kC!k333?\???h?j(4?t'>????hj(4t'?U.=z=o??OAl  B?=Ch?j(4?t'>dDATA!kHj0k333?\DdC>9C,DeCC(BDC?z?DATAjGj!k333?\zC AzC A #< #<`jFzD OBDATATjJj333?\ SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA"kZ$k kk\k\TTe?8?AHM    S4kjDATA4kC#k333?,L?В ?K?ȳ>?M?K?<ȳ>T5L?В ?ZI? @μ@?ƾ\?lU В (??3>>]`b4AAVl>K?x<4쓾S>>3ApןAAA)@e?8?AHML?В ?K?ȳ>?L?ՙξAE;OAl  B?=Ch?j(4?t'>dDATA#kHj4k333?,DdC>9C,DeCC(BDC?z?DATAjGj#k333?,zC AzC A #< #<`jFzD OBDATATjJj333?, SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA$kZ"kTT\kk(.=^=o?    S8kBkDATA8kC%k333??3?3^I2(o(4?? 3?3^=i(4J2(A?(.=0n;^=ꉖW5jOT{:?OA2 5AC^=k(4J2(A?(.=^=o??3?3^I2(o(4?5?5OAl  B?=C^j(4?J2( Z ZdDATA%kH@k8k333?DdC>9C,DeCC(BDC?z?DATA@kGBk%k333?zC AzC A #< #<`jFzD OBDATATBkJ@k333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSRd&kVjSR4-Sequence\k k\ k k'kRklkDATA\kWkDATAkWk\kDATAkWkkDATAkW\kkDATA\kWkkDATAkWk\kDATAkWkkDATAkW\kkDATA\kWkkDATAkWk\kDATAkW kkDATA kWkDATA\ kX kkkDATA kX k\ k\kkDATA kX k k\k\kDATA kX\ k kkkDATA\ kX k k\kkDATA kX k\ kkkDATA kX k kkkDATA kX\ k kkkDATA\ kX k k\k\kDATA kX k\ kk\kDATA kX k kkkDATA kX\ k kkkDATA\ kX k k\kkDATA kX k\ k\kkDATA kX k kkkDATA kX\ k kk kDATA\ kX k kk kDATA kX\ kk kDATA'kZ-k\k\kkk,kDk(k+kDATA(kY)kOutputRender>DATA)kY*k(kRenderRenderF>DATA*kY+k)kAnimRender>DATA+kY*kFormatRender>DATA,kHDk333?nDhC ѦDhCC(BDC?z?DATATDkJ,k333?n/9DATA-kZ.k'kkkkkDATA.kZPk-k\k\kkk8=i>o?d/kFkDATA/kIo?fffAD&@??fffA B? #<CDATATFkJo?e QkHkDATAQkI`k333?ozCAzCA1||1 A@FB= A DATA`kCHkQk333?o????????8=H>o?fffA*@??fffA B? #<C>>DATATHkJ`k333?oAVE TARGA/t1.blend9DATARkZPk\kk kk8=>o?JJkLkDATAJkGdk333?oB̽̌?B̽̌?JJ #< #<`jFzD SQB̽̌?DATAdkCLkJk333?o????????8=>o?fffA@??fffA B? #<CzzDATATLkJdk333?oOAD FILE/9SChkAlkSCScenetageainllipki4X@?'qkdd??< 2dd??Z@@???//backbuf/usr/drqueue/rendered/booltest/bt2_//ftype@&#@^@&^#D kkDATAi;i -lDATAi;ii ^lDATAi;ii^lDATAi;ii%DlDATAi;pki^ lDATApk;pki lDATApk;pk ClDATA(qk:,d'=A@DATA k_kDATAkSClkAhkSCScene.001qkdd??< 2dd??Z@@???//backbuf/usr/drqueue/rendered/booltest/bt2_//ftype@&#@^@&^#DATAqk`qkSkTkDATASk_TkSQ AUkDATATk_SkSQ AVkDATAlUk]k/usr/drqueue/rendered/booltest/DATA2k\bt0001.tgabt0002.tgabt0003.tgabt0004.tgabt0005.tgabt0006.tgabt0007.tgabt0008.tgabt0009.tgabt0010.tga bt0011.tga bt0012.tga bt0013.tga bt0014.tga bt0015.tgabt0016.tgabt0017.tgabt0018.tgabt0019.tgabt0020.tgabt0021.tgabt0022.tgabt0023.tgabt0024.tgabt0025.tgabt0026.tgabt0027.tgabt0028.tgabt0029.tgabt0030.tgabt0031.tgabt0032.tgabt0033.tga bt0034.tga!bt0035.tga"bt0036.tga#bt0037.tga$bt0038.tga%bt0039.tga&bt0040.tga'bt0041.tga(bt0042.tga)bt0043.tga*bt0044.tga+bt0045.tga,bt0046.tga-bt0047.tga.bt0048.tga/bt0049.tga0bt0050.tga1bt0051.tga2bt0052.tga3bt0053.tga4bt0054.tga5bt0055.tga6bt0056.tga7bt0057.tga8bt0058.tga9bt0059.tga:bt0060.tga;bt0061.tga<bt0062.tga=bt0063.tga>bt0064.tga?bt0065.tga@bt0066.tgaAbt0067.tgaBbt0068.tgaCbt0069.tgaDbt0070.tgaEbt0071.tgaFbt0072.tgaGbt0073.tgaHbt0074.tgaIbt0075.tgaJbt0076.tgaKbt0077.tgaLbt0078.tgaMbt0079.tgaNbt0080.tgaObt0081.tgaPbt0082.tgaQbt0083.tgaRbt0084.tgaSbt0085.tgaTbt0086.tgaUbt0087.tgaVbt0088.tgaWbt0089.tgaXbt0090.tgaYbt0091.tgaZbt0092.tga[bt0093.tga\bt0094.tga]bt0095.tga^bt0096.tga_bt0097.tga`bt0098.tgaabt0099.tgabbt0100.tgacbt0101.tgadbt0102.tgaebt0103.tgafbt0104.tgagbt0105.tgahbt0106.tgaibt0107.tgajbt0108.tgakbt0109.tgalbt0110.tgambt0111.tganbt0112.tgaobt0113.tgapbt0114.tgaqbt0115.tgarbt0116.tgasbt0117.tgatbt0118.tgaubt0119.tgavbt0120.tgawbt0121.tgaxbt0122.tgaybt0123.tgazbt0124.tga{bt0125.tga|bt0126.tga}bt0127.tga~bt0128.tgabt0129.tgabt0130.tgabt0131.tgabt0132.tgabt0133.tgabt0134.tgabt0135.tgabt0136.tgabt0137.tgabt0138.tgabt0139.tgabt0140.tgabt0141.tgabt0142.tgabt0143.tgabt0144.tgabt0145.tgabt0146.tgabt0147.tgabt0148.tgabt0149.tgabt0150.tgabt0151.tgabt0152.tgabt0153.tgabt0154.tgabt0155.tgabt0156.tgabt0157.tgabt0158.tgabt0159.tgabt0160.tgabt0161.tgabt0162.tgabt0163.tgabt0164.tgabt0165.tgabt0166.tgabt0167.tgabt0168.tgabt0169.tgabt0170.tgabt0171.tgabt0172.tgabt0173.tgabt0174.tgabt0175.tgabt0176.tgabt0177.tgabt0178.tgabt0179.tgabt0180.tgabt0181.tgabt0182.tgabt0183.tgabt0184.tgabt0185.tgabt0186.tgabt0187.tgabt0188.tgabt0189.tgabt0190.tgabt0191.tgabt0192.tgabt0193.tgabt0194.tgabt0195.tgabt0196.tgabt0197.tgabt0198.tgabt0199.tgabt0200.tgaDATAlVk]k/usr/drqueue/rendered/booltest/DATA2k\bt2_0001.tgabt2_0002.tgabt2_0003.tgabt2_0004.tgabt2_0005.tgabt2_0006.tgabt2_0007.tgabt2_0008.tgabt2_0009.tgabt2_0010.tga bt2_0011.tga bt2_0012.tga bt2_0013.tga bt2_0014.tga bt2_0015.tgabt2_0016.tgabt2_0017.tgabt2_0018.tgabt2_0019.tgabt2_0020.tgabt2_0021.tgabt2_0022.tgabt2_0023.tgabt2_0024.tgabt2_0025.tgabt2_0026.tgabt2_0027.tgabt2_0028.tgabt2_0029.tgabt2_0030.tgabt2_0031.tgabt2_0032.tgabt2_0033.tga bt2_0034.tga!bt2_0035.tga"bt2_0036.tga#bt2_0037.tga$bt2_0038.tga%bt2_0039.tga&bt2_0040.tga'bt2_0041.tga(bt2_0042.tga)bt2_0043.tga*bt2_0044.tga+bt2_0045.tga,bt2_0046.tga-bt2_0047.tga.bt2_0048.tga/bt2_0049.tga0bt2_0050.tga1bt2_0051.tga2bt2_0052.tga3bt2_0053.tga4bt2_0054.tga5bt2_0055.tga6bt2_0056.tga7bt2_0057.tga8bt2_0058.tga9bt2_0059.tga:bt2_0060.tga;bt2_0061.tga<bt2_0062.tga=bt2_0063.tga>bt2_0064.tga?bt2_0065.tga@bt2_0066.tgaAbt2_0067.tgaBbt2_0068.tgaCbt2_0069.tgaDbt2_0070.tgaEbt2_0071.tgaFbt2_0072.tgaGbt2_0073.tgaHbt2_0074.tgaIbt2_0075.tgaJbt2_0076.tgaKbt2_0077.tgaLbt2_0078.tgaMbt2_0079.tgaNbt2_0080.tgaObt2_0081.tgaPbt2_0082.tgaQbt2_0083.tgaRbt2_0084.tgaSbt2_0085.tgaTbt2_0086.tgaUbt2_0087.tgaVbt2_0088.tgaWbt2_0089.tgaXbt2_0090.tgaYbt2_0091.tgaZbt2_0092.tga[bt2_0093.tga\bt2_0094.tga]bt2_0095.tga^bt2_0096.tga_bt2_0097.tga`bt2_0098.tgaabt2_0099.tgabbt2_0100.tgacbt2_0101.tgadbt2_0102.tgaebt2_0103.tgafbt2_0104.tgagbt2_0105.tgahbt2_0106.tgaibt2_0107.tgajbt2_0108.tgakbt2_0109.tgalbt2_0110.tgambt2_0111.tganbt2_0112.tgaobt2_0113.tgapbt2_0114.tgaqbt2_0115.tgarbt2_0116.tgasbt2_0117.tgatbt2_0118.tgaubt2_0119.tgavbt2_0120.tgawbt2_0121.tgaxbt2_0122.tgaybt2_0123.tgazbt2_0124.tga{bt2_0125.tga|bt2_0126.tga}bt2_0127.tga~bt2_0128.tgabt2_0129.tgabt2_0130.tgabt2_0131.tgabt2_0132.tgabt2_0133.tgabt2_0134.tgabt2_0135.tgabt2_0136.tgabt2_0137.tgabt2_0138.tgabt2_0139.tgabt2_0140.tgabt2_0141.tgabt2_0142.tgabt2_0143.tgabt2_0144.tgabt2_0145.tgabt2_0146.tgabt2_0147.tgabt2_0148.tgabt2_0149.tgabt2_0150.tgabt2_0151.tgabt2_0152.tgabt2_0153.tgabt2_0154.tgabt2_0155.tgabt2_0156.tgabt2_0157.tgabt2_0158.tgabt2_0159.tgabt2_0160.tgabt2_0161.tgabt2_0162.tgabt2_0163.tgabt2_0164.tgabt2_0165.tgabt2_0166.tgabt2_0167.tgabt2_0168.tgabt2_0169.tgabt2_0170.tgabt2_0171.tgabt2_0172.tgabt2_0173.tgabt2_0174.tgabt2_0175.tgabt2_0176.tgabt2_0177.tgabt2_0178.tgabt2_0179.tgabt2_0180.tgabt2_0181.tgabt2_0182.tgabt2_0183.tgabt2_0184.tgabt2_0185.tgabt2_0186.tgabt2_0187.tgabt2_0188.tgabt2_0189.tgabt2_0190.tgabt2_0191.tgabt2_0192.tgabt2_0193.tgabt2_0194.tgabt2_0195.tgabt2_0196.tgabt2_0197.tgabt2_0198.tgabt2_0199.tgabt2_0200.tgaOBl8lOBCameraamera.001 ^k @μ@???x?>!nUS?~)?m? @μ@??????1U?32)3?{~45#4?OBdA?)d??>)d????OBl8llOBCookie[k\k?????????????*?K?BnV6ȳ>US?~)?m? @ϼ@?DOBd8? #=?>=?@???DATA\kOBl8 llOBCookie.001Wkk?????????????*?K?BnV6ȳ>US?~)?m? @ϼ@? DOBd8? #=?>=?@???DATAkOB l8llOBCutterrkXkk"=pG@% -@Ь?7?6L=??QE@ܾȣJE=rľSB+@~Db?"=?????F>&4x>(OY>m>>o>@p?)m@?DOBdA? #=?>=?@???DATAkOBl8l lOBLamp l? @???aT?$2,^'???,^'$2),?%~)?:=,>? @"@?DOBdA? #=?>=@???OBl8llOBMesh]k?????????????*?K?BnV6ȳ>US?~)?m? @ϼ@?DOBdA? #=?>=?@???OBl8lOBMesh.001\k?????????????*?K?BnV6ȳ>US?~)?m? @ϼ@? DOBdA? #=?>=?@???MEWk+XkMECubeqik@l ljW@@@@$DATAkNklDATA$ l0§@eM>V?f[%E[@?Rf[%E2p@Ŏ=f[%Ep?$?C_/?c>k35cFe?+k35csM7"k35c=Ə?ۺ8??ZZ?Zi:i?isi???ZZ??Z?i:&??is&?@@II@@I?@@II??@@III?@I@?@I??@II??is&?&:&?Z'?'?@@iis'?'@@iٗ&s''@@&&s''?@@&is''?x"II''x"III'?'x"II'?'?x"I?I???Z?@@II@@I@@II?@@III6#?>oyq_?s̾q"?Jmg?+PZ6?JE6J|$?sH9Ϣ?fFVC'-\?3:^?X퐴de?>>fFVb!߲\?> Sl'?Ϣ?m>KC'%$|$?"x>>9N#X6?BMa>#Z-J 2?D>Zt"?#>4gsշp_?=¾q33#?j=moy C?~B.=oB~}?<ߕq3C?:=1B~W 4#?#>JMaoyFq_?w|p>!q"Z"?>cF־g,?yH>Z}5a6?^F>LvJ=|$?>h"9'CϢ?0>#Z-C'Gq\?{?s4RJ?m?E6{b0ܽ?E6?m{b$B\?q4?|KfϢ?!Z-?3C'be|$?h"?뾵9m\ټ6?Iv?bF־J T??zHZI"?^F> gd=fq_? >{|pq/b3#?AMa>#oy 9C?=EB~C?a>B.B~4#?m>zoyy&q_?>q8"?0>#g+H??DZV6? Z-?HMaJb|$?>?"x9lϢ?K?mC's[\? S?Ax?bFV?>{bM?OMa?4{bQ\?5^?4q~Ϣ?aFV?w4C'y{$?۾H?M49?r6?E6?Z4Jg?P?h4Z["?m?SN4gKq_?>4q:4#?>>`4oyt(C? >h#4B~C?`>B.=B~}3#?m>=oyy& q_?>=q83"?->#>g+Hs??D>ZV6?Z-?cMa>Jb {$?>?"x>9lN#Ϣ?K?m>C's%\?S?>Ax'?_FV?>>{bMC?E6?m?{b$B0[?l4??KfRJϢ?Z-?@>C'bG{$?h"?>9m\'C6?Fv?mF>J T=??H>ZI}5"?]F>>gd=,p_?>|p>q/"3#?#>oy C?=o=B~W C?0=N=B~W 4#?#>[Ma>oy p_?k|p>1>q"/"?>nF>g,d=?pH>?Z}5I6?UF>Pv?J= T{$?>h"?9'Cm\Ϣ?">)Z-?C'Gb[?u?y4?RJKf?m?E6?{b0$B?u>>gFV?b]M[?>S?'wϢ?m>K?C'%sz$?~"x>>?9N#l6?0Ma>&Z-?J b?D>?ZV"?#>?>gs+Hp_?=Ɏ>q383#?\=m>oy y&C?lB.=x>B~}C? >B~3#?ɴ>>oyt(p_?!>q:"?z-m?gK?~ P?Z[6?E6?Jg{$?VH?9?rϢ?!|1eFV?C'y[?}C;^?~?@c?dO?>bFV?[[?LJ S?%'Ϣ?mK?C'[s{$?"x>?9ܨl6?yMa!Z-?Jb?D?ZV"?,#:>g+Hn_?>q83#?m>oyz&C?C.y>B~C?E=B~4#?#TMa>oy9 q_?|p&>qbݦ/"? eF>gfd=?H?ZʟI6?vF־Kv?J Tz$?h"?9ټm\Ϣ?HZ-?C'eb[?o4?Kf?mE6?{b$B?E6m?{bܽ0[?}4w?RJϢ?*Z-)>C'qGz$?h">9'C6?Tv]F>J=?xH>Za}5"?vF־ >gš,p_?6~|p>qZО"3#?gMa#>oyFC?d`=B~W C?B.=B~}3#?m=oyـ n_?ˎ¾=q3"?D#>gշs?D>Zt6?(Z-@Ma>J2 {$?>"x>9XN#Ϣ?Km>C'$%[?S>'?iFVw>>{b?C?SMa65{b?\?=^2Ϣ?fFV*C'-z$?H4896?E6J? P:FZ"?mXgq_?̾P5q4#?>LزoyC? ,XY3B~C?B.B~4#?moyـn_?ξq"?:#gշ?DZt6?#Z-iMaJ2{$?>"x9XϢ?KmC'$[\? SÇ?`FV>{b??E6m{bܽ\?p4Ϣ?Z-?C'qe{$?h"뾵9ټ6?JvlF־J?HZa"?cF־gfq_?(|pqZb3#?\Ma#oyF9C?XNB~C?s1B~4#?#MMaoy9Fq_?|p&qbZ"?hF־gfӜ?wHZa6?\F־NvJ|$?h"9ټϢ?&%Z-C'eq\?xx4?mE6{bܽ?q>fFVb߲\?Sl:?Ϣ?mKC'[$|$?"x>9X6?@>?@>@?@=A@>@<BA=@;CB<@:DC;@9ED:8FE97GF86HG75IH6IJKH HKLG GLMF FMNE ENOD@DOPC@CPQB@BQRA@ARS@@@S?@ST?@RUTS@QVUR@PWVQ@OXWP@NYXO MZYN L[ZM K\[L J]\K ]^_\ \_`[ [`aZ ZabY YbcX XcdW@WdeV@VefU@UfgT@Tg?@gh?@fihg@ejif@dkje@clkd@bmlc anmb `ona _po` ^qp_ qrsp psto otun nuvm mvwl lwxk@kxyj@jyzi@iz{h@h{?@{|?@z}|{@y~}z@x~y@wx@vw@uvtustrs@~@~}@}|@|?@?@@@@@@@@@?@?@@@@@    @@@@@?@?@@@@@          @@@@?@?@@@@@          @@@@?@?@@@@@@@@@@?@?@,@-,@.-@/.@0/10213243 @ @ @ @ B @ @r @rq @q^ @^ @]^@ @J]@ @IJ@ @5I@ @45@ @ B 4@4 @MEXk+[kWkMECube.001ri\kZkYk3???DATA\klDATAYk0??II?I?I???III??II?I??IIDATAxZk,@ @ ME[k+\kXkMECube.003pikl`l)<@?@@$DATAkNkDATA`l0??ZZ?Zi:i?isi???ZZ??Z?i:&??is&?@@II@@I?@@II??@@III?@I@?@I??@II??is&?&:&?Z'?'?@@iis'?'@@iٗ&s''@@&&s''?@@&is''?x"II''x"III'?'x"II'?'?x"I?I???Z?@@II@@I@@II?@@III6#?>oyq_?s̾q"?Jmg?+PZ6?JE6J|$?sH9Ϣ?fFVC'-\?3:^?X퐴de?>>fFVb!߲\?> Sl'?Ϣ?m>KC'%$|$?"x>>9N#X6?BMa>#Z-J 2?D>Zt"?#>4gsշp_?=¾q33#?j=moy C?~B.=oB~}?<ߕq3C?:=1B~W 4#?#>JMaoyFq_?w|p>!q"Z"?>cF־g,?yH>Z}5a6?^F>LvJ=|$?>h"9'CϢ?0>#Z-C'Gq\?{?s4RJ?m?E6{b0ܽ?E6?m{b$B\?q4?|KfϢ?!Z-?3C'be|$?h"?뾵9m\ټ6?Iv?bF־J T??zHZI"?^F> gd=fq_? >{|pq/b3#?AMa>#oy 9C?=EB~C?a>B.B~4#?m>zoyy&q_?>q8"?0>#g+H??DZV6? Z-?HMaJb|$?>?"x9lϢ?K?mC's[\? S?Ax?bFV?>{bM?OMa?4{bQ\?5^?4q~Ϣ?aFV?w4C'y{$?۾H?M49?r6?E6?Z4Jg?P?h4Z["?m?SN4gKq_?>4q:4#?>>`4oyt(C? >h#4B~C?`>B.=B~}3#?m>=oyy& q_?>=q83"?->#>g+Hs??D>ZV6?Z-?cMa>Jb {$?>?"x>9lN#Ϣ?K?m>C's%\?S?>Ax'?_FV?>>{bMC?E6?m?{b$B0[?l4??KfRJϢ?Z-?@>C'bG{$?h"?>9m\'C6?Fv?mF>J T=??H>ZI}5"?]F>>gd=,p_?>|p>q/"3#?#>oy C?=o=B~W C?0=N=B~W 4#?#>[Ma>oy p_?k|p>1>q"/"?>nF>g,d=?pH>?Z}5I6?UF>Pv?J= T{$?>h"?9'Cm\Ϣ?">)Z-?C'Gb[?u?y4?RJKf?m?E6?{b0$B?u>>gFV?b]M[?>S?'wϢ?m>K?C'%sz$?~"x>>?9N#l6?0Ma>&Z-?J b?D>?ZV"?#>?>gs+Hp_?=Ɏ>q383#?\=m>oy y&C?lB.=x>B~}C? >B~3#?ɴ>>oyt(p_?!>q:"?z-m?gK?~ P?Z[6?E6?Jg{$?VH?9?rϢ?!|1eFV?C'y[?}C;^?~?@c?dO?>bFV?[[?LJ S?%'Ϣ?mK?C'[s{$?"x>?9ܨl6?yMa!Z-?Jb?D?ZV"?,#:>g+Hn_?>q83#?m>oyz&C?C.y>B~C?E=B~4#?#TMa>oy9 q_?|p&>qbݦ/"? eF>gfd=?H?ZʟI6?vF־Kv?J Tz$?h"?9ټm\Ϣ?HZ-?C'eb[?o4?Kf?mE6?{b$B?E6m?{bܽ0[?}4w?RJϢ?*Z-)>C'qGz$?h">9'C6?Tv]F>J=?xH>Za}5"?vF־ >gš,p_?6~|p>qZО"3#?gMa#>oyFC?d`=B~W C?B.=B~}3#?m=oyـ n_?ˎ¾=q3"?D#>gշs?D>Zt6?(Z-@Ma>J2 {$?>"x>9XN#Ϣ?Km>C'$%[?S>'?iFVw>>{b?C?SMa65{b?\?=^2Ϣ?fFV*C'-z$?H4896?E6J? P:FZ"?mXgq_?̾P5q4#?>LزoyC? ,XY3B~C?B.B~4#?moyـn_?ξq"?:#gշ?DZt6?#Z-iMaJ2{$?>"x9XϢ?KmC'$[\? SÇ?`FV>{b??E6m{bܽ\?p4Ϣ?Z-?C'qe{$?h"뾵9ټ6?JvlF־J?HZa"?cF־gfq_?(|pqZb3#?\Ma#oyF9C?XNB~C?s1B~4#?#MMaoy9Fq_?|p&qbZ"?hF־gfӜ?wHZa6?\F־NvJ|$?h"9ټϢ?&%Z-C'eq\?xx4?mE6{bܽ?q>fFVb߲\?Sl:?Ϣ?mKC'[$|$?"x>9X6?=1/?>0.@?/-A@.ABC@ @CD? ?DE> >EF= =FG<@<GH;@;HI:@:IJ9@9JK8@8K7@KL7@JMLK@INMJ@HONI@GPOH@FQPG ERQF DSRE CTSD BUTC UVWT TWXS SXYR RYZQ QZ[P P[\O@O\]N@N]^M@M^_L@L_7@_`7@^a`_@]ba^@\cb]@[dc\@Zed[ YfeZ XgfY WhgX VihW ijkh hklg glmf fmne enod dopc@cpqb@bqra@ars`@`s7@st7@ruts@qvur@pwvq@oxwp@nyxo@mzynl{zmk|{lj}|k}~||{{zzyyxxw@wv@vu@ut@t7@7@@@@@~@@@@7@7@@@@@    @@@@@7@7@@@@@          @@@@7@7@@@@@          @@@@7@7@@@@@@@@@@7@7@$@%$@&%@'&@(')(*)+*,+@@@@B~@~}@}j@ji@iV@V@UV@@BU@@AB@@-A@@,-@@B,@,@ME\k+]k[kMEfooE\ll,=)<@?9@$DATAl0C???$ \??ZZ?isi??is&???I^=??Z?Jmq??`S ?-?T9@O8S?D)@vK}BC,@D?i:&t?H=@7Ҵ?s)@`5 ??g!VJZNR?MNi:iT}ؖ1,I^=|la1mxuP?53>CG?Z'?'?qK9@o'?'?x"I'?'x"II'?'K-@ֱ4'''x"III''.@&4ґ''?x"II''?t:@#+nNⰼ)&?I?Z?&:&>V???Z)-@vK}BCv/@DܒL?@@\?@@II?Ԋ?@@S m?@@c??&s&?u>>gFV?+c9L?pq?[|?`S ?q?sg~?`S ?@c?e4M?m?E6?{b0$B?Ŏr?w?`S ?E6?m?{b$B0?f6t?`>l?`S ?_FV?>>{bMC?w?^X?`S ?OMa?4{bQ?_My?l%H?`S ?X퐴dfɲ?>>fFVal\?> S(>\?3:^ Ϣ?m>KC'%$Ϣ?fFVC'-|$?"x>>9N#X|$?sH96?BMa>#Z-J 26?JE6J?D>Zt?+PZ"?#>4gsշ"?Jmgp_?=¾q3q_?s̾q3#?j=moy 6#?>oyC?~B.=oB~}C?E B~?<ߕq3C?:=1B~W 4#?#>JMaoyFq_?w|p>!q"Z"?>cF־g,?yH>Z}5a6?^F>LvJ=|$?>h"9'CϢ?0>#Z-C'Gq\?{?s4RJ?m?E6{b0ܽ?E6?m{b$B\?q4?|KfϢ?!Z-?3C'be|$?h"?뾵9m\ټ6?Iv?bF־J T??zHZI"?^F> gd=fq_? >{|pq/b3#?AMa>#oy 9C?=EB~C?a>B.B~4#?m>zoyy&q_?>q8"?0>#g+H??DZV6? Z-?HMaJb|$?>?"x9lϢ?K?mC's[\? S?Ax?bFV?>{bM\?5^?4q~Ϣ?aFV?w4C'y{$?۾H?M49?r6?E6?Z4Jg?P?h4Z["?m?SN4gKq_?>4q:4#?>>`4oyt(C? >h#4B~C?`>B.=B~}3#?m>=oyy& q_?>=q83"?->#>g+Hs??D>ZV6?Z-?cMa>Jb {$?>?"x>9lN#Ϣ?K?m>C's%\?S?>Ax'[?l4??KfRJϢ?Z-?@>C'bG{$?h"?>9m\'C6?Fv?mF>J T=??H>ZI}5"?]F>>gd=,p_?>|p>q/"3#?#>oy C?=o=B~W C?0=N=B~W 4#?#>[Ma>oy p_?k|p>1>q"/"?>nF>g,d=?pH>?Z}5I6?UF>Pv?J= T{$?>h"?9'Cm\Ϣ?">)Z-?C'Gb[?u?y4?RJKf[?>S?'wϢ?m>K?C'%sz$?~"x>>?9N#l6?0Ma>&Z-?J b?D>?ZV"?#>?>gs+Hp_?=Ɏ>q383#?\=m>oy y&C?lB.=x>B~}C? >B~3#?ɴ>>oyt(p_?!>q:"?z-m?gK?~ P?Z[6?E6?Jg{$?VH?9?rϢ?!|1eFV?C'y[?}C;^?}[?LJ S?"'?>bFV?-Ϣ?mK?C'[s{$?"x>?9ܨl6?yMa!Z-?Jb?D?ZV"?,#:>g+Hn_?>q83#?m>oyz&C?C.y>B~C?E=B~4#?#TMa>oy9 q_?|p&>qbݦ/"? eF>gfd=?H?ZʟI6?vF־Kv?J Tz$?h"?9ټm\Ϣ?HZ-?C'eb[?o4?Kf?mE6?{b$B?E6m?{bܽ0[?}4w?RJϢ?*Z-)>C'qGz$?h">9'C6?Tv]F>J=?xH>Za}5"?vF־ >gš,p_?6~|p>qZО"3#?gMa#>oyFC?d`=B~W C?B.=B~}3#?m=oyـ n_?ˎ¾=q3"?D#>gշs?D>Zt6?(Z-@Ma>J2 {$?>"x>9XN#Ϣ?Km>C'$%[?S>'?iFVw>>{b?C?SMa65{b?\?=^2Ϣ?fFV*C'-z$?H4896?E6J? P:FZ"?mXgq_?̾P5q4#?>LزoyC? ,XY3B~C?B.B~4#?moyـn_?ξq"?:#gշ?DZt6?#Z-iMaJ2{$?>"x9XϢ?KmC'$[\? SÇ?`FV>{b??E6m{bܽ\?p4Ϣ?Z-?C'qe{$?h"뾵9ټ6?JvlF־J?HZa"?cF־gfq_?(|pqZb3#?\Ma#oyF9C?XNB~C?s1B~4#?#MMaoy9Fq_?|p&qbZ"?hF־gfӜ?wHZa6?\F־NvJ|$?h"9ټϢ?&%Z-C'eq\?xx4?mE6{bܽ?q>fFVc?+\?SϢ?mKC'[$|$?"x>9X6?>=?@@?ABBACDDCEF@FEGH@HGIJ@JIKL@LKM@KNM@IONK@GPOI@EQPG@CRQE@ASRC?TSA=UT?;VU=:WV;WXYV VYZU UZ[T T[\S S\]R@R]^Q@Q^_P@P_`O@O`aN@NaM@abM@`cba@_dc`@^ed_@]fe^@\gf] [hg\ Zih[ YjiZ XkjY k7lj jlmi imnh hnog gopf fpqe@eqrd@drsc@cstb@btM@tuM@svut@rwvs@qxwr@pyxq@ozyp n{zo m|{n l}|m 75}l 53~} }~| |{ {z zy yx@xw@wv@vu@uM@M@@@@@@~31~1-@@@@M@M@@@@@-00@@@@M@M@@@@@    @@@@@M@M@@@@@          @@@@M@M@@@@@          @@@@M@M@@@@@@@@@@M@LM@JL@HJ@FH@DF@BD@B>@<>9<@@@@Bk7@@Xk@@WX@@:W@@9:@0B9@9@/ ./ 2. 42 64 68  (# " *+(&*(&('     ME]k+\kMEMesh.021E???MAXNk!lMAMaterialA?A?A??????????L????2 ?????@?=?=??rk?DATAXrkl??????????MAXl!NkMAMaterial.001????????????2  ?????@?=?=???TElTETex>@???????@@????? @??CAd^kCACameraamera.001=B B?LAlLASpot?????AB>??@ AA4B?@@???IPPrkIPObIposkwk"{TCppAOBDATAPsk)skl?XFCR͂OBADATAPsk)tkskl?XFC"=OBA"DATAPtk)tkskl?XFC=IN>OBA=DATAPtk)uktkl?XFC6LmAOBAADATAPuk)uktkl?XFC?OBA]>DATAPuk)vkukl?XFCCAOB AhKDATAPvk)vkukl?XFCpG@N@OB ApG@DATAPvk)wkvkl?XFC# >IA@OBA% -@DATAPwk)vkl?XFCЬ?y?OBAЬ?DATAl%5?}A]BBB)HXBBgCl| -CXFC@cCDATAl%5"?"}A"]B"B"B")HXB"B"gC"l| -C"XFC"@cC"DATAl%5=?=}A=]B=B=B=)HXB=B=gC=l| -C=XFC=@cC=DATAl%'A?AAA'''K`BLmABA׺B懶@*bH'ZBOJBF+C6j~|pX-CAXFCA cCA'''DATAl%4?A;]B?B3 BM)HX=B^BtCl|-CXFC@=cCDATAl%'?AK`BB׺B3R@*HZBABAF+CCAju| k-CXFC cCDATAl%5pG@?pG@}ApG@]BpG@BpG@BpG@)HXBpG@BpG@gCpG@l| -CpG@XFCpG@@cCpG@DATAl%3IA@?IA@?AIA@]BTp?B>BA >)HX.B# >B>zkCGp?l|q-CIA@XFCIA@|@cCIA@DATAl%5Ь??Ь?}AЬ?]BЬ?BЬ?BЬ?)HXBЬ?BЬ?gCЬ?l| -CЬ?XFCЬ?@cCЬ?WOl9WOWorldg=pb>>===??A@pA A?L=TXd_kTXmegabool_r04.pywkk\\Z\[Z\[ZXS`|DATA(wk/root/.blender/scripts/megabool_r04.py DATAkm\ZDATAm\mk\ZDATA\mmm]ZDATAmm\m\]ZDATAmmm]Z DATAm\mm]ZZ4.ZDATA\mmmxkD/uucDATAmm\m^ZBDATAmmm\^Z/vaDATAm\mmxkCDATA\mmmykCn/noDATAmm\mykCvar/DATAmmmzkCan PDATAm\mmzkCDATA\mmm{kCperaDATAmm\m{kCratoDATAmmm|kCperaDATAm\mm|kCratoDATA\mmm}kCaemoDATAmm\m}kCnoloDATAmmm~kCprocDATAm\mm~kCODATA\mmmkCdDATAmm\mkCbin/DATAmmm`ZCruseDATAm\mm`ZCuserDATA\mmmaZC/cshDATAmm\maZCDATAmmmbZCDATAm\mmbZCDATA\mmmcZCNDATAmm\mcZCDATAmmmdZCDATAm\mmdZCDATA\mmmeZCDATAmm\meZCDATAm mmfZCDATA m\ mmfZCDATA\ m m mgZCDATA m m\ mgZCDATA m m mhZCDATA m\ m mhZCDATA\ m m miZCDATA m m\ miZCDATA m m mjZCDATA m\ m mjZCDATA\ m m mkZCDATA m m\ mkZCDATA m m mlZCDATA m\ m mlZCDATA\ m m mmZCDATA m m\ mmZCDATA m m mnZCDATA m\ m mnZCDATA\ m m moZCDATA m m\ moZCDATA mm mpZCDATAm\m mpZCDATA\mmmqZCDATAmm\mqZCDATAmmmrZCDATAm\mmrZCDATA\mmmsZCDATAmm\msZCDATAmmmtZCFREEDATAm\mmtZCDATA\mmmuZCed SDATAmm\muZCZ4.ZDATAmmm^ZcshDATAm\mm^ZBDATA\mmm_Z/vaDATAmm\m\_ZDATAmmmvZvar/DATAm\mmvZan PDATA\mmmwZDATAmm\mwZperaDATAmmmxZratoDATAm\mm_ZperaDATA\mmm_ZaemoDATAmm\mpn procDATAmmm\pndDATAm\mmpn FREEDATA\mmmxZruseDATAmm\myZ$/cshDATAmmmyZDATAm\mmzZr") DATA\mmmpn f x=DATAmm\mzZ]) DATAmmmqnprinDATAm\mm{Zer.TDATA\mmm\qn)==4DATAmm\mqn cs(vDATAmmm{Z5v<-0DATAm\mm|Z6m,vxDATA\mmmqn foDATAmm\m|Z: ",DATAmmmrnnge(DATAm\mm\rnm,[eDATA\mmmrn: DATAmm\mrnnt "DATAmmmsnand DATAm\mm}Z&d[leDATA\mmm\snsageDATAmm\msnnd 0DATAmmmsnnt) DATAm\mmtn s[1]DATA\mmm}Z% DATAmm\m\tn v2=DATAmmmtn ne(vDATAm\mm~Z#est,DATA\mmm~Zd212DATAmm\mZe inDATAmmmZ=e.vDATAm\mmn"(vxlDATA\mmmtnint DATAmm\mn`vxl[DATAmmmunDATAm\mmn0pi1]DATA\mmmn DATAmm\mn DATAmmm\un=vxlDATAm\mmunDATA\mmmunFREEDATAmm\mn6 vBDATAmmmnKt %fDATAm\mmvn1[0]DATA\mmmn" DATAmm\m\vn,vt1DATAm mmnpi1]DATA m\ mmvnis eDATA\ m m mvn #DATA m m\ mwn,p4-DATA m!m m\wn DATA!m\!m mn&43)/DATA\!m!m!mwnlf):DATA!m!m\!mwn (d1DATA!m"m!mnd goDATA"m\"m!mxn nt==DATA\"m"m"m\xn anFiDATA"m"m\"mn#if CDATA"m#m"mn&ut[0DATA#m\#m"mn&l[CuDATA\#m#m#mn!ide DATA#m#m\#mn fDATA#m$m#mn DATA$m\$m#mnip,sDATA\$m$m$mxnCEdgDATA$m$m\$mn (n!DATA$m%m$mn DATA%m\%m$mnef MDATA\%m%m%mxnraveDATA%m%m\%mn'FREEDATA%m&m%myn==0)DATA&m\&m%mnrealDATA\&m&m&m\yn edgeDATA&m&m\&myn.insDATA&m'm&myn DATA'm\'m&mzn elsDATA\'m'm'm\znewCoDATA'm'm\'mznt]) DATA'm(m'mzn unteDATA(m\(m'm{n nDATA\(m(m(mn raveDATA(m(m\(mn okieDATA(m)m(m\{n DATA)m\)m(mn vB.DATA\)m)m)m{nif cDATA)m)m\)m{ntex DATA)m*m)m|nif fDATA*m\*m)m\|ndVerDATA\*m*m*m|n seDATA*m*m\*mn* #iDATA*m+m*m|n1,flDATA+m\+m*mn*] DATA\+m+m+mn% b0[DATA+m+m\+mn% iDATA+m,m+m}nkie,DATA,m\,m+m\}ndo aDATA\,m,m,m}n ormaDATA,m,m\,m}ne_veDATA,m-m,mn-e_pDATA-m\-m,m~n=0 aDATA\-m-m-m\~nnormDATA-m-m\-m~nDATA-m.m-mnFREEDATA.m\.m-mnNREEDATA\.m.m.m~n to DATA.m.m\.mn%r(coDATA.m/m.mn)de oDATA/m\/m.mnie) DATA\/m/m/mnEdgeDATA/m/m\/m\n ccCoDATA/m0m/mnnm);DATA0m\0m/mn! CutDATA\0m0m0mn1FREEDATA0m0m\0mnFREEDATA0m1m0mnObjeDATA1m\1m0mnbjecDATA\1m1m1mnretuDATA1m1m\1mnie) DATA1m2m1m\n EdgeDATA2m\2m1mn/.nm.DATA\2m2m2mn retDATA2m2m\2mn/ccCuDATA2m3m2mn$ookiDATA3m\3m2mܰnde=cDATA\3m3m3mntSelDATA3m3m\3mn+esh'DATA3m4m3mn+tly DATA4m\4m3mn("MeDATA\4m4m4mn DATA4m4m\4mnDATA4m5m4m\nDATA5m\5m4mnDATA\5m5m5mܱn DATA5m5m\5mnDATA5m6m5m\nDATA6m\6m5mnbDATA\6m6m6mnFREEDATA6m6m\6mnDATA6m7m6mnDATA7m\7m6mn.DATA\7m7m7mܲnDATA7m7m\7mn/DATA7m8m7mnDATA8m\8m7m\nDATA\8m8m8mnDATA8m8m\8mnDATA8m9m8mnDATA9m\9m8mnDATA\9m9m9mܳnDATA9m9m\9mnDATA9m:m9mnDATA:m\:m9m\nDATA\:m:m:mn*DATA:m:m\:mnDATA:m;m:mܴntedDATA;m\;m:mn,ujQADATA\;m;m;mnAtedDATA;m;m\;m\nxistDATA;mm=mn&ologDATA>m\>m=m\n} x DATA\>m>m>mn&DATA>m>m\>mnDATA>m?m>mnDATA?m\?m>mnDATA\?m?m?mnDATA?m?m\?mܷn DATA?m@m?mn#DATA@m\@m?mnDATA\@m@m@m\nDATA@m@m\@mn$DATA@mAm@mnDATAAm\Am@mܸnDATA\AmAmAmnDATAAmAm\Am\nDATAAmBmAmnDATABm\BmAmnDATA\BmBmBmnDATABmBm\BmܹnDATABmCmBmn'DATACm\CmBmnFDATA\CmCmCmnDATACmCm\CmnDATACmDmCmnDATADm\DmCm\nDATA\DmDmDmnDATADmDm\DmܺnDATADmEmDmncshDATAEm\EmDmnDATA\EmEmEmn9popDATAEmEm\EmnDATAEmFmEm\n/spoDATAFm\FmEmnmailDATA\FmFmFmܻnail DATAFmFm\Fmn!y*DATAFmGmFmnDATAGm\GmFmn9ologDATA\GmGmGmnDATAGmGm\Gm\nDATAGmHmGmnDATAHm\HmGmnDATA\HmHmHmܼnDATAHmHm\Hmn DATAHmImHmn'DATAIm\ImHmn'DATA\ImImIm\nDATAImIm\Imn(DATAImJmImnDATAJm\JmImn(DATA\JmJmJmn(FREEDATAJmJm\JmܽnFREEDATAJmKmJmnIFREEDATAKm\KmJmnNFREEDATA\KmKmKmnJFREEDATAKmKm\Kmn9FREEDATAKmLmKmnDATALm\LmKmnDATA\LmLmLm\nDATALmLm\LmnDATALmMmLmܾnDATAMm\MmLmnDATA\MmMmMm\n DATAMmMm\MmnDATAMmNmMmnDATANm\NmMmܿnDATA\NmNmNmnDATANmNm\Nm\n DATANmOmNmn DATAOm\OmNmnDATA\OmOmOmn DATAOmOm\OmnDATAOmPmOm\nDATAPm\PmOmn DATA\PmPmPmnDATAPmPm\Pmncp/uDATAPmQmPmn"DATAQm\QmPmn bin/DATA\QmQmQmn2on UDATAQmQm\Qm\n*DATAQmRmQmnin/nDATARm\RmQmnologDATA\RmRmRmnDATARmRm\Rm\nDATARmSmRmnDATASm\SmRmn%DATA\SmSmSmn DATASmSm\SmnDATASmTmSmnWDATATm\TmSmnDATA\TmTmTmnDATATmTm\Tm\nDATATmUmTmnDATAUm\UmTmnDATA\UmUmUmn3DATAUmUm\UmnDATAUmVmUmnDATAVm\VmUmnDATA\VmVmVmn DATAVmVm\Vm\nDATAVmWmVmn%DATAWm\WmVmnDATA\WmWmWmn DATAWmWm\WmnDATAWmXmWmnDATAXm\XmWmnDATA\XmXmXmn%DATAXmXm\Xm\nDATAXmYmXmn,DATAYm\YmXmn;FREEDATA\YmYmYmnGDATAYmYm\YmnDATAYmZmYmnDATAZm\ZmYmn DATA\ZmZmZmn DATAZmZm\Zm\nDATAZm[mZmn DATA[m\[mZmnoginDATA\[m[m[mn-useDATA[m[m\[mn5FREEDATA[m\m[mnDATA\m\\m[m\nDATA\\m\m\mnrts)DATA\m\m\\mnvcouDATA\m]m\mn9rts)DATA]m\]m\mn DATA\]m]m]mn .norDATA]m]m\]m\n FREEDATA]m^m]mnFREEDATA^m\^m]mnFREEDATA\^m^m^mnDATA^m^m\^mnDATA^m_m^m\nDATA_m\_m^mnDATA\_m_m_mnDATA_m_m\_mn DATA_m`m_mn DATA`m\`m_m\nDATA\`m`m`mnDATA`m`m\`mn"DATA`mam`mn DATAam\am`mn DATA\amamamnDATAamam\amn DATAambmam\n DATAbm\bmamnDATA\bmbmbmn-DATAbmbm\bmnDATAbmcmbmnDATAcm\cmbmn"DATA\cmcmcm\nDATAcmcm\cmn DATAcmdmcmnDATAdm\dmcmn(DATA\dmdmdmn%DATAdmdm\dmnDATAdmemdm\n DATAem\emdmnDATA\emememnDATAemem\emnDATAemfmemn DATAfm\fmem\nDATA\fmfmfmn DATAfmfm\fmnDATAfmgmfmn DATAgm\gmfm\nDATA\gmgmgmn%DATAgmgm\gmn DATAgmhmgmnDATAhm\hmgmnDATA\hmhmhmnDATAhmhm\hmnDATAhmimhmn$DATAim\imhm\nDATA\imimimnDATAimim\imoDATAimjmimoDATAjm\jmimn DATA\jmjmjmoDATAjmjm\jmoDATAjmkmjmnDATAkm\kmjmnDATA\kmkmkm\nDATAkmkm\kmoDATAkmlmkmoDATAlm\lmkmnDATA\lmlmlmnDATAlmlm\lmn DATAlmmmlmo-DATAmm\mmlm\nDATA\mmmmmmo?DATAmmmm\mmnDATAmmnmmmn DATAnm\nmmmnDATA\nmnmnmoADATAnmnm\nm\nDATAnmomnmo2FREEDATAom\omnmnsEEDATA\omomomo4FREEDATAomom\omoDATAompmomoDATApm\pmomnDATA\pmpmpmnDATApmpm\pm\n DATApmqmpmoDATAqm\qmpmn DATA\qmqmqmn DATAqmqm\qmnDATAqmrmqm\nDATArm\rmqmnDATA\rmrmrmnDATArmrm\rmnDATArmsmrm\nDATAsm\smrmnDATA\smsmsmnDATAsmsm\smn DATAsmtmsmo#DATAtm\tmsm\n DATA\tmtmtmnDATAtmtm\tmn DATAtmumtmnDATAum\umtm\n DATA\umumumnDATAumum\umoJFREEDATAumvmumoGDATAvm\vmumoDATA\vmvmvmnDATAvmvm\vmnDATAvmwmvm\nDATAwm\wmvmnDATA\wmwmwmn DATAwmwm\wmn DATAwmxmwm\n DATAxm\xmwm o#DATA\xmxmxmn DATAxmxm\xmnDATAxmymxm oCFREEDATAym\ymxm o!DATA\ymymym o4DATAymym\ymnDATAymzmym\nDATAzm\zmym o5DATA\zmzmzm oDATAzmzm\zm oDATAzm{mzmnDATA{m\{mzm o4DATA\{m{m{mnDATA{m{m\{mnDATA{m|m{m oDATA|m\|m{m o DATA\|m|m|m\nDATA|m|m\|mnDATA|m}m|mnDATA}m\}m|mn DATA\}m}m}m\n DATA}m}m\}mnDATA}m~m}mo:FREEDATA~m\~m}mnFREEDATA\~m~m~moDATA~m~m\~mo$DATA~mm~mn DATAm\m~moDATA\mmm\nDATAmm\moDATAmmmnDATAm\mmnDATA\mmmo'DATAm܀m\m oDATA܀mmm\ oDATAm\m܀moDATA\mmmnYDATAm܁m\m oDATA܁mmmoDATAm\m܁m o DATA\mmmoDATAm܂m\m!oDATA܂mmm\!o DATAm\m܂m!oDATA\mmm!oDATAm܃m\m"o DATA܃mmm\"o DATAm\m܃m"oDATA\mmmoDATAm܄m\m"oDATA܄mmm#oDATAm\m܄mo> DATA\mmm\#osed=DATAm܅m\moDATA܅mmmo(DATAm\m܅m#oDATA\mmmo"ide=DATAm܆m\moDATA܆mmmo$DATAm\m܆m#oDATA\mmm$oDATAm܇m\mo#DATA܇mmmoDATAm\m܇m\$o DATA\mmmoGDATAm܈m\moCDATA܈mmm$oDATAm\m܈mo(DATA\mmm$oDATAm܉m\moDATA܉mmm%oDATAm\m܉m\%oDATA\mmm%oDATAm܊m\m%oDATA܊mmmo)DATAm\m܊m&oDATA\mmm\&oDATAm܋m\m&oDATA܋mmmoIDATAm\m܋m&oDATA\mmm'oDATAm܌m\m\'oDATA܌mmmo(vxlDATAm\m܌m'oDATA\mmm'oDATAm܍m\m(oDATA܍mmm\(oFREEDATAm\m܍mo DATA\mmmo<DATAm܎m\moDATA܎mmmoDDATAm\m܎mo+DATA\mmm(oDATAm܏m\m(oDATA܏mmm)o DATAm\m܏m\)o DATA\mmmo)DATAmܐm\m)oDATAܐmmmoDATAm\mܐm)o DATA\mmm*oDATAmܑm\m\*oDATAܑmmmoDATAm\mܑm*oDATA\mmm*oDATAmܒm\m+oDATAܒmmm\+o DATAm\mܒm+oDATA\mmm+oDATAmܓm\mo$DATAܓmmm,oDATAm\mܓm\,oDATA\mmmoDATAmܔm\m,o DATAܔmmm,o DATAm\mܔmo$DATA\mmm@o+DATAmܕm\m@oDATAܕmmmAoDATAm\mܕmAoSDATA\mmm-oDATAmܖm\m\-oDATAܖmmm-oDATAm\mܖmBoDATA\mmmBoDATAmܗm\m-o DATAܗmmm.o DATAm\mܗm\.oDATA\mmmCo0DATAmܘm\m.oDATAܘmmm.oDATAm\mܘmCoDDATA\mmmDoDATAmܙm\m/oDATAܙmmm\/oDATAm\mܙm/oDATA\mmmDo/DATAmܚm\mEoDATAܚmmmEoDATAm\mܚm/oDATA\mmmPoDATAmܛm\m\Po DATAܛmmmPo DATAm\mܛmFoDATA\mmmPoDATAmܜm\mFoDATAܜmmmGo@DATAm\mܜmGo@DATA\mmmHoDATAmܝm\mHo!DATAܝmmmIo:DATAm\mܝmQoDATA\mmmIo*DATAmܞm\mJo;DATAܞmmmJoDATAm\mܞm\QoDATA\mmmKo&DATAmܟm\mQoDATAܟmmmKoDATAm\mܟmQoDATA\mmmLoDATAmܠm\mLoDATAܠmmmRo DATAm\mܠmnuDATA\mmm\Ro DATAmܡm\mMo/DATAܡmmmRo DATAm\mܡmntDATA\mmmRo DATAmܢm\mMo0DATAܢmmmSoDATAm\mܢm\SoDATA\mmmSoDATAmܣm\mNoDATAܣmmmSoDATAm\mܣmNoDATA\mmmToDATAmܤm\m\ToDATAܤmmmTo DATAm\mܤmToDATA\mmmUoDATAmܥm\mOoKDATAܥmmmn\DATAm\mܥm\UoDATA\mmmn^DATAmܦm\mUo DATAܦmmmUo DATAm\mܦmVo DATA\mmmOo8DATAmܧm\m`oUDATAܧmmm`oDATAm\mܧm\VoDATA\mmmaoDATAmܨm\mVoDATAܨmmmaoDATAm\mܨmVoDATA\mmmboDATAmܩm\mWoDATAܩmmm\WoDATAm\mܩmboDATA\mmmWoDATAmܪm\mWo DATAܪmmmXoDATAm\mܪm\XoDATA\mmmXoDATAmܫm\mXoDATAܫmmmYo DATAm\mܫm\YoDATA\mmmYoDATAmܬm\mYoDATAܬmmmZoDATAm\mܬm\ZoDATA\mmmZoDATAmܭm\mZoDATAܭmmm[oDATAm\mܭmnDATA\mmm\[o DATAmܮm\m[o DATAܮmmm[oDATAm\mܮmco:FREEDATA\mmmnYDATAmܯm\m\oDATAܯmmmcoIDATAm\mܯmdoDATA\mmmdoDATAmܰm\meoDATAܰmmmeoDATAm\mܰmfo%DATA\mmm\\oDATAmܱm\mfo&DATAܱmmmgoDATAm\mܱm\o DATA\mmm\o DATAmܲm\mgo*DATAܲmmmho*DATAm\mܲmho$DATA\mmmio-DATAmܳm\m]oDATAܳmmmio1DATAm\mܳm\]o DATA\mmm]o DATAmܴm\m]o DATAܴmmm^oDATAm\mܴm\^oDATA\mmm^oDATAmܵm\mjoKDATAܵmmm^oDATAm\mܵmjo%DATA\mmm_o DATAmܶm\m\_oDATAܶmmm_oDATAm\mܶmko*DATA\mmmko.DATAmܷm\mlo/DATAܷmmm_oDATAm\mܷmloDATA\mmmpoDATAmܸm\m\po DATAܸmmmpoDATAm\mܸmpo DATA\mmmqo DATAmܹm\m\qoDATAܹmmmqoFREEDATAm\mܹmqoFREEDATA\mmmmoDATAmܺm\mmo7FREEDATAܺmmmnoFREEDATAm\mܺmnoFREEDATA\mmmroFREEDATAmܻm\m\ro)EEDATAܻmmmroDATAm\mܻmroDATA\mmmsoDATAmܼm\m\soDATAܼmmmsoDATAm\mܼmsoFREEDATA\mmmoo.FREEDATAmܽm\mtoDATAܽmmm\toDATAm\mܽmtoDATA\mmmooDATAmܾm\mo7DATAܾmmmoREEDATAm\mܾmoFREEDATA\mmmtoREEDATAmܿm\muoDATAܿmmm\uoDATAm\mܿmuo0]):DATA\mmmuoDATAmm\mvoDATAmmm\voDATAm\mmvoDATA\mmmvo DATAmm\mwoFREEDATAmmmo.DATAm\mm\woDATA\mmmwoDATAmm\mo7DATAmmmwoDATAm\mmxoDATA\mmm\xoDATAmm\mxoDATAmmmxoDATAm\mmoDATA\mmmyoDATAmm\m\yoDATAmmmyoDATAm\mmyo DATA\mmmzoDATAmm\m\zoDATAmmmoDATAm\mmzoDATA\mmmzoDATAmm\m{oDATAmmm\{oDATAm\mm{o DATA\mmm{oDATAmm\mo.DATAmmm|outsiDATAm\mm\|oDATA\mmmoWDATAmm\m|o DATAmmm|oFREEDATAm\mmovs,oDATA\mmmog QuDATAmm\m}oDATAmmm\}oDATAm\mmoFREEDATA\mmmoMDATAmm\m}oDATAmmm}o DATAm\mm~oDATA\mmmoDATAmm\moDATAmmmoDATAm\mmo7DATA\mmmo*DATAmm\m\~oDATAmmmo!DATAm\mmoDATA\mmm~oDATAmm\mo*DATAmmmo"DATAm\mm~oDATA\mmmoDATAmm\moDATAmmm\oDATAm\mmo(DATA\mmmo DATAmm\moDATAmmmoDATAm\mmoDATA\mmm\oDATAmm\moDATAmmmoDATAm\mmܐo DATA\mmmo DATAmm\m\oDATAmmmoDATAm\mmo&DATA\mmmoDATAmm\moDATAmmmܑoDATAm\mmo-DATA\mmmo!DATAmm\moDATAmmm\oDATAm\mmo DATA\mmmܒoDATAmm\moDATAmmmo&DATAm\mmoDATA\mmmoDATAmm\m\oDATAmmmo-DATAm\mmo"DATA\mmmoDATAmm\mܓoDATAmmmoDATAm\mm\oDATA\mmmoDATAmm\moDATAmmmoDATAm\mmo%DATA\mmmo-DATAmm\mo DATAmmmܔoDATAm\mmngDATA\mmmoDATAmm\m\oDATAmmmoDATAm\mmܕoDATA\mmmoDATAmm\m\oDATAmmmoDATAm\mmܖoDATA\mmmoDATAmm\mo)DATAmmmoDATAm\mmoPDATA\mmm\o DATAmm\moDATAmmmܗoDATAm\mmoDATA\mmmo9DATAmm\moDATAmmmoDATAm\mmo#DATA\mmmo<DATAmm\m\oDATAmmmoDATAm\mmo"DATA\mmmo<DATAmm\mo DATAmmmܘoDATAm\mmoDATA\mmm\oDATAmm\moDATAmmmoDATAm\mmܙoDATA\mmmoDATAmm\moDATAmmmoDATAm\mm\o DATA\mmmoDATAmm\mo2DATAmmmoDATAm\mmoDATA\mmmoDATAmm\mܚo DATAmmmoDATAm\mmo2DATA\mmmoDATAmm\m\oDATAmmmoDATAm\mmo/DATA\mmmܛoDATAmm\mo%DATAmmmoDATAm\mm\oDATA\mmmoDATAmm\moDATAmmmnDATAm\mmܜoDATA\mmmo DATAmm\m\oDATAmmmn3DATAm\mmnDATA\mmmnDATAmm\mnDATAmmmoDATAm\mmܝo DATA\mmmoDATAmm\mn3DATAmmmnDATAm\mm\oDATA\mmmoDATAmm\mn.DATAmmmܞoDATAm\mmoDATA\mmm\oDATAmm\mn(DATAmmmoDATAm\mmn1DATA\mmmܟoDATAmm\mnDATAmmm\nDATAm\mmnDATA\mmmnDATAmm\mnDATAmmm\nDATAm\mmn0DATA\mmmnDATAmm\mnDATAmmmnDATAm\mmnDATA\mmmn5FREEDATAmm\mn7DATAmmmnDATAm\mm\nDATA\mmmnDATAmm\mn0DATAmmmnDATAm\mmn-DATA\mmmnDATAmm\m n.DATAmmmnFREEDATAm\mm n$DATA\mmm\nDATAmm\m nDATAmmmnDATAm\mmnDATA\mmmnDATAmm\m n+DATAmmm\nDATAm\mm nDATA\mmmn_DATAmm\mnDATAmmm nDATAm\mmnDATA\mmm nDATAmm\mnDATAmmm\nDATAm\mm n'DATA\mmm n)DATAmm\mnDATAmmmnDATAm\mmnDATA\mmm n1DATAmm\m\nDATAmmmnDATAm\mmnDATA\mmmnDATAmm\m\nDATAmmmnDATAm\mmn-FREEDATA\mmmn FREEDATAmm\mn FREEDATAmmm\nFREEDATAm\mmnDATA\mmmn7DATAmm\mnDATAmmmnDATAm\mm n&DATA\mmm nDATAmm\m!n2DATAmmmnDATAm\mm!nDATA\mmmnDATAmm\m"n$DATAmmm\nDATAm\mmnDATA\mmm"nDATAmm\mnDATAmmm#nDATAm\mm#nDATA\mmmn DATAmm\m$n)DATAmmm$n$DATAm\mm\nDATA\mmm%nDATAmm\m%n0DATAm@ZmnDATA@Z\@ZmnDATA\@Z@Z@Z&nDATA@Z@Z\@ZnDATA@ZAZ@Z&nDATAAZ\AZ@Z'nDATA\AZAZAZ'n"DATAAZAZ\AZ\nDATAAZBZAZnDATABZ\BZAZnDATA\BZBZBZ(nDATABZBZ\BZ(nDATABZCZBZnDATACZ\CZBZ)nDATA\CZCZCZ)nDATACZCZ\CZ\nDATACZDZCZ*nDATADZ\DZCZnDATA\DZDZDZ*nDATADZDZ\DZ+nDATADZEZDZnDATAEZ\EZDZnDATA\EZEZEZ\nDATAEZEZ\EZ+n DATAEZFZEZ,nDDATAFZ\FZEZnDATA\FZFZFZnDATAFZFZ\FZ,nDATAFZGZFZ-nDATAGZ\GZFZ-nDATA\GZGZGZ.nDATAGZGZ\GZnDATAGZHZGZ\nDATAHZ\HZGZn DATA\HZHZHZ.n$DATAHZHZ\HZn DATAHZIZHZ/n$DATAIZ\IZHZn DATA\IZIZIZ/n$DATAIZIZ\IZ\nDATAIZJZIZ0n&DATAJZ\JZIZ0nDATA\JZJZJZnDATAJZJZ\JZnDATAJZKZJZ1nDATAKZ\KZJZ1nDATA\KZKZKZ2nDATAKZKZ\KZ2nDATAKZLZKZ3nDATALZ\LZKZ@nDATA\LZLZLZ3n#DATALZLZ\LZ4n$DATALZMZLZ4n&DATAMZ\MZLZ5nDATA\MZMZMZ\@nDATAMZMZ\MZ@nDATAMZNZMZ5n DATANZ\NZMZ6nDATA\NZNZNZ6nDATANZNZ\NZ7nDATANZOZNZ7nDATAOZ\OZNZ@nDATA\OZOZOZ8n#DATAOZOZ\OZ8n#DATAOZPZOZ9n&DATAPZ\PZOZ9n!DATA\PZPZPZAnDATAPZPZ\PZ\AnDATAPZQZPZ:nDATAQZ\QZPZ:nDATA\QZQZQZ;nDATAQZQZ\QZ;nDATAQZRZQZnDATA\SZSZSZAnDATASZSZ\SZBnDATASZTZSZ\Bn DATATZ\TZSZ>n#DATA\TZTZTZ?nDATATZTZ\TZBn DATATZUZTZBnDATAUZ\UZTZ?nDATA\UZUZUZCnDATAUZUZ\UZ\CnDATAUZVZUZPnBDATAVZ\VZUZCnDATA\VZVZVZPnRDATAVZVZ\VZCn DATAVZWZVZDn DATAWZ\WZVZQn#DATA\WZWZWZ\Dn DATAWZWZ\WZQnDATAWZXZWZDn DATAXZ\XZWZRn!DATA\XZXZXZDn DATAXZXZ\XZRn#DATAXZYZXZEnDATAYZ\YZXZ\En DATA\YZYZYZEnDATAYZYZ\YZEnDATAYZZZYZFnDATAZZ\ZZYZ\FnDATA\ZZZZZZSn7DATAZZZZ\ZZFnDATAZZ[ZZZFn DATA[Z\[ZZZGnDATA\[Z[Z[ZSnDATA[Z[Z\[ZTn)DATA[Z\Z[Z\Gn DATA\Z\\Z[ZGnges)DATA\\Z\ZGnDATA\Z#!BPYDATA\ZDATA]Z"""DATA\]ZName: 'MegaBool r4'DATA]ZBlender: 234TDATA]ZGroup: 'Object'DATAHxkTooltip: 'Perform boolean operations on meshes and get nice results'ssDATA^Z"""DATA\^ZlnuDATADxk###################################################################DATADyk# #DATADyk# Experimental New Mesh Boolean Operations #DATADzk# #DATADzk# (C) 2004 Theodore K Schundler (tschundler)(@)(scu)(edu) #DATAD{k# FOR TESTING ONLY, not for redistribution #DATAD{k# Lastest version available for from: #DATAD|k# http://astro.scu.edu/~ted/oss/blender/boolean #DATAD|k# #DATAD}k# USAGE: #DATAD}k# -By Menu- #DATAD~k# * Put this file in ~/.blender/scripts/ #DATAD~k# * Select two objects, then choose "MegaBool" from the #DATADk# scripts menu. #DATADk# -By Running the script- #DATAD`Z# * Load this file into blender's internal text editor #DATAD`Z# * Select two objects, then press Alt+P in the test editor #DATADaZ# #DATADaZ# OPERATIONS: #DATADbZ# On execution of the script, there are four operations #DATADbZ# * Intersect - Intersection of the two meshes (logical AND) #DATADcZ# * Union - Union of the two meshes (logical OR) #DATADcZ# * Difference - First selected mesh - Last selected mesh #DATADdZ# * Cookie Cutter - First mesh's faces are subdivided where #DATADdZ# they intersect with the second mesh #DATADeZ# After the script executes, all "inside" vertices are selected #DATADeZ# #DATADfZ# IMPORTANT NOTES: #DATADfZ# This script uses Blender's internal scan fill to fill faces. #DATADgZ# It does not have an official python interface *yet*, so I #DATADgZ# quickly hacked one together. A patch to the bf-blender cvs code #DATADhZ# base is available at the URL above. Patch your blender source #DATADhZ# and recompile. Then this script will run. Without the patched #DATADiZ# blender this script will fail on "fillVertLoops". #DATADiZ# Like any boolean algorithm, normals on the source meshes must #DATADjZ# be all facing outside. To fix normals, select a mesh, enter #DATADjZ# edit mode, select all verticies, and press Ctrl+N. Also, all #DATADkZ# intersections must create closed loops. (Basically the meshes #DATADkZ# should be closed.) If you find a set of meshes that do not work #DATADlZ# send me the .blend file and an explaination of the problem. #DATADlZ# #DATADmZ# TO DO: #DATADmZ# * After the operation, should probably translate results, so #DATADnZ# the mesh isn't centered around <0,0,0>, use one of the base #DATADnZ# meshes instead #DATADoZ# * Set materials, UVs, etc., on new mesh #DATADoZ# * Use correct normals on new mesh #DATADpZ###################################################################DATADpZ# #DATADqZ# Date: Updates: #DATADqZ# 16-Aug-2004 Initial Revision - working(?) & ready to go #DATADrZ# 17-Aug-2004 Fixed some bugs based on incorrect assumptions. #DATADrZ# that means even more computation. Also made more #DATADsZ# use of the traversalCookies to speed up a some #DATADsZ# sections #DATADtZ# 24-Aug-2004 Smart filling & other stuff... #DATADtZ# 26-Aug-2004 Much cleanup, nothing new / fancy #DATADuZ# #DATADuZ###################################################################DATA^ZuseDATA^Z/liDATA_ZlnuDATA\_Zimport BlenderiDATAvZfrom Blender import NMeshDATAvZfrom Blender import ObjectDATAwZfrom Blender import DrawDATA wZfrom Blender import MathutilsDATA xZfrom Blender.Mathutils import *DATA_ZDATA_ZtraversalCookie=0loDATA pnmessages=""DATA\pncesDATApnclass CCVert:DATA xZ #intialize our vertex objectDATA(yZ def __init__(self,nmVert,ccObject):DATAyZ global traversalCookieDATA zZ self.parentObject=ccObjectDATApn if nmVert:(obDATAzZ self.counterPart=nmVertDATAqn v=list(nmVert.co)terDATA{Z vec=Mathutils.Vector(v)DATA\qn vec.resize4D()xlDATA qn vec.w=1pDATA8{Z self.tco=Mathutils.VecMultMat(vec,ccObject.matrix)DATA8|Z #self.tco=Mathutils.MatMultVex(vec,ccObject.matrix)DATAqn self.tco.resize3D()dDATA|Z #print vec,"->",self.tcoDATArn else:DATA\rn self.tco=[0,0,0]DATArn self.inside=0DATArn self.outside=0kipDATAsn self.neither=0sedDATA(}Z self.traversalCookie=traversalCookieDATA\sn self.cutBy=[]DATAsn self.edgeWith=[]EDATAsn self.newCounterpart=0DATAtn self.used=0=0DATA(}Z #print "\tAdded Vertex: ", self.tcoDATA\tnDATAtnclass CCEdge:].DATA$~Z def __init__(self,v1,v2,ccObject):DATA~Z global traversalCookieDATA Z self.parentObject=ccObjectDATA Z ccObject.edges.append(self)DATA$n self.index=len(ccObject.edges)-1DATAtn self.v=[v1,v2]2],DATAdn #print "\t\tNew Edge[%d]: (v%d -> v%d)"%(self.index,v1.counterPart.index,v2.counterPart.index)NDATAunDATA4n #Make notes on points for building loops laterREEDATA n v1.edgeWith.append([v2,self])DATA n v2.edgeWith.append([v1,self])DATA\un] DATAun self.faces=[]DATAunDATA8n #define a bounding box for fast intersection testinglDATALn self.bb=[[v1.tco[0],v1.tco[1],v1.tco[2]],[v2.tco[0],v2.tco[1],v2.tco[2]]]DATAvn for i in range(3):]) DATA$n if self.bb[0][i]>self.bb[1][i]:lDATA\vn t=self.bb[0][i]DATA n self.bb[0][i]=self.bb[1][i]DATAvn self.bb[1][i]=tDATAvn self.inside=0DATAwn self.outside=0p2-DATA\wn self.neither=0\n"DATA(n self.traversalCookie=traversalCookie/DATAwnSDATAwn def findSide(self):DATAn global traversalCookieMemDATA xn ne=selfvlDATA \xn v=self.vxDATA$n traversalCookie=traversalCookie+1DATA(n FindVertexSide(v[0],traversalCookie)DATA(n FindVertexSide(v[1],traversalCookie)tDATA$n if (v[0].outside!=v[0].inside): DATAn ne.outside=v[0].outsidetDATAn ne.inside=v[0].insidekieDATAn ne.neither=v[0].neitheroDATAxn else:DATAn ne.outside=v[1].outsideADATAn ne.inside=v[1].insidedeLDATAn ne.neither=v[1].neithertDATAxnturDATA(n def realize(self,newEdges,sweep,face):DATAyn DATAn global traversalCookieopsDATA \yn v=self.v DATAyn if len(v)==2:DATAyn if sweep==1:DATA zn return DATA\zn else:DATAzn if sweep==2:DATA zn returnaDATA{nendDATA$n vA=face.verts.index(self.v[0])if DATA$n vB=face.verts.index(self.v[1])sh.DATA\{n dir=0DATA$n if vB!=(vA+1)%len(face.edges):an DATA{n #print "SD: ",vA,vB DATA {n dir=11],DATA|ns=fDATA\|n if len(v)==2:DATA |n if dir:vDATA,n ne=CCEdge(v[1],v[0],self.parentObject)VDATA |n else:[0,DATA,n ne=CCEdge(v[0],v[1],self.parentObject)lDATA(n #v[0].edgeWith.append([v[1],self])psDATA(n #v[1].edgeWith.append([v[0],self])o[DATA}n ne.findSide()e()DATA\}n newEdges.append(ne)eDATA }n return 0DATA}n else:DATAn vec=v[1].tco-v[0].tco1DATA ~n nv=[]rteDATA \~n ep=[]aceDATA~nDATA n #Sort points a long the edgeDATAPn #if AddVert (below) inserts new verts in the right place, we can avoid thisoDATA~n for vtx in v:REEDATA(n #vtx.edgePos=DotVecs(vtx.tco,vec) DATA,n vtx.edgePos=(vtx.tco-v[0].tco).lengthctDATAn ep.append(vtx.edgePos))DATAn nv.append(vtx)tDATA\n ep.sort(),1)DATAn for vtx in v:ookDATA$n nv[ep.index(vtx.edgePos)]=vtx DATA4n #print "sort edges",nv[0].outside,nv[0].insideEEDATAnDATAn #Make new edgesEDATAn outside=nv[0].outsideselDATAn nv[0].inside=1-outsideewDATA n for n in range(1,len(nv)): DATA \n if dir:DATA0n ne=CCEdge(nv[n],nv[n-1],self.parentObject)DATA n else:ieDATA0n ne=CCEdge(nv[n-1],nv[n],self.parentObject)DATA(n #print self,"--",outside,"--",neor DATAܰn ne.outside=outside(DATAn ne.inside=1-ne.outside DATA,n nv[n-1].outside=nv[n-1].outside|outsideDATA,n nv[n-1].inside=nv[n-1].inside|ne.insideDATAn nv[n].outside=outsideDATAn nv[n].inside=1-outsideDATAn newEdges.append(ne)DATA\n outside=1-outsideDATAnDATA ܱn return 1DATAn DATA\nDATAdn #add a vertex, and figure out if any others on the edge need to ne redefined as inside or outsideDATAn #For the real implementation, this should probably be a linked list, and it should add itself in the right place and adjust prev and next accordinglyDATA n def AddVert(self,v,normal):DATAn insideVec=[]DATA0n insideL=(self.v[1].tco-self.v[0].tco).lengthDATAܲn outsideVec=[]DATA0n outsideL=(self.v[1].tco-self.v[0].tco).lengthDATAn for vx in self.v:DATA\n vec=vx.tco-v.tcoDATA n if DotVecs(vec,normal)>0:DATAn if vec.lengthself.bb[1][i]:DATAn self.bb[1][i]=v[i]DATAܼnDATAn #Add EdgesDATA(n self.addEdge(nmFace.v[0],nmFace.v[1])DATA(n self.addEdge(nmFace.v[1],nmFace.v[2])DATA\n if len(nmFace.v)==3:DATA,n self.addEdge(nmFace.v[2],nmFace.v[0])DATAn else:DATA,n self.addEdge(nmFace.v[2],nmFace.v[3])DATA,n self.addEdge(nmFace.v[3],nmFace.v[0])DATAܽnDATALn #this can probably be more directly integrated into the filling functionEEDATAPn #to yeild more optimized results (for example, all the extraverts are shared,sDATALn #so they won't be the starting point for inside or outside loops, so whenEDATA<n #building those loops, we don't need to bother with themEEDATAn def GetVertexSet(self):DATAn vs=[]DATA\n for e in self.edges:DATAn for v in e.v:DATA ܾn try:DATAn vs.index(v)DATA \n except:DATAn vs.append(v)DATAn for v in self.extraVerts:DATAܿn try:DATAn vs.index(v)DATA \n except:DATA n #try:DATAn #v.cutBy.index(self)DATAn #except:DATAn #print self,vDATA\n vs.append(v)DATA n return vsDATAnDATAnclass CCObject:DATA$n def __init__(self,blenderObject):DATA$n self.counterPart=blenderObjectDATA4n print "Adding Object %s"%blenderObject.getName()DATA\nbinDATAn #setup variableslDATAn self.verts=[]DATAn self.faces=[]DATA\n self.edges=[]DATAnDATA(n #store some matrices for future useDATA$n omtx=blenderObject.getMatrix()DATAn #print "OMTX:",omtxDATAXn self.matrix=Mathutils.Matrix(list(omtx[0]),list(omtx[1]),list(omtx[2]),list(omtx[3]))DATAn #self.matrix.transpose()DATAn #print "SELF:",selfDATA\n DATAn print "\tAdding verts"DATAn #build up vertex listDATA4n m=NMesh.GetRawFromObject(blenderObject.getName())DATAn self.nmesh=mDATAn for v in m.verts:DATAn self.verts.append([])DATA$n #print "vtx: ",len(self.verts)DATA\n for v in m.verts:DATA(n self.verts[v.index]=CCVert(v,self)DATAnDATA$n print "\tAdding Faces & Edges"DATAn #build up faces & edgesDATAn for f in m.faces:DATAn if len(f.v)>2:DATA(n self.faces.append(CCFace(f,self))DATA\nDATA0ndef TestPointSideOfLine(point,v0,v1,normal):DATA<n #Note: Maybe I should store the edge's normal on the edge?DATAHn #This function gets called from different loops, so it may be worth itDATAn cp=CrossVecs(normal,v1-v0)DATAn s=DotVecs(point-v0,cp)DATA n if s < 0:DATA n return 0DATA\n else:DATA n return 1DATAndo-DATAn*DATA8n#test if a point is within the edges of a convex faceShDATAndef TestPointInFace(p,f): DATA\n vcount=len(f.verts)DATAn lastv=f.verts[vcount-1]DATAn for v in f.verts:EDATA<n if not TestPointSideOfLine(p,lastv.tco,v.tco,f.normal):DATA n return 0DATA n lastv=vDATA \n return 1M DATAnDATAnXDATAndef TestPointInEdge(v,vl):DATAn ev=vl[1].tco-vl[0].tcoDATA\n vA=v-vl[0].tcoDATAn d=DotVecs(vA,ev)EEDATA n if d<0 or vA.length>ev.length:DATA n return 0DATA n return 1DATA\nDATAnDATA$ndef TestPointInFaceInEdge(v,f,ed):DATA$n if not TestPointInEdge(v,ed.v):DATA n return 0DATA n if not TestPointInFace(v,f):DATA n return 0DATA \n return 1mDATAnDATA0n#Make a list of points out of a list of edgesDATAndef EdgeLoopVxLoop(el):DATAn global traversalCookieDATA$n traversalCookie=traversalCookie+1DATA\n vxl=[]DATAn for e in el:DATAn for v in e.v:DATA,n if v.traversalCookie10:DATAo print "Apex Outside"DATAn v.outside=1DATAn return svDATA\n elif sv==0:DATAo if len(v.edgeWith)>10:DATAo print "Apex Inside"DATAn v.inside=1DATAn return svDATA n #else:DATA0o # print "NEITHER@!!!!!!!!!!!!!!!!!!!!!!!"DATA\n # v.neither=1DATA@o #if loop failed, this must be floating out in space somewhereDATAn #v.neither=1DATA n return -1DATAnDATADo#this is needed in cases where none of the original faces are cutEEDATA\ndef FindEdgeSide(e,tc):DATA4o if e.inside==0 and e.outside==0 and e.neither==0:EDATAn #global messagesEDATA8o #messages+="Had to find the side of an edge....\n"ShDATA o v1=FindVertexSide(e.v[0],tc)DATA o v2=FindVertexSide(e.v[1],tc)DATAn if v1<0 or v2<0:DATAn e.outside=1DATA \n return 1DATA o #print "findlike ",v1,"--",v2DATAn if v1==v2:DATAn if v1==1:DATAn e.outside=1DATA\n elif v1==0:DATAn e.inside=1DATA n else:DATAn e.neither=1DATA\n else:DATAn e.neither=1DATAn if e.neither==1:DATA n return 0DATA$o elif e.inside==1 and e.outside==1:DATA \n return 3DATAn elif e.inside==1:DATA n return 2DATAn else:DATA \n return 1DATAnDATALo#After the call to blender's internal fill function, we have to figure outEDATAHo#What it returns and match it up with its counterpart in out vertex setDATAodef FindVertex(vtx,vxlist):DATAn for v in vxlist:DATAn m=0DATA\n for n in range(3):DATAn if v.tco[n]==vtx[n]:DATA n m=m+1DATA n if m==3:DATA\n return vDATA$ o print "Failed to find vertex ",vtxDATA n return 0DATAnDATAD o#Starting with an edge and a point in that edge, this builds a loopDATA$ o#of edges to fill later as a faceEEDATA8 odef MakeEdgeLoop(loop,edge,point,inside,outside,tc):DATA n v=pointin DATA\n for ew in v.edgeWith:DATA8 o if ew[1].inside>=inside and ew[1].outside>=outside:DATA o if ew[1].traversalCookie",DotVecs(cp,lcp)DATA(o dv=DotVecs(cp,lcp)DATA(o if dv<-0.00001:DATA )o breakDATA \)o lcp=cpDATA,o #if it is convex, then we should add itEEDATA)o if dv>-0.00001:DATA o AddFace(f,nm,vxl,objectflip)DATA )o returnDATA*o else:DATA\*o print "4 Verts",dvDATAo for n in range(count):DATA*o print vxl[n].tcoDATA*oDATA+o segments=[[],[]]DATA \+o tossed=[]DATA+o #Esegments=[[],[]]DATA+o cseg=0DATA(o print "E: ",len(el)," V: ",len(vxl)DATA,o lastV=vxl[count-1]DATA\,o lastE=el[count-1]DATAo for i in range(0,count):DATA ,o v=vxl[i]DATA ,o e=el[i]DATA(o #print i,": ",lastV.tco,"->",v.tcoDATA,@o #print i,": ", e.v[0].tco,"->",e.v[1].tcoDATA @o #AddEdge(nm,[e.v[0],e.v[1]])DATAAo #AddFace(nm,[lastV,v],0)DATATAo if ((e.inside != lastE.inside) or (e.outside != lastE.outside)) and skipsplit==0:DATA-o cseg=(cseg+1)%2DATA\-o tossed.append(i)DATA-o else:DATABo #print "Plain",i,v.tcoDATABo segments[cseg].append(i)DATA -o lastV=vDATA .o lastE=eDATA\.oDATA4Co print "Segments: ",segments,"\nTossed: ",tossedDATA.o testnormals=1DATA.o if skipsplit==0:DATAHCo if (len(segments[0])==0 or len(segments[1])==0) and len(tossed)>0:DATADo if len(segments[0])==0:DATA/o segments[0]=tossedDATA \/o else:DATA/o segments[1]=tossedDATA0Do if len(segments[0])==0 or len(segments[1])==0:DATAEo segments[0]=range(count)DATAEo segments[1]=range(count)DATA/o #testnormals=1DATAPo DATA \Po Cut=[0,0]DATAPo Distance=-1DATA Fo print "Test Edges: ",len(gel)DATAPo DATAFo for pi0 in segments[0]:DATADGo #for this 2nd for loop, in C version, be sure to avoid hittingDATADGo #all options, just necissary ones when segments[0]==segment[1]DATAHo for pi1 in segments[1]:DATA$Ho nv=(vxl[pi0].tco-vxl[pi1].tco)DATA<Io if (pi0!=pi1 and (Distance<0 or (nv.length0:DATAxn if not (TestPointSideOfLine(vxl[pi1].tco,v0,v1,f.normal) and TestPointSideOfLine(vxl[pi1].tco,v1,v2,f.normal)):?DATA \Ro ok=0DATA0Mo print "Falied Normals Test, Convex Case"DATA Ro else:DATAxn if not (TestPointSideOfLine(vxl[pi1].tco,v0,v1,f.normal) or TestPointSideOfLine(vxl[pi1].tco,v1,v2,f.normal)):DATA Ro ok=0DATA4Mo print "Failed Normals Test, Concave Case"DATASoDATA\So p1=vxl[pi0].tcoDATASo p2=vxl[pi1].tcoDATA No d2121=DotVecs(p2-p1,p2-p1)DATASoDATANo #test for intersectionsDATATo for e in el:DATA\To if ok==0:DATA To breakDATATo p3=e.v[0].tcoDATAUo p4=e.v[1].tcoDATALOo #Test if the new edge is an edge that already exists in the edge listDATA`n if (vxl[pi0]==e.v[0] and vxl[pi1]==e.v[1]) or (vxl[pi0]==e.v[1] and vxl[pi1]==e.v[0]):DATA\Uo if ok!=0:DATA`n print "Edge already exists (%f,%f,%f)->(%f,%f,%f)"%(p1[0],p1[1],p1[2],p2[0],p2[1],p2[2])DATA Uo ok=0DATA Uo breakDATA Vo else:DATA<Oo #Test to see of this edge overlaps an existing edgeREEDATAX`o if vxl[pi0]==e.v[0] or vxl[pi1]==e.v[1] or vxl[pi0]==e.v[1] or vxl[pi1]==e.v[0]:DATA`o if vxl[pi0]==e.v[0]:DATA\Vo sp=e.v[0]DATAao if vxl[pi0]==e.v[1]:DATAVo sp=e.v[1]DATAao if vxl[pi1]==e.v[0]:DATAVo sp=e.v[0]DATAbo if vxl[pi1]==e.v[1]:DATAWo sp=e.v[1]DATA\WoDATAbo if (vxl[pi0]==sp):DATAWo ap=vxl[pi1]DATA Wo else:DATAXo ap=vxl[pi0]DATA\XoDATAXo if (e.v[0]==sp):DATAXo bp=e.v[1]DATA Yo else:DATA\Yo bp=e.v[0]DATAYo vA=ap.tco-sp.tcoDATAYo vA.normalize()DATAZo vB=bp.tco-sp.tcoDATA\Zo vB.normalize()DATAZo d=DotVecs(vA,vB)DATAZo if d>0.9999999:DATA[o if ok!=0:DATAn print "DP failed at %f -- (%f,%f,%f)->(%f,%f,%f) vs (%f,%f,%f)->(%f,%f,%f)\n"%(d,p1[0],p1[1],p1[2],p2[0],p2[1],p2[2],p3[0],p3[1],p3[2],p4[0],p4[1],p4[2])DATA \[o ok=0DATA[o breakDATA[oDATA<co #Test if the edges intersect (i.e. in concave shaps)EDATA\n if vxl[pi0]!=e.v[0] and vxl[pi1]!=e.v[1] and vxl[pi0]!=e.v[1] and vxl[pi1]!=e.v[0]:exDATA\oDATALco #based on http://astronomy.swin.edu.au/~pbourke/geometry/lineline3d/DATA do d4321=DotVecs(p4-p3,p2-p1)DATA do d4343=DotVecs(p4-p3,p4-p3)DATA eo d1343=DotVecs(p1-p3,p4-p3)DATA eo d1321=DotVecs(p1-p3,p2-p1)DATA(fo mnad = (d2121*d4343-d4321*d4321)DATA\\o if mnad==0:DATA(fo print "\nParallel! ",p1,p2,p3,p4DATA go messages+="Parllel!!!\n"DATA\o mna=1.1DATA \o else:DATA,go mna = (d1343*d4321-d1321*d4343)/mnadDATA,ho if (mna>-0.00001 and mna <1.000001):DATA(ho mnb = (d1343+mna*d4321)/d4343DATA0io if (mnb > -0.00001 and mnb <1.000001):DATA]o if ok:DATA4io print "Intersection",p1,p2,p3,p4,mna,mnbDATA\]o ok=0DATA]o breakDATA ]o if ok:DATA^o Distance=nv.lengthDATA\^o Cut=[pi0,pi1]DATA^o if Distance < 0:DATALjo print "Couldn't find good cut point",(len(segments[0]),len(segments[1]),)DATA^o #if count==4:DATA(jo #AddFace(f,nm,vxl,objectflip,side)DATA _o #returnDATA\_o vl=[]DATA_o for v in vxl:DATA,ko vl.append([v.tco[0],v.tco[1],v.tco[2]])DATA0ko #ScanFillLoop([vl],f,nm,objectflip,vxl,side)DATA0lo BishieFill(el,vxl,f,nm,objectflip,side,gel,1)DATA_o else:DATA lo print "Cut: ",Cut,DistanceDATApo if Cut[1]3 or 1:DATA\yoDATAyo el=[]DATAyo #cutfaces=0DATAzoDATA\zo if (simple==0):DATA o #add edges of original faceDATAzo for e in f.edges:DATAzo e.realize(el,1,f)DATA{o for e in f.edges:DATA\{o e.realize(el,2,f)DATA{o f.edges=elDATA{oDATA0o if (len(vs)==4 or len(vs)==3) and simple==1:DATA|o if inside!=outside:DATA\|o for v in vs:DATAXo if (v.outside\n"%(v.tco[0],v.tco[1],v.tco[2]))DATAnDATA n for f in object.faces:DATAn if f.altered==0:DATA n #vs=f.GetVertexSet()DATAn vs=f.vertsDATA\n for v in vs:DATA( n traversalCookie=traversalCookie+1DATA, n s=FindVertexSide(v,traversalCookie)DATAn if (s==-1):DATAn v.neither=1DATAn print "NEITHER!"DATA4 n MakeFace(self.nm,f,vs,inside,outside,1,flip)EEDATA\n DATAn DATAnDATAnDATA\ndef TestBounds(b1,b2):DATAn for i in range(3):DATA0n if (b1[0][i]>b2[1][i])|(b2[1][i]n NMesh.PutRaw(nmObject.nm);DATAAn returnDATABnDATA\Bndef DoBool():DATA$>n #Check the sanity of the selectionDATA ?n objsel=Object.GetSelected()DATA Bn meshes=0DATABn for ob in objsel:DATA ?n if ob.getType() == 'Mesh':DATACn meshes += 1DATA\Cn if meshes!=2 :DATADPn Draw.PupMenu("ERROR: Exactly two mesh objects must be selected")DATA Cn returnDATATPn x=Draw.PupMenu("MegaBool%t|1: Intersect|2: Union|3: Difference|4: Cookie Cutter")DATA Cn #print xDATA Dn if x==1:DATA$Qn Intersection(objsel[1],objsel[0])DATA \Dn elif x==2:DATA Qn Union(objsel[1],objsel[0])DATA Dn elif x==3:DATA$Rn Difference(objsel[1],objsel[0])DATA Dn elif x==4:DATA$Rn CookieCutter(objsel[1],objsel[0])DATAEnDATA \En#DoBool()?DATAEnoA=Object.Get("Cookie")DATAEnoB=Object.Get("Cutter")DATA Fnprint oADATA \Fnprint oBDATA8SnIntersection(Object.Get("Cookie"),Object.Get("Cutter"))DATAFnDATAFnprint "Done."DATAGnDATASnif len(messages)>0 and 0:%DATA,Tn txt=Blender.Text.New("Boolean Messages")DATA\Gn txt.clear()DATAGn txt.write(messages)DATAGnGLOBp㿿[j DNA1SSDNANAME*next*prev*first*lastxyzwxminxmaxyminymax*newid*libname[24]usflagpadid*idblock*filedataname[160]totcurvecurblocktypeshowkeypostyperttotelem*dataname[32]sliderminslidermax*refkeyelemstr[32]elemsizecurvalblock*ipo*fromtotkeyslurphactkey**scripts*flagactscripttotscript*linelenblen*nameflagsnlineslines*curl*sellcurcselc*undo_bufundo_posundo_len*compiledsizeseekdrawzoomholdclipstaclipendlensdrawsizeYF_dofdistYF_aperturescriptlink*anim*ibuf*mipmap[10]oklastframelastqualitytpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfilelastupdateanimspeedreserved1texcomaptomaptonegblendtype*object*texprojxprojyprojzmappingofs[3]size[3]texflagcolormodelrgbkdef_varcolfacnorfacvarfacdispfacpad1pad2*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*callback)()versionaipotypedata[16]*ima*cube[6]imat[4][4]stypenotlaycuberesdepthrecalclastsizenoisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistframesoffsetsfrafie_ima*nor*plugin*coba*envfradur[4][2]modetotexenergydistspotsizespotblendhaintatt1att2bufsizesampshadspotsizebiassoftray_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizeztexactshadhalostepYF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradius*mtex[8]layspecrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_iray_depthray_depth_traharseed1seed2mode2flarecstarclinecringchasizeflaresizesubsizeflareboostrgbselpr_typeseptexpr_backpr_lampdiff_shaderspec_shaderroughnessrefracparam[4]*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showpad3rampfac_colrampfac_spec*renfrictionfhreflectfhdistxyfrictdynamodename[256]scale*bbi1j1k1i2j2k2selcolexpxexpyexpzradrad2smaxrad2*mat*imatelemsdisp**mattotcolloc[3]rot[3]wiresizerendersizethreshvec[3][3]alfas[3][2]h1h2f1f2f3hidevec[4]s[2]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsv*bp*beztnurb*bevobj*taperobj*textoncurve*path*keybev*orcopathlenbevresolwidthext1ext2spacemodespacinglinedistshearfsizexofyof*strfamily[24]*vfontmaxrcttotrctadrcodevartypetotvertipoextrapbitmask*tpageuv[4][2]col[4]transptileunwrapeffect*mface*dface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*oc*sumohandletotedgetotfacesmoothreshsubdivsubdivrsubdivdonesubsurftypecubemapsizev1v2v3v4punoedcodecreasedef_nrweight*dwtotweightco[3]no[3]co[2]pntswtypeutypevtypew*defdvec[3]max**obdeflectforcefieldpdef_damppdef_rdamppdef_permf_strengthf_powerpartypepar1par2par3parsubstr[32]*pardata*parent*track*action*pose*activeconconstraintChannelsnetworkdefbasedloc[3]orig[3]dsize[3]drot[3]quat[4]dquat[4]obmat[4][4]parentinv[4][4]colbitstransflagipoflagtrackflagupflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactordummy_1rdampingsizefacdtdtxactcolpropsensorscontrollersactuatorsbbsize[3]dfrasactdefgameflaggameflag2anisotropicFriction[3]constraintsnlastrips*pd*lifelbufporttoonedgewirerwiregwirebActWireColPadding[4]mistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypemisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolorphysicsEnginehemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammasxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]mixratemainpad[3]*avicodecdata*qtcodecdatacfraefraimagesframaptoframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1rt2stereomodemaximsizexschyschxaspyaspxpartsypartssafetyborderwinposplanesimtypebufflagqualityscemoderendererocresrpad[2]alphamodedogammaosafrs_secedgeintsame_mat_reduxgausspostmulpostgammapostaddpostigammaGIqualityGIcacheGImethodGIgradientGIphotonsGIdirectYF_AAYFexportxmlGIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_numprocsYF_raydepthYF_AApassesYF_AAsamplesGIshadowqualityGIrefinementGIpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]ftype[160]col[3]*camera*world*setbase*basact*groupcursor[3]*fcam*ed*radioframingaudiozoomblendximyim*rectspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]perspview*bgpic*localvdlocalviewlayactscenelockaroundcamzoomgridnearfarmxmymxomyogridlinesviewbutgridflagmodeselectmenunrtexnrverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinyrowbutv2d*editipoipokeytotipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgrouprectxrectycurymodeltypescriptblockre_aligntab[7]*filelisttotfiletitle[24]dir[160]file[80]ofssortmaxnamelencollums*libfiledataretvalmenuact(*returnfunc)()*menupoopsvisiflag*imageimanrcurtile*texttopviewlinesfont_idlheightleftshowlinenrspix_per_linetxtscrolltxtbar*scripttitle[28]fasesubfasemouse_move_redrawimafasedirslidirsli_linesdirsli_sxdirsli_eydirsli_exdirsli_himaslifileselmenuitemimasli_sximasli_eyimasli_eximasli_hdssxdssydsexdseydesxdesydeexdeeyfssxfssyfsexfseydsdhfsdhfesxfesyfeexfeeyinfsxinfsyinfexinfeydnsxdnsydnwdnhfnsxfnsyfnwfnhfole[128]dor[128]file[128]dir[128]*firstdir*firstfiletopdirtotaldirshilitetopfiletotalfilesimage_sliderslider_heightslider_spacetopimatotalimacurimaxcurimay*first_sel_ima*hilite_imatotal_selectedima_redraw*cmap*arg1outline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeback[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_facesel[4]face[4]face_select[4]vertex_sizetuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsspec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepscurssizetb_leftmousetb_rightmouselight[3]vertbaseedgebaseareabase*scenestartxendxstartyendysizexsizeyscenenrscreennrfullmainwinwinakt*newvvec*v1*v2panelname[64]tabname[64]ofsxofsyactivecontrolold_ofsxold_ofsy*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanels*curscreendisplaymodefileflagsglobalfname[40]*se1*se2*se3nrdone*stripdatadir[80]orxoryname[80]*newseqstartstartofsendofsstartstillendstillmachinestartdispenddispmulhandsize*strip*curelemfacf0facf1*seq1*seq2*seq3seqbase*soundlevelpancurpos*effectdata*seqbasepmetastackedgeWidthangleforwardspad1spad2spad3ipad1fpad1fpad2wipetypefMinifClampfBoostdDistdQualitybNoCompbuttypestaendlifetimetotpartseednormfacobfacrandfactexfacrandlifeforce[3]dampnablavectsizedefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstep*keysheightnarrowspeedminfactimeoffs*obpremat[4][4]postmat[4][4]vec[3]faclenoalphaoeff[2]iterlastfralimbbaseeff[3]effg[3]effn[3]memslowtotytotxxyconstrainttotdefdef_scrolllimb_scrolldxdy*idlinkotypedataold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]materialName[32]damptimeraxisdelaypropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linksinvertfreq2str[128]*mynewinputstotslinks**slinksvalvalopad5time*actblendinprioritystridelengthstrideaxisreserved2reserved3sndnrmakecopycopymadepad[1]trackvolume*melinVelocity[3]localflagforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]addedlinearvelocity[3]anotherpad[4]butstabutendminvisifacminloc[3]maxloc[3]minrot[3]maxrot[3]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]goaccellerationmaxspeedmaxrotspeedmaxtiltspeedrotdamptiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenloopstartloopendchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*gkeypadfokeygobjectgkey*activechildbaserollhead[3]tail[3]parmat[4][4]defmat[4][4]irestmat[4][4]posemat[4][4]boneclassfiller1filler2filler3bonebasechainbaseres1res2res3chanbase*achan*pchanactnrname[30]enforceoffset[3]orient[3]roll[3]*tartoleranceiterationssubtarget[32]cacheeff[3]cachemat[4][4]lockflagfollowflagzminzmaxactstartactendstridelenrepeatblendoutTYPEcharucharshortushortintlongulongfloatdoublevoidLinkListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDLibraryFileDataIpoKeyBlockKeyScriptLinkTextLineTextPackedFileCameraImageanimImBufMTexObjectTexPluginTexCBDataColorBandEnvMapLampWaveMaterialVFontVFontDataMetaElemBoundBoxMetaBallBezTripleBPointNurbCurvePathIpoCurveTFaceMeshMVertMEdgeMDeformVertMColMStickyOcInfoMFaceMDeformWeightBoneLatticebDeformGroupLBufPartDeflectbActionbPosebConstraintChannelLifeWorldRadioBaseAviCodecDataQuicktimeCodecDataAudioDataRenderDataGameFramingSceneGroupFreeCameraBGpicView3DSpaceLinkScrAreaView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsSpaceImageSpaceNlaSpaceTextSpaceScriptScriptSpaceImaSelImaDirOneSelectableImaThemeUIThemeSpacebThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemStripPluginSeqSequencebSoundEditingWipeVarsGlowVarsEffectBuildEffPartEffParticleWaveEffDeformLimbIkaOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbSamplebSoundListenerSpaceSoundGroupKeyObjectKeyGroupObjectbArmaturebPoseChannelbActionChannelSpaceActionbConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbDistanceLimitConstraintbRotationConstraintbActionStripTLEN  0PDtdd(XP4X@d<0P<  L, @,(D($$x$Th HX8d@l 8(,@0,HhH,(lDLP< <@Lx0848l@0pP<`|,,,8,<8STRC                    !" #$%& '()*+,-./0123 456 789:;<=> ?!@A5 " BCDEFGHI(J#$K%L%MNOPQRSTUVWX!YZ[\&]^_`'a(bcdefghijklmnopqrstu) vwxyz {|}~ *klm+*,'a##DENOt(52q(#)+,--jklmnDE&(J.(/Ojklm   ]^+ + &(/uJ01!Y2223 !"#$%&'()*+,2-./43 0 1(/23i4h56785 9:;<=>?@A6B:C>A777DAEFGHIJKLMN6O5P8'3 Q 1'R'S'T(9UV/2 WX4h5iY3Z[\]GH27^_`abcdef0g:::6O5Phijklmn  o&; pqrstu<#3 v 1(V/2 w x y=z>{?|@}A~<XB li4h53\CD>DE?D\=D@klmAF EF6(VGGG BhH'I'Z ''(9U3JK L  v  1 /24h53J     r  IMHHN7j     (&JO !"#$%&PPP&'('aQ ) *+,-./01234R 5 67u8S9:;TUQ<R=>?@ABCDEFGHIJKLMN;@OPQRSTUVWXYZ[\]^_`abcdef&ghijklmnopqrstuvwxyz{|}~UtuV'NV# PWX O UTkSJY #(bcd@Z+[[\'YZFg][[[\^[[\_[[\u]  ()`[[\] tua [[\]ub[[\cd e [[\]  f[[\]#ucdg [[\]h[[\ 5i [[\ju5kQ[[\      !"#$%&'()*+,-./01234l5l6789:;<=>?@ABmCmDEFu%G  HnIJKLMNOPQRSTUVWXYtuoZRS[\]^_`abcdefghijklmtppp nnooopoqorosotouovowoxoyozo{qr|Br#}~ qs   Vtttt uuuttWvvvuv\\\ttttsi   w Xx%LxxxNy yy2xz  vwz {}~  {&{{{ 2yx(V$Kz{{{ | }   ~    2    * ! "[#$%&  ''()*+ 2,+-./0 123456789(':;< A=>? @  ABC D E FGtu /HIJKLM NO PQu R S TUtV'WXYAZ[\tu ]''^_` ab\Acu ]defgh'' Ji   jklm\no p  |qrsp  tu h''<v wxV' N'' yz45{|}~    t''"+R6    tWT'XtuY   aA ''X | !Y! (u5[[\]|pcdu?> ''(4h5'' W  EEEE  4h    4h \K (  \J [[\]J\uLLL( (A\h'\'\n'\'\' Ji'''tu   \(Ji jENDB