From bd42bde21d6d203ac5c64b81493cc275e40322ec Mon Sep 17 00:00:00 2001 From: "ADS\\blaines" Date: Thu, 17 Apr 2025 19:53:00 +0200 Subject: [PATCH] Attempt to fix test_2254 --- testsuite/test_2254/README | 2 +- testsuite/test_2254/data/test.usda | 21 +-- testsuite/test_2254/ref/reference.log | 219 ++++++++++++++++++++++++++ testsuite/test_2254/ref/reference.tif | Bin 8611 -> 6616 bytes 4 files changed, 221 insertions(+), 21 deletions(-) create mode 100644 testsuite/test_2254/ref/reference.log diff --git a/testsuite/test_2254/README b/testsuite/test_2254/README index 9fdbe1ed0..6d5074843 100644 --- a/testsuite/test_2254/README +++ b/testsuite/test_2254/README @@ -7,4 +7,4 @@ See #2254 author: cyril.pichard@autodesk.com -PARAMS: {'scene': 'test.usda', 'kick_params':'-frame 5 -set ai_default_color_manager_ocio.color_space_linear scene-linear Rec.709-sRGB '} +PARAMS: {'scene': 'test.usda', 'kick_params':'-frame 5 '} diff --git a/testsuite/test_2254/data/test.usda b/testsuite/test_2254/data/test.usda index 1e52ee431..e8a5fdf44 100644 --- a/testsuite/test_2254/data/test.usda +++ b/testsuite/test_2254/data/test.usda @@ -145,26 +145,7 @@ def RenderSettings "RenderSettings" int arnold:global:AA_seed.timeSamples = { 224: 224, } - token aspectRatioConformPolicy = "expandAperture" rel camera = - float4 dataWindowNDC = (0, 0, 1, 1) - token[] includedPurposes = ["default"] - bool instantaneousShutter = 0 - token[] materialBindingPurposes = ["full", "allPurpose"] - float pixelAspectRatio = 1 - int2 resolution = (640, 480) - - def RenderSettings "rendersettings3" - { - custom int arnold:global:AA_samples = 1 - custom int arnold:global:AA_seed - int arnold:global:AA_seed.timeSamples = { - 224: 224, - } - rel camera = - float4 dataWindowNDC = (0, 0, 1, 1) - bool instantaneousShutter = 0 - float pixelAspectRatio = 1 - } + int2 resolution = (160, 120) } diff --git a/testsuite/test_2254/ref/reference.log b/testsuite/test_2254/ref/reference.log new file mode 100644 index 000000000..d18a55dcd --- /dev/null +++ b/testsuite/test_2254/ref/reference.log @@ -0,0 +1,219 @@ +Executing kick test.usda -dw -r 160 120 -bs 16 -sm lambert -sl -o D:\arnold\arnold-usd\testsuite_results\test_2254\testrender.tif -set driver_tiff.dither false -nocrashpopup -dp -frame 5 -v 6 +00:00:00 94MB | log started Thu Apr 17 19:50:59 2025 +00:00:00 94MB | Arnold 7.4.2.0 [87b166ad] windows x86_64 clang-15.0.7 oiio-2.6.3 osl-1.13.3 vdb-11.0.0 adlsdk-9.8.1.55 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2025/04/15 07:42:08 +00:00:00 94MB | running on ADSKEM00ZH29, pid=39416 +00:00:00 94MB | 1 x Intel(R) Xeon(R) w7-2495X (24 cores, 48 logical) with 64987MB +00:00:00 107MB | NVIDIA driver version 572.83 +00:00:00 107MB | GPU 0: NVIDIA T1000 8GB @ 1395MHz (compute 7.5) with 8191MB (5698MB available) (NVLink:0) +00:00:00 107MB | Windows 10 (version 10.0, build 19045) +00:00:00 107MB | soft limit for open files is set at 2048 +00:00:00 107MB | +00:00:00 107MB | Installing system handler with mask 255 +00:00:00 118MB | loading plugins from D:\arnold\arnold-usd\build\windows_x86_64\msvc_opt\usd-0.24.11_arnold-7.4.2.0\plugins\procedural ... +00:00:00 126MB | usd_proc.dll: usd uses Arnold 7.4.2.0 +00:00:00 126MB | loaded 1 plugins from 1 lib(s) in 0:00.02 +00:00:00 126MB | loading plugins from D:\arnold\sdk\latest\bin\..\plugins ... +00:00:00 126MB | alembic_proc.dll: alembic uses Arnold 7.4.2.0 +00:00:00 126MB | skipping already loaded plugin: D:\arnold\sdk\latest\bin\..\plugins\usd_proc.dll ... +00:00:00 126MB | loaded 1 plugins from 1 lib(s) in 0:00.00 +00:00:00 130MB | [kick] command: kick test.usda -dw -r 160 120 -bs 16 -sm lambert -sl -o D:\arnold\arnold-usd\testsuite_results\test_2254\testrender.tif -set driver_tiff.dither false -nocrashpopup -dp -frame 5 -v 6 +00:00:00 130MB | loading plugins from . ... +00:00:00 130MB | no plugins loaded +00:00:00 130MB | ARNOLD_ADP_DISABLE envar passed in -- ADP is disabled for this session +00:00:00 164MB | [kick] applying 2 attr value overrides +00:00:00 164MB | +00:00:00 164MB WARNING | rendering with watermarks because the skip_license_check option was enabled +00:00:00 164MB | +00:00:00 164MB | [color_manager] using color manager color_manager_ocio of type "color_manager_ocio" +00:00:00 165MB | [color_manager_ocio] color_manager_ocio : using OCIO configuration file from the OCIO environment variable D:\arnold\sdk\latest\ocio\configs\arnold\config.ocio +00:00:00 166MB | [color_manager] rendering color space is "ACEScg" +00:00:00 218MB | +00:00:00 218MB | there are 1 light and 4 objects: +00:00:00 218MB | 1 persp_camera +00:00:00 218MB | 1 distant_light +00:00:00 218MB | 2 utility +00:00:00 218MB | 1 standard_surface +00:00:00 218MB | 1 user_data_rgb +00:00:00 218MB | 1 driver_tiff +00:00:00 218MB | 2 box_filter +00:00:00 218MB | 1 gaussian_filter +00:00:00 218MB | 2 polymesh +00:00:00 218MB | 2 list_aggregate +00:00:00 218MB | 1 instancer +00:00:00 218MB | 3 color_manager_ocio +00:00:00 218MB | +00:00:00 218MB | rendering image at 160 x 120, 1 AA sample +00:00:00 218MB | AA samples max +00:00:00 218MB | AA sample clamp +00:00:00 218MB | diffuse samples 2 / depth 1 +00:00:00 218MB | specular samples 2 / depth 1 +00:00:00 218MB | transmission samples 2 / depth 2 +00:00:00 218MB | volume indirect +00:00:00 218MB | total depth 10 +00:00:00 218MB | bssrdf samples 2 +00:00:00 218MB | light +00:00:00 218MB | transparency depth 10 +00:00:00 218MB | full scene initialize (15 nodes) +00:00:00 219MB | [instancer] /Geo/instancer: creating 6 instances +00:00:00 220MB | [proc] /Geo/instancer: loaded 6 nodes (6 objects, 0 shaders) +00:00:00 220MB WARNING | [obj] unable to optimize object list - found an instance which refers to an object in a different procedural +00:00:00 220MB | creating root object list ... +00:00:00 220MB | full scene initialize done in 0:00.00 (multithreaded) +00:00:00 220MB | fast scene update (21 of 22 nodes) +00:00:00 220MB | [color_manager_ocio] ai_default_color_manager_ocio : using OCIO configuration file from the OCIO environment variable D:\arnold\sdk\latest\ocio\configs\arnold\config.ocio +00:00:00 221MB | /Lights/Distant1: distant_light using 1 sample, 2 volume samples +00:00:00 221MB WARNING | [obj] unable to optimize object list - found an instance which refers to an object in a different procedural +00:00:00 221MB | scene bounds: (-1.55000007 -3.20000005 0) -> (7.44000006 4.3499999 0) +00:00:00 221MB | fast scene update done in 0:00.00 (multithreaded) +00:00:00 221MB | [light_sampler] Group 0: Total number of lights 1, sampled lights 0, fixed lights 1 +00:00:00 221MB | [light_sampler] Group 0: Took 0.022000 ms to build the tree +00:00:00 221MB | [aov] parsing 1 output statements ... +00:00:00 222MB | [aov] registered driver: "kick_driver" (driver_tiff) +00:00:00 222MB | [aov] * "RGBA" of type RGBA filtered by "kick_filter" (gaussian_filter) +00:00:00 222MB | [aov] done preparing 2 AOVs for 1 output to 1 driver (0 deep AOVs) +00:00:00 225MB | starting 48 bucket workers of size 16x16 ... +00:00:00 231MB | [accel] list_aggregate bvh4 done - 0:00.00 (wall time) - 7 prims, 1 key +00:00:00 241MB | 1% done - 10 rays/pixel +00:00:00 244MB | 5% done - 5 rays/pixel +00:00:00 246MB | 10% done - 5 rays/pixel +00:00:00 247MB | 15% done - 6 rays/pixel +00:00:00 252MB | 20% done - 5 rays/pixel +00:00:00 262MB | 25% done - 5 rays/pixel +00:00:00 267MB | 30% done - 4 rays/pixel +00:00:00 269MB | 35% done - 1 rays/pixel +00:00:00 270MB | 40% done - 2 rays/pixel +00:00:00 271MB | 45% done - 2 rays/pixel +00:00:00 271MB | 50% done - 2 rays/pixel +00:00:00 271MB | 55% done - 2 rays/pixel +00:00:00 271MB | 60% done - 7 rays/pixel +00:00:00 271MB | 65% done - 1 rays/pixel +00:00:00 271MB | 70% done - 3 rays/pixel +00:00:00 271MB | 75% done - 1 rays/pixel +00:00:00 271MB | 80% done - 0 rays/pixel +00:00:00 271MB | 85% done - 1 rays/pixel +00:00:00 272MB | 90% done - 0 rays/pixel +00:00:00 272MB | 95% done - 1 rays/pixel +00:00:00 272MB | 100% done - 1 rays/pixel +00:00:00 272MB | render done in 0:00.032 +00:00:00 272MB | [driver_tiff] writing file `D:\arnold\arnold-usd\testsuite_results\test_2254\testrender.tif' +00:00:00 273MB | render done +00:00:00 273MB | +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | scene creation time 0:00.17 machine utilization (5.99%) +00:00:00 273MB | unaccounted 0:00.17 +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | frame time 0:00.11 machine utilization (2.06%) +00:00:00 273MB | driver init/close 0:00.02 +00:00:00 273MB | rendering 0:00.03 +00:00:00 273MB | pixel rendering 0:00.03 +00:00:00 273MB | unaccounted 0:00.04 +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | top session self-times by category +00:00:00 273MB | thread blocked 0:00.00 (35.39%) +00:00:00 273MB | AiMalloc 0:00.00 (12.74%) +00:00:00 273MB | BVH::intersect (root) 0:00.00 ( 8.49%) +00:00:00 273MB | RenderBucket 0:00.00 ( 7.08%) +00:00:00 273MB | sampleNextBatch 0:00.00 ( 5.66%) +00:00:00 273MB | surface closure (_default_arnold_shader) 0:00.00 ( 4.25%) +00:00:00 273MB | AiSceneLoad 0:00.00 ( 4.14%) +00:00:00 273MB | ADP 0:00.00 ( 4.07%) +00:00:00 273MB | TraceCameraRay 0:00.00 ( 2.83%) +00:00:00 273MB | Plugin loader 0:00.00 ( 2.80%) +00:00:00 273MB | usd_proc:read_stage 0:00.00 ( 2.76%) +00:00:00 273MB | AtRenderSession::Setup 0:00.00 ( 2.75%) +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | top session self-times by node +00:00:00 273MB | thread blocked 0:00.00 (35.39%) +00:00:00 273MB | AiMalloc 0:00.00 (11.33%) +00:00:00 273MB | standard_surface:_default_arnold_shader 0:00.00 ( 8.49%) +00:00:00 273MB | surface closure 0:00.00 ( 4.25%) +00:00:00 273MB | AiMalloc 0:00.00 ( 1.41%) +00:00:00 273MB | AiShaderEvalParamFuncFlt 0:00.00 ( 1.41%) +00:00:00 273MB | list_aggregate:root (BVH::intersect) 0:00.00 ( 8.49%) +00:00:00 273MB | RenderBucket 0:00.00 ( 7.08%) +00:00:00 273MB | sampleNextBatch 0:00.00 ( 5.66%) +00:00:00 273MB | AiSceneLoad 0:00.00 ( 4.14%) +00:00:00 273MB | ADP 0:00.00 ( 4.07%) +00:00:00 273MB | TraceCameraRay 0:00.00 ( 2.83%) +00:00:00 273MB | driver_tiff:kick_driver 0:00.00 ( 2.81%) +00:00:00 273MB | driver_open 0:00.00 ( 1.41%) +00:00:00 273MB | driver_close 0:00.00 ( 1.40%) +00:00:00 273MB | Plugin loader 0:00.00 ( 2.80%) +00:00:00 273MB | usd_proc:read_stage 0:00.00 ( 2.76%) +00:00:00 273MB | AtRenderSession::Setup 0:00.00 ( 2.75%) +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | peak CPU memory used 273.46MB +00:00:00 273MB | at startup 77.43MB +00:00:00 273MB | plugins 0.01MB +00:00:00 273MB | AOV samples 0.47MB +00:00:00 273MB | output buffers 0.26MB +00:00:00 273MB | framebuffers 0.31MB +00:00:00 273MB | node overhead 0.01MB +00:00:00 273MB | instance overhead 0.00MB +00:00:00 273MB | message passing 0.09MB +00:00:00 273MB | memory pools 33.89MB +00:00:00 273MB | geometry 0.00MB +00:00:00 273MB | polymesh 0.00MB +00:00:00 273MB | vertices 0.00MB +00:00:00 273MB | vertex indices 0.00MB +00:00:00 273MB | packed normals 0.00MB +00:00:00 273MB | normal indices 0.00MB +00:00:00 273MB | uniform indices 0.00MB +00:00:00 273MB | userdata 0.00MB +00:00:00 273MB | accel structs 0.01MB +00:00:00 273MB | strings 24.50MB +00:00:00 273MB | profiler 0.00MB +00:00:00 273MB | backtrace handler 30.56MB +00:00:00 273MB | unaccounted 105.91MB +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | ray counts ( /pixel, /sample) (% total) (avg. hits) (max hits) +00:00:00 273MB | camera 24160 ( 1.26, 1.00) ( 46.56%) ( 0.13) ( 1) +00:00:00 273MB | shadow 3084 ( 0.16, 0.13) ( 5.94%) ( 0.00) ( 0) +00:00:00 273MB | diffuse_reflect 12336 ( 0.64, 0.51) ( 23.77%) ( 0.00) ( 0) +00:00:00 273MB | specular_reflect 12314 ( 0.64, 0.51) ( 23.73%) ( 0.00) ( 0) +00:00:00 273MB | total 51894 ( 2.70, 2.15) (100.00%) ( 0.06) ( 1) +00:00:00 273MB | by ray depth: 0 1 +00:00:00 273MB | total 52.5% 47.5% +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | shader calls ( /pixel, /sample) (% total) +00:00:00 273MB | primary 6168 ( 0.32, 0.26) (100.00%) +00:00:00 273MB | total 6168 ( 0.32, 0.26) (100.00%) +00:00:00 273MB | by ray depth: 0 1 +00:00:00 273MB | total 100.0% 0.0% +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | geometry (% hit ) (instances) ( init mem, final mem) +00:00:00 273MB | lists 1 (100.0%) ( 0) ( 0.00, 0.00) +00:00:00 273MB | procs 1 ( 0.0%) ( 0) ( 0.00, 0.00) +00:00:00 273MB | polymeshes 2 (100.0%) ( 6) ( 0.00, 0.00) +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | geometric elements ( min) ( avg.) ( max) +00:00:00 273MB | objects (procs) 6 ( 6) ( 6.0) ( 6) +00:00:00 273MB | polygons 2 ( 1) ( 1.0) ( 1) +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | triangle tessellation ( min) ( avg.) ( max) (/ element) (% total) +00:00:00 273MB | polymeshes 4 ( 2) ( 2.0) ( 2) ( 2.00) (100.00%) +00:00:00 273MB | unique triangles 4 +00:00:00 273MB | visible triangles 12 +00:00:00 273MB | largest polymeshes by triangle count +00:00:00 273MB | 2 tris -- /Geo/instancer/Prototypes/Plane0000 +00:00:00 273MB | 2 tris -- /Geo/instancer/Prototypes/Plane0001 +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | acceleration structures: (% total) +00:00:00 273MB | list 2 ( 66.67%) +00:00:00 273MB | bvh 1 ( 33.33%) +00:00:00 273MB | total 3 (100.00%) +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | number of warnings, warning type: +00:00:00 273MB | 2: [obj] unable to optimize object list - found an instance which refers to an object in a different procedural +00:00:00 273MB | 1: rendering with watermarks because the skip_license_check option was enabled +00:00:00 273MB | ----------------------------------------------------------------------------------- +00:00:00 273MB | +00:00:00 273MB | releasing resources +00:00:00 191MB | +00:00:00 191MB | releasing resources +00:00:00 179MB | unloading 2 plugins +00:00:00 179MB | closing usd_proc.dll ... +00:00:00 179MB | closing alembic_proc.dll ... +00:00:00 179MB | unloading plugins done +00:00:00 179MB | Arnold shutdown +00:00:00 166MB | Installing system handler with mask 0 diff --git a/testsuite/test_2254/ref/reference.tif b/testsuite/test_2254/ref/reference.tif index 410f28b65c449577eacdfa2e6ca43d1b62979c61..cd0d08d6c4eff23f8fff36275b1f29fe87f86855 100644 GIT binary patch delta 5993 zcmW;QcRUsPYT&L%$AYH$&t*AkVG9T z$I2E`S4K%HLeX%4_xJt({pb6S*W<}Fn?02C0k6*qz#Iwy3j_dnApp>!0JL)fkdMoQ zQ{&y|uuVc1C`K`5xH2?|9a|JxKqKQ>FXa$){@! zfZ{4;K~8s@gHPt9dyD9?Ajz|U$mOiK3BC5Kob{0GbLh+T5va?(BK*xCe<>{T1vl*y zcQp`P{Vfm8@YVp>Dn|MutdYkRz_Yao*w$V!XvpPFOdMf~`R0>CX}9}p`&NCxMN z!58BCDRqNc^o@h(jx60X2b#$Km8iHAZC*p%;7q{%j*VkhnMgT_?VfGOBB(ufj$C}V zP9=AknCEJC?8`*_=LUX?u{2+Fo z*`KgySUJCm{(T?%yh{l_CfS2zwnw3Bcw0$$e*s-$|$%n)N>_&ms~ z7Cj1(>pa&8pU=(GMkZ}J+SHs%*MU@sSTfBqm5(yTSu>LeWC)pFz{r`IDQxwR@W@WSD* zBI4WCFJg{U$^VpPDglw)x_5g0i$sy0!gA|Yz*)=yFxsUiEUc0N`4D5JKs(ovETjdH zP&ZSKgcnB+9D%2G+P0ynyq&8^TGnpdsnbR32atGQI!kRq-Wb(&?*kErNKKrn+L z^eaPB0n#6+`lO@phfXTM9C8qkdmrVzA@FGB0MigRir6xZc0E{PI62ZX%PQxSmFx*} z`A>XIaz=(n#GM~6`K5WSCx1jS6{M-C1ArW=I_=yW`v40vmm|?>FOA?rQCZ^Nzn`0& zTceoDaD2y?*lFfOt0OFsNOPk{0FoBp8oR8%+C|JFLma5^5HC~mWqT&p1z#MT%?c4X z)I(WgJoz4P6KEnRY1Se>Z006!i#0z_$DK@bbJfW0!lu1Uxc4#-&UHNJfioHfOq99p z{oID*diixS3;vkMH$T1Swozi&gsKy4p10cU@_=hi3~L zWQNGEC682y6{5#xJ;=0Gr3MXfi)=y^DFxgF=yt`WQbR}5d)&7h5o*Aq8!qyI-sGHZ zn_z6S@3an)D++%q^@P8NLip>pq19Ul zWtx!IvE{6{`jHmreTuPm7hTSI;AM9;g58o#AmwFJ(cFPl-O=hoQvO1>pxNwHX6|l$ zXjUxbOf>-ruKSHn=x~MHr;LQ191*Aae89P9t6WDkS8n+ne?UHu*m~}|q1OG;-XzSI z)Ht?A8=ElpKm~C-Ml>XPbfcAEW(I^Xk&Jg-y|dIMk(P3vD%LQ#upr|#i| zMhA;HWfl|zf)X1b8u)NObstlN>OfpwbY2E%vII~u? zVr^%P!un?3EaeMaxNWi}_wN;&CJxLqJxFl;HS_9VoOGVbh_w=OOWe<43C$Ng2gePv z!0FNs6Rk*SA_+n|!T^$XrpX;YnvTDQa-Lut>&RXn;`VdpFtikf@_`?vFKdfpHItnt zeC(6xo`|$bb;>@WxFKfIE9@?{K<%*pDu|yJwLchpbh95dUc}htr)-!Kmc}3e^ ztFyTRk2Gl#>SM~^F&Je)y(Z&Aoti5K=FEBd1H!5*{98+3#9uyGZNeW74tdVMTK8V7 z=Wt1|j?Q@u`(!o0cR99hv6GJ0<*A%90bluFd9sp(DH4b#JTr)m7e%jaWH;?0A<|b4 zD=%g0k~Yq!3^~0%x7p2YloF_Lt3Scu#faLO`z7z51wTA2ka@!7bMQ{fib(XNZMfZT zyWqGAl8j8>zxS#0sd$Lz6~VuY8w&{-(;xCpRt(KQVR+-}V zA3t306P=LEw90(oZY*2*PuR4{6s7N*Z*ncwe$?5tog=667 zyXd4pk_~gMCeU98f4L8CFP6QCd4F(fIOkfE{|=nOys;w5=lM64t-d#4ZTr><-dXo2 zvwm|25mtDRo|w-P6Qr02xDd;Y$nIPKjogWakZD9J9^LN@)fCMgAm_#5@>G$BSc%=S zSU*!>)v##uegm~-2xJr)uwHIoCd=}LDHlpoBfa`$$Ep7F@AwrRFdHeC0&LK)_ijM(yTEbnzjszHV4In98 z*|?9H8PEoZe5|~l5=eP8$rAb1hnG?r{`CG50pSYwZ4A8#2^{8fiCQ=xfei<)vDP ztI_@y3Iloi>SXNFf%Mw?!duCPW5ZiKiK>rW0~Z#y7l|qUFkRfuA%%3wPu0 znLt7!UcS~+3_TckkYq&wUb5UISoykb6s6XTuZVtv@IIqUt3s$iVcf?^dBt4PgJCLW znpC;D#4)9pTs%fowHDI{xXCu4ZhE11)nu$d9b@*yhHNDYAYqljF4C80-^g0mE31?P zRw;(Apy%^lhy1Ay6VYIhMAM?_<`lM$$BrdC z8@gpr;zQtu&$eD%z*s)+oE&3uCiqwab^yqz--$btLS6031Gc}t2 z#lbcjua+8I@x&VWl@TrD|&vZzftXgSS%+-z8>|7UZG$qWGz3_O(7 zfBh~jcW&LD2(uH;V6=u3D_79sHTsMwW3fCXSbFk!;Fu3w+o>nBr#P%sW8`s}8a_Kf z@4-;z$6f@#sdOffCx+YqzhLtymyRtgd$$pH;@GI34??joGMuu(AuC@cz$~H%*V0F* z@VB}8gV4D8ZJ&2mm@zBc>O_;x{P5;W5>6hGn${9iKunJf1ZG%31&fOLz)5xf`Q_g` z-{e2PA-l1V5==(c6@{E*Ufn^)FV=9Dv=a`ekQu&<{?n$H7_!BO)| z(A5(i#*~Y4Uq%Trq~-t_+_7H1n?eR$>Z?5=h}E|Ox2yPpRMf82R{|2^B{?TEbt0k< z=bW6^jDSGODS?<)%j6Qw@ZhV|E%v`cP)-;MzkhA*sM5u z>}@!ClkN4U4kzLzH1;WRyFJgoVJ`yK=(A%thB$}ZRnn9yx^AUeXp}qT6Z>oCRd27TmG-YK`sOn| z0yj7Jats^HebEezktw^yZB9(7vQu70RuboVp}zU=ThUX^ zFLM0|=rLXxJopZv3RzmQcI9eX9cA2)THOt@knv<4D9yFIe!{dU2V!~h<^FLGGr+dW zVaD-4j)$%r_qOfvLUq^=1Qnb2z>knbr*6W5#b%Llm;K&68FCIwl|>>b;zIQ38obE; z_Ey1_M77UJp7m8FOmo3=)2@Y6_vc{DpR8JA&gpBL8V3D#=>^B0GERSN-|Y%rp^=w3 z4y?v@kM5Q;vsxvi#@z<5o{b#Ph?g;G)Yf5YPegiEbgHDP?BA|B;3BKVlx&-+KPCPP zUs2V|b844%WdOXt{e4A>+!mtK;hriL{mXu!&iNuF9OOvzN+sWpDkm1QTGd8wMJMN; z*nhOzR>m18ZWtcvfqC#cE%Kf_<_n^praPn)_+ZiudiiRV1)uJESt6o4$BbvW{J1`PKT^N-!#}>?&a!N3;-hyW z>fIgZ`pH0~VteX!@pw4v4%8{%F@q3y!1e9Ue&1eqN>X!KoVcyCiPXFP<3E~G1r+qs z+0wPGx>qz#z2bJUrX2NEol3%&j8L+OqXx_3Q61+~%g87rhU^ikzy%hVsB$FTgMHXK z6UC+Ibpb;~ujsRSd3 zBg!fqC78_4{S?{cihA;=|JH;YoC*leL^&Z0l5Xnn+!m-W!J7&=5Tpjkzc4kKDHdYg zeHkGyQNW-8qM9ZmsCs#6$z>5>&>7_VhmR}&n_7^x4iC@R7-X1yyr8@>A8B~K<4&d) zbdKLQv7RsUkP%uHCcsL3Ki}wz5UVi{^CYTPc|+ArR9W!2GPt=tt769P!OWMK4!?-w z&sP6OME;S)D$+qV(8eiI;mKC0v+9jWu9QbIS>TpSC61`(hq*lp4&^v-3s}J>y0!_( zq3Oxm`1Xu}<@{|QS1BpcXl5LI_yp+CJXeC4ciM&QoqT6Fx$qYsbQ@pc0| zdY}>eNe7uM!)*E?W2ZROql;5F*L)5A*%iHG^L=0QY;3#2t0%DXjw@1&&(1GAp@gr) z7l|b3qtB1}U6N@$((7<-brxuDqw?sAVtW2ZM0{v*;W8?CZYP|b2tO-STdGo8$s@Zo zN%&&RJme0+`q!anWQbNhveUf z3`0KG|Kg~GG`?e`ZvIqZ5FR~VaPzwVY@ymQTlXrwzp0(>!q^WA!!7A6aJ*P^B2TV+ zi=c_h5!pgNVdD;fO_@Zd>hU$vX>|AJo0&21gfmx~yrCj9y-*rr1n)NWg_t^``V~5? z$d+3I9Eru>vt)Y=%U?61syu0^Xj^2kE61Hc;_a9yj#Vmu=EvNX67_%L-z`F#$oVXo z(vYQr4oBRba}@tD3l(0piV$iU+u>$?dHb^Y;ohr(W=m`#ZMCj3x*U*a>&-NK85Gvl ze8#Rk2eL}D;#>+2p{Ifd_r#VTKTP}XdhLX4;bbb!=y{{7H} z$rvAkH-|;-mbepcEi`QPdw%0gFF(yq=L5&|t4SRvO47%h{$vvKLq=O7-@IGGqVr|G z>8`aW!8Lt9B(eivd=4R~V50;Ny-FNr*UpJbhhxf{8QHQ}=gbo_i1Cvsp|4yK&auGh z?5~WZ6Lxoe{+X#mDW019BgNbM>~f`4#6tPie^jv-g@-Sh`&Y9T1kyPFA{Eks)M_i$5D~qx+)$$B{E=*pIck=!$&uMs6{-x4OM{mm+zc_fhgHY&T z9_pFoPWIg?jbzJU7s*sy0^P-U(_V2NYVsPNemMVJ^7y>bp2A;&k|^8Y@m~%$pDdIg PxIZd%oj+;!Dh={~CiQg3 delta 8004 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