From oldham at codesourcery.com Mon Sep 3 16:36:04 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Mon, 3 Sep 2001 09:36:04 -0700 Subject: Broken Executables Message-ID: <20010903093604.A29443@codesourcery.com> I discovered two uses of deprecated Field features when testing a QMTest regression testsuite. 1) DiscreteGeometry is no longer defined. For example, src/Array/ScalarAdvection.cpp no longer compiles. I have attached a partial patch, but the underlying problem is unresolved. 2) ArrayView is no longer defined. For example, src/Connect/Lux/LuxConnector.Field.h uses this so src/Connect/Lux/test/bytefield.cpp fails to compile for me. I have attached a partial patch, but the underlying problem is unresolved. If someone has expertise in fixing these problems, feel free to do so. Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- Index: ScalarAdvection.cpp =================================================================== RCS file: /home/pooma/Repository/r2/src/Array/tests/ScalarAdvection.cpp,v retrieving revision 1.4 diff -c -p -r1.4 ScalarAdvection.cpp *** ScalarAdvection.cpp 2000/07/20 15:36:24 1.4 --- ScalarAdvection.cpp 2001/09/03 16:22:41 *************** int main(int argc, char *argv[]) *** 214,220 **** // Create two geometry objects - one allowing 1 guard layer to account for // stencil width and another with no guard layers to support temporaries: ! typedef DiscreteGeometry > Geometry_t; Geometry_t geom(mesh, GuardLayers(1)); Geometry_t geomNG(mesh); --- 214,221 ---- // Create two geometry objects - one allowing 1 guard layer to account for // stencil width and another with no guard layers to support temporaries: ! Centering<2> cell = canonicalCentering<2>(CellType, Continuous); ! typedef DiscreteGeometry > Geometry_t; Geometry_t geom(mesh, GuardLayers(1)); Geometry_t geomNG(mesh); -------------- next part -------------- Index: LuxConnector.Field.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Connect/Lux/LuxConnector.Field.h,v retrieving revision 1.2 diff -c -p -r1.2 LuxConnector.Field.h *** LuxConnector.Field.h 2000/03/07 13:16:19 1.2 --- LuxConnector.Field.h 2001/09/03 16:26:04 *************** *** 81,90 **** // //----------------------------------------------------------------------------- ! template ! class Connector, Lux> ! : public Connector, ! typename Field::Domain_t>::Type_t, Lux> { public: --- 81,90 ---- // //----------------------------------------------------------------------------- ! template ! class Connector, Lux> ! : public Connector, ! typename Field::Domain_t>::Type_t, Lux> { public: *************** public: *** 92,98 **** // Public typedefs and enums //============================================================ ! typedef Field Field_t; typedef typename Field_t::Domain_t Domain_t; typedef typename ArrayView::Type_t Array_t; typedef Connector Base_t; --- 92,98 ---- // Public typedefs and enums //============================================================ ! typedef Field Field_t; typedef typename Field_t::Domain_t Domain_t; typedef typename ArrayView::Type_t Array_t; typedef Connector Base_t; From mark at codesourcery.com Tue Sep 4 19:22:11 2001 From: mark at codesourcery.com (Mark Mitchell) Date: Tue, 04 Sep 2001 12:22:11 -0700 Subject: Timesheets Message-ID: <106410000.999631331@warlock.codesourcery.com> Please get 'em in. Thanks, -- Mark Mitchell mark at codesourcery.com CodeSourcery, LLC http://www.codesourcery.com From oldham at codesourcery.com Wed Sep 5 15:56:50 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Wed, 5 Sep 2001 08:56:50 -0700 Subject: Support Tester's Use of std::abs(double) Message-ID: <20010905085650.A11295@codesourcery.com> The Tester class sometimes uses the std::abs(double) to determine if the resulting value is close enough to the desired value. We include the C++ header files declaring the various std::abs. Without this change, compiling src/Array/tests/array_test27.cpp fails using gcc 3.0.1 on Linux. 2001-09-05 Jeffrey D. Oldham * Tester.h: Add cstdlib and cmath to include declarations of std::abs. Tested on sequential Linux using gcc 3.0.1 by compiling Pooma library, array_test27, and Field tests Approved by Stephen Smith Applied to mainline Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- Index: Tester.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Utilities/Tester.h,v retrieving revision 1.12 diff -c -p -r1.12 Tester.h *** Tester.h 2001/08/30 01:15:43 1.12 --- Tester.h 2001/09/03 23:14:35 *************** *** 53,58 **** --- 53,60 ---- #include "Utilities/Inform.h" #include "Utilities/PAssert.h" + #include + #include //----------------------------------------------------------------------------- From oldham at codesourcery.com Wed Sep 5 20:43:38 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Wed, 5 Sep 2001 13:43:38 -0700 Subject: array_test5.cpp Revision to Incorporate Tolerance Message-ID: <20010905134338.A31948@codesourcery.com> array_test5 was failing using gcc 3.0.1 on Linux because floating point and complex numbers wre compared using ==. We revise to check within a tolerance of 1.0e-08. 2001-09-05 Jeffrey D. Oldham * array_test5.cpp (floatCheck): New function that uses a tolerance. (main): Replace appropriate uses of check with floatCheck. Tested on sequential Linux using gcc 3.0.1 by compiling array_test5 Approved by Stephen Smith Applied to mainline Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- Index: array_test5.cpp =================================================================== RCS file: /home/pooma/Repository/r2/src/Array/tests/array_test5.cpp,v retrieving revision 1.12 diff -c -p -r1.12 array_test5.cpp *** array_test5.cpp 2000/03/10 18:10:46 1.12 --- array_test5.cpp 2001/09/05 20:21:56 *************** inline void check(const T &ans, const T *** 46,51 **** --- 46,57 ---- tester.check(ans == correct); } + template + inline void floatCheck(const T &ans, const T &correct, Pooma::Tester &tester) + { + tester.check(std::abs(ans - correct) < 1.0e-08); + } + int main(int argc, char *argv[]) { Pooma::initialize(argc, argv); *************** int main(int argc, char *argv[]) *** 61,68 **** for (j = 0; j < 2; j++) for (i = 0; i < 2; i++) { ! check(a(i,j), 7.0, tester); ! check(b(i,j), x, tester); } c = a + 2.0 * b; --- 67,74 ---- for (j = 0; j < 2; j++) for (i = 0; i < 2; i++) { ! floatCheck(a(i,j), 7.0, tester); ! floatCheck(b(i,j), x, tester); } c = a + 2.0 * b; *************** int main(int argc, char *argv[]) *** 71,77 **** for (j = 0; j < 2; j++) for (i = 0; i < 2; i++) { ! check(c(i,j), complex(9.0,4.0), tester); } complex y(-3, -4); --- 77,83 ---- for (j = 0; j < 2; j++) for (i = 0; i < 2; i++) { ! floatCheck(c(i,j), complex(9.0,4.0), tester); } complex y(-3, -4); *************** int main(int argc, char *argv[]) *** 81,87 **** for (j = 0; j < 2; j++) for (i = 0; i < 2; i++) { ! check(c(i,j), complex(5.0,6.0), tester); } d = norm(a + y * conj(b)); --- 87,93 ---- for (j = 0; j < 2; j++) for (i = 0; i < 2; i++) { ! floatCheck(c(i,j), complex(5.0,6.0), tester); } d = norm(a + y * conj(b)); *************** int main(int argc, char *argv[]) *** 90,96 **** for (j = 0; j < 2; j++) for (i = 0; i < 2; i++) { ! check(d(i,j), 20.0, tester); } d = real(y * pow(b, 2)); --- 96,102 ---- for (j = 0; j < 2; j++) for (i = 0; i < 2; i++) { ! floatCheck(d(i,j), 20.0, tester); } d = real(y * pow(b, 2)); From oldham at codesourcery.com Wed Sep 5 21:42:42 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Wed, 5 Sep 2001 14:42:42 -0700 Subject: Change Tiny Tests to Use New Field Abstractions Message-ID: <20010905144242.A32404@codesourcery.com> We revise the tests to use the new field abstractions. 2001-09-05 Jeffrey D. Oldham * TestDet.cpp (testDet): Replace use of DiscreteGeometry and Cell with new field centering and creation functions. * TestSymmetrize.cpp (testSymmetrize): Likewise. * TestTrace.cpp (testTrace): Likewise. * TestTranspose.cpp (testTranspose): Likewise. Tested on sequential Linux using gcc 3.0.1 by compiling and running the executables and also by Linux KCC Approved by Stephen Smith Applied to mainline Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- Index: TestDet.cpp =================================================================== RCS file: /home/pooma/Repository/r2/src/Tiny/tests/TestDet.cpp,v retrieving revision 1.2 diff -c -p -r1.2 TestDet.cpp *** TestDet.cpp 2000/03/07 13:18:17 1.2 --- TestDet.cpp 2001/09/05 19:01:02 *************** void testDet(Pooma::Tester &tester) *** 76,94 **** // Create the (uniform, logically rectilinear) mesh. Vector origin(0.0), spacings(0.2); typedef UniformRectilinearMesh Mesh_t; ! Mesh_t mesh(vertexDomain, origin, spacings); - // Create geometry object: - typedef DiscreteGeometry Geometry_t; - Geometry_t geom(mesh); - // Create the Fields: // Full, Antisymmetric, Symmetric, Diagonal Tensor Fields: ! Field > tff(geom); ! Field > tfs(geom); ! Field > tfa(geom); ! Field > tfd(geom); // Assign values: Tensor tf(0.0); --- 76,94 ---- // Create the (uniform, logically rectilinear) mesh. Vector origin(0.0), spacings(0.2); typedef UniformRectilinearMesh Mesh_t; ! DomainLayout layout(vertexDomain, GuardLayers(0)); // Create the Fields: + Centering cell = canonicalCentering(CellType, Continuous); // Full, Antisymmetric, Symmetric, Diagonal Tensor Fields: ! Field > tff(cell, layout, origin, spacings); ! Field > ! tfa(cell, layout, origin, spacings); ! Field > ! tfs(cell, layout, origin, spacings); ! Field > ! tfd(cell, layout, origin, spacings); // Assign values: Tensor tf(0.0); Index: TestSymmetrize.cpp =================================================================== RCS file: /home/pooma/Repository/r2/src/Tiny/tests/TestSymmetrize.cpp,v retrieving revision 1.5 diff -c -p -r1.5 TestSymmetrize.cpp *** TestSymmetrize.cpp 2000/03/07 13:18:18 1.5 --- TestSymmetrize.cpp 2001/09/05 19:01:02 *************** void testSymmetrize(Pooma::Tester &teste *** 148,166 **** // Create the (uniform, logically rectilinear) mesh. Vector origin(0.0), spacings(0.2); typedef UniformRectilinearMesh Mesh_t; ! Mesh_t mesh(vertexDomain, origin, spacings); - // Create geometry object: - typedef DiscreteGeometry Geometry_t; - Geometry_t geom(mesh); - // Create the Fields: // Full, Antisymmetric, Symmetric, Diagonal Tensor Fields: ! Field > tff(geom); ! Field > tfs(geom); ! Field > tfa(geom); ! Field > tfd(geom); // Assign to the single-Tensor values: tff = tf; --- 148,165 ---- // Create the (uniform, logically rectilinear) mesh. Vector origin(0.0), spacings(0.2); typedef UniformRectilinearMesh Mesh_t; ! DomainLayout layout(vertexDomain, GuardLayers(0)); // Create the Fields: + Centering cell = canonicalCentering(CellType, Continuous); // Full, Antisymmetric, Symmetric, Diagonal Tensor Fields: ! Field > tff(cell, layout, origin, spacings); ! Field > ! tfs(cell, layout, origin, spacings); ! Field > ! tfa(cell, layout, origin, spacings); ! Field > tfd(cell, layout, origin, spacings); // Assign to the single-Tensor values: tff = tf; Index: TestTrace.cpp =================================================================== RCS file: /home/pooma/Repository/r2/src/Tiny/tests/TestTrace.cpp,v retrieving revision 1.2 diff -c -p -r1.2 TestTrace.cpp *** TestTrace.cpp 2000/03/07 13:18:18 1.2 --- TestTrace.cpp 2001/09/05 19:01:02 *************** void testTrace(Pooma::Tester &tester) *** 76,94 **** // Create the (uniform, logically rectilinear) mesh. Vector origin(0.0), spacings(0.2); typedef UniformRectilinearMesh Mesh_t; ! Mesh_t mesh(vertexDomain, origin, spacings); - // Create geometry object: - typedef DiscreteGeometry Geometry_t; - Geometry_t geom(mesh); - // Create the Fields: // Full, Antisymmetric, Symmetric, Diagonal Tensor Fields: ! Field > tff(geom); ! Field > tfa(geom); ! Field > tfs(geom); ! Field > tfd(geom); // Assign values: Tensor tf(0.0); --- 76,94 ---- // Create the (uniform, logically rectilinear) mesh. Vector origin(0.0), spacings(0.2); typedef UniformRectilinearMesh Mesh_t; ! DomainLayout layout(vertexDomain, GuardLayers(0)); // Create the Fields: + Centering cell = canonicalCentering(CellType, Continuous); // Full, Antisymmetric, Symmetric, Diagonal Tensor Fields: ! Field > tff(cell, layout, origin, spacings); ! Field > ! tfa(cell, layout, origin, spacings); ! Field > ! tfs(cell, layout, origin, spacings); ! Field > ! tfd(cell, layout, origin, spacings); // Assign values: Tensor tf(0.0); Index: TestTranspose.cpp =================================================================== RCS file: /home/pooma/Repository/r2/src/Tiny/tests/TestTranspose.cpp,v retrieving revision 1.2 diff -c -p -r1.2 TestTranspose.cpp *** TestTranspose.cpp 2000/03/07 13:18:19 1.2 --- TestTranspose.cpp 2001/09/05 19:01:02 *************** void testTranspose(Pooma::Tester &tester *** 76,94 **** // Create the (uniform, logically rectilinear) mesh. Vector origin(0.0), spacings(0.2); typedef UniformRectilinearMesh Mesh_t; ! Mesh_t mesh(vertexDomain, origin, spacings); - // Create geometry object: - typedef DiscreteGeometry Geometry_t; - Geometry_t geom(mesh); - // Create the Fields: // Full, Antisymmetric, Symmetric, Diagonal Tensor Fields: ! Field > tff(geom); ! Field > tfs(geom); ! Field > tfa(geom); ! Field > tfd(geom); // Assign values: Tensor tf(0.0), tfTranspose; --- 76,94 ---- // Create the (uniform, logically rectilinear) mesh. Vector origin(0.0), spacings(0.2); typedef UniformRectilinearMesh Mesh_t; ! DomainLayout layout(vertexDomain, GuardLayers(0)); // Create the Fields: + Centering cell = canonicalCentering(CellType, Continuous); // Full, Antisymmetric, Symmetric, Diagonal Tensor Fields: ! Field > tff(cell, layout, origin, spacings); ! Field > ! tfs(cell, layout, origin, spacings); ! Field > ! tfa(cell, layout, origin, spacings); ! Field > ! tfd(cell, layout, origin, spacings); // Assign values: Tensor tf(0.0), tfTranspose; From oldham at codesourcery.com Wed Sep 5 22:16:27 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Wed, 5 Sep 2001 15:16:27 -0700 Subject: Compile Layout/tests/ugl_test2.cpp Message-ID: <20010905151627.A32536@codesourcery.com> This patch ensures src/Layout/tests/ugl_test2.cpp compiles correctly. 2001-09-05 Jeffrey D. Oldham * makefile (ugl_test2): New phony target. Tested on sequential Linux using gcc 3.0.1 by compiling ugl_test2 Approved by Stephen Smith Applied to mainline Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- Index: makefile =================================================================== RCS file: /home/pooma/Repository/r2/src/Layout/tests/makefile,v retrieving revision 1.25 diff -c -p -r1.25 makefile *** makefile 2000/09/25 20:38:37 1.25 --- makefile 2001/09/05 17:53:16 *************** uniformgridlayout_test:: $(ODIR)/uniform *** 77,82 **** --- 77,89 ---- $(ODIR)/uniformgridlayout_test: $(ODIR)/uniformgridlayout_test.o $(LinkToSuite) + .PHONY: ugl_test2 + + ugl_test2:: $(ODIR)/ugl_test2 + + $(ODIR)/ugl_test2: $(ODIR)/ugl_test2.o + $(LinkToSuite) + .PHONY: dynamiclayout_test1 dynamiclayout_test1:: $(ODIR)/dynamiclayout_test1 From wdn at lanl.gov Thu Sep 6 18:15:54 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Thu, 6 Sep 2001 12:15:54 -0600 Subject: Explicit Instantiation Question (1/5) Message-ID: <200109061816.f86IG5m03239@saltydog.lanl.gov> SSdtIHdvbmRlcmluZyBpZiBhbnlvbmUgb24gcG9vbWEtZGV2IGNvdWxkIHRlbGwgbWUgaG93 IHRvIGdvIGFib3V0DQpleHBsaWNpdGx5IGluc3RhbnRpYXRpbmcgdGhlIFZpZXcxIGFuZCBB bHRWaWV3MSB0ZW1wbGF0ZXMgZnJvbSBQb29tYSAyLg0KTGF0ZWx5LCBjb21waWxlIHRpbWVz IGhhdmUgYmVlbiBtaXNlcmFibGUgb24gdGhlIGJsdWVtb3VudGFpbiBiMTggbWFjaGluZQ0K d2l0aCBpbiBzb21lIGNhc2VzIGl0IHRha2luZyBKb2huIGFuIGhvdXIgdG8gcmVjb21waWxl IHdoZW4ganVzdCB0b3VjaGluZyBhDQpzaW5nbGUgZmlsZS4gIFdlIGhhdmUgcmVjZW50bHkg bWFkZSBzb21lIHByb2dyZXNzIHRvIHNwZWVkIHVwIG91ciBjb21waWxlDQp0aW1lcyBieSBn ZXR0aW5nIHNoYXJlZCBsaWJyYXJpZXMgdG8gd29yayBvbiBiMTggYW5kIGJ5IGluc3RhbnRp YXRpbmcgdGhlDQpQb29tYSAyIGFzc2lnbiBmdW5jdGlvbnMgaW4gYSBzcGVjaWFsIFBvb21h Mkluc3RhbnRpYXRpb25zIGxpYnJhcnkgcGFja2FnZS4NCk5vdyB3ZSBjYW4gYnVpbGQgYSBk ZWJ1ZyB2ZXJzaW9uIG9mIHRoZSB3aG9sZSBjb2RlIGZyb20gc2NyYXRjaCBpbiA0OQ0KbWlu dXRlcy4gIEJ1dCBpbiBkb2luZyB0aGlzIHdvcmssIEkgZGVjaWRlZCB0byB0cnkgYW5kIHJl dmlzaXQgdGhlIGlkZWEgb2YNCnRyeWluZyB0byBleHBsaWNpdGx5IGluc3RhbnRpYXRlIHRo ZSBWaWV3MSBhbmQgQWx0VmlldzEgdGVtcGxhdGVzLg0KT3JpZ2luYWxseSwgdGhlcmUgd2Fz IGEgcG9pbnQtb2YtaW5zdGFudGlhdGlvbiBwcm9ibGVtIHdpdGggdGhlIFZpZXcxIGNsYXNz DQp3aGljaCBwcmV2ZW50ZWQgYmVpbmcgYWJsZSB0byBleHBsaWNpdGx5IGluc3RhbnRpYXRl IHRoZSBWaWV3MSBjbGFzcy4NCkplZmZyZXkgbG9va2VkIGF0IHRoYXQgcHJvYmxlbSBhbmQg ZGV0ZXJtaW5lZCB0aGF0IGF0IGxlYXN0IGZvciB0aGUgc2ltcGxlDQpjYXNlIHdoaWNoIEkg Z2F2ZSBoaW0sIGhlIGNvdWxkIGV4cGxpY2l0bHkgaW5zdGFudGlhdGUgdGhlIFZpZXcxIGNs YXNzIGlmIGhlDQpwcmVjZWRlZCBpdCB3aXRoIGFuIGV4cGxpY2l0IGluc3RhbnRpYXRpb24g b2YgdGhlIEZpZWxkIGNsYXNzIHdpdGggdGhlDQphcHByb3ByaWF0ZSB0ZW1wbGF0ZSBhcmd1 bWVudHMuICBUaGVuLCBoZSBkZWNpZGVkIHRvIHRyeSBhbmQgZml4IHRoZSBwcm9ibGVtDQpv ZiBleHBsaWNpdGx5IGluc3RhbnRpYXRpbmcgdGhlIFZpZXcxIGNsYXNzIGJ5IGNyZWF0aW5n IGFuIEFsdFZpZXcxIGNsYXNzLg0KSG93ZXZlciwgZm9yIHRoZSBwcm9ibGVtIHRoYXQgSSB3 YXMgdHJ5aW5nIHRvIHNvbHZlLCB0aGlzIHdhcyBub3QgYW4NCmltcHJvdmVtZW50IGJlY2F1 c2Ugbm93IHRoZSBjb21waWxlciBpbnN0YW50aWF0ZXMgMjAwMC0zMDAwIEFsdFZpZXcxDQp0 ZW1wbGF0ZXMgdGhhdCBnZXQgc2NhdHRlcmVkIG92ZXIgbW9zdCBvZiB0aGUgdHJhbmxhdGlv biB1bml0cyB3aGljaCB0aGVuIGdldA0KcmVjb21waWxlZCBieSB0aGUgcHJlbGlua2VyIGZv ciBFREcgYmFzZWQgY29tcGlsZXJzLg0KDQpCZWxvdyBpcyBhIGZpbGUgdGhhdCBjb250YWlu cyBhIG1hY3JvIHRoYXQgZXhwbGljaXRseSBpbnN0YW50aWF0ZXMgdGhlIEZpZWxkDQpjbGFz cyBiZWZvcmUgYXR0ZW1wdGluZyB0byBleHBsaWNpdGx5IGluc3RhbnRpYXRlIHRoZSBBbHRW aWV3MSB0ZW1wbGF0ZXMuDQpUaGUgZXhwbGljaXQgaW5zdGFudGlhdGlvbiBvZiB0aGUgRmll bGQgY2xhc3MgZmFpbHMgZm9yIHRoZSBzb3J0IG9mIHRlbXBsYXRlDQphcmd1bWVudHMgSSBh bSBzdXBwbHlpbmcuICBDb3VsZCBzb21lb25lIGNvbW1lbnQgb24gaG93IEkgbmVlZCB0byBj aGFuZ2UgbXkNCm1hY3JvIGluIG9yZGVyIHRvIGV4cGxpY2l0bHkgaW5zdGFudGlhdGUgdGhl IEFsdFZpZXcxIHRlbXBsYXRlcz8gIERvIEkgbmVlZA0KdG8gaW5zdGFudGlhdGUgdGhlIGVu dGlyZSBGaWVsZCBjbGFzcyBvciBqdXN0IG9uZSBvciB0d28gbWV0aG9kcyBpbiBvcmRlciB0 bw0KZ2V0IGFyb3VuZCB0aGUgcG9pbnQtb2YtaW5zdGFudGlhdGlvbiBwcm9ibGVtIGNhdXNl ZCBieSBjaXJjdWxhcg0KZGVwZW5kZW5jaWVzPyAgUGVyaGFwcyBKZWZmcmV5IGlzIHRoZSBi ZXN0IHBlcnNvbiB0byBhbnN3ZXIgdGhpcyBlbWFpbCBzaW5jZQ0KaGUgZGlkIHNvbWUgd29y ayBvbiB0aGlzIHByb2JsZW0gZWFybGllci4gIElmIEkgY2FuIHNvbHZlIHRoaXMgcHJvYmxl bSBpbg0Kc29tZSB3YXksIHRoZW4gSSBzaG91bGQgYmUgYWJsZSB0byBnZXQgYSBmYWN0b3Ig b2YgMiBzcGVlZHVwIGluIG91cg0KY29tcGlsZSB0aW1lcyB3aGljaCBzaG91bGQgaGVscCBh bG90IGluIHRoZSByZW1haW5pbmcgY3J1bmNoIHRpbWUuDQoNClRoYW5rcyBmb3IgYW55IGhl bHAsDQoNCkRhdmUgTnlzdHJvbQkJCWVtYWlsOiB3ZG5AbGFubC5nb3YNCkxBTkwgWC0zCQkJ cGhvbmU6IDUwNS02NjctNzkxMwlmYXg6IDUwNS02NjUtMzA0Ng0KDQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVZpZXcxLmNjLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQojaW5jbHVkZSAiUG9vbWEvTmV3RmllbGRzLmgiDQoNCiNkZWZpbmUgSU5TVEFO VElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDFfQ1BQLFQyX0NQUCxUM19DUFApIFwNCnRlbXBs YXRlIGNsYXNzICAgICAgICAgIEZpZWxkPFQxX0NQUCxUMl9DUFAsVDNfQ1BQPjsgXA0KdGVt cGxhdGUgICAgICAgQWx0VmlldzE8RmllbGQ8VDFfQ1BQLFQyX0NQUCxUM19DUFA+LEludGVy dmFsPDE+ID46OnN2OyBcDQp0ZW1wbGF0ZSAgICAgICBBbHRWaWV3MTxGaWVsZDxUMV9DUFAs VDJfQ1BQLFQzX0NQUD4sSW50ZXJ2YWw8Mj4gPjo6c3Y7IFwNCnRlbXBsYXRlICAgICAgIEFs dFZpZXcxPEZpZWxkPFQxX0NQUCxUMl9DUFAsVDNfQ1BQPixJbnRlcnZhbDwzPiA+OjpzdjsN Cg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxs Pg0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5v ZGU8T3BTdWJ0cmFjdCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwg QmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8Rmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1Zp ZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4s IENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNj YWxhcjxpbnQ+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1 bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJp Y2tWaWV3PiA+ID4sIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21w cmVzc2libGVCcmlja1ZpZXc+ID4gPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3Rvcjwo aW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklO U1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5k ZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBWZWN0b3I8KGlu dCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9k ZTxPcFN1YnRyYWN0LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBC aW5hcnlOb2RlPE9wU3VidHJhY3QsIEJpbmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmll dz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwg Q29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2Nh bGFyPGludD4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4gPiwgQmluYXJ5Tm9kZTxPcE11bHRp cGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlj a1ZpZXc+ID4gPiwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBW ZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4s IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXBy ZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJ RU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2Rl ZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPg0KI2Rl ZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9k ZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9y PChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIEJp bmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwg ZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8Rmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1Zp ZXc+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0K I3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmlu ZSBUMiBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJp Y2tWaWV3PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMp DQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVm aW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlO b2RlPE9wU3VidHJhY3QsIEJpbmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZl Y3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJl c3NpYmxlQnJpY2tWaWV3PiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGlu dD4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENv bXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRf RlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0K I2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPg0K I2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgQmluYXJ5 Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBG dWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0 b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8aW50PiwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRl ZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIg VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPg0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFn PEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGludD4sIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4g PiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVm IFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBk b3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBCaW5h cnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgU2NhbGFyPGRvdWJs ZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2Fs YXI8ZG91YmxlPiwgRmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwg U2NhbGFyPGNvbmVqbzo6RGlmZnVzaW9uPHBvb21hbG90ZTo6VHdvREY8cG9vbWFsb3RlOjpU aHJlZURGPHBvb21hbG90ZTo6SW5pdGlhbFRyYWl0cz4gPiA+OjpfX0UyPiA+ID4sIEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmlja1ZpZXc+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVO RFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZp bmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJp bmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcFN1 YnRyYWN0LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlO b2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxjb25lam86OkRpZmZ1c2lvbjxwb29tYWxvdGU6OlR3 b0RGPHBvb21hbG90ZTo6VGhyZWVERjxwb29tYWxvdGU6OkluaXRpYWxUcmFpdHM+ID4gPjo6 X19FMj4gPiA+LCBGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9B TkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMN Cg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlO b2RlPE9wU3VidHJhY3QsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHks IEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGNvbmVqbzo6RGlm ZnVzaW9uPHBvb21hbG90ZTo6VHdvREY8cG9vbWFsb3RlOjpUaHJlZURGPHBvb21hbG90ZTo6 SW5pdGlhbFRyYWl0cz4gPiA+OjpfX0UyPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRT KFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5l IFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5h cnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgU2NhbGFyPGRvdWJs ZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2Fs YXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiA+LCBTY2FsYXI8Y29uZWpvOjpEaWZmdXNpb248cG9vbWFsb3RlOjpUd29ERjxwb29t YWxvdGU6OlRocmVlREY8cG9vbWFsb3RlOjpJbml0aWFsVHJhaXRzPiA+ID46Ol9fRTI+ID4g PiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4N CklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQoj dW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUN CiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFNjYWxh cjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0aXBs eSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4gPiwgU2NhbGFyPGNvbmVqbzo6RGlmZnVzaW9uPHBvb21hbG90ZTo6VHdv REY8cG9vbWFsb3RlOjpUaHJlZURGPHBvb21hbG90ZTo6SW5pdGlhbFRyYWl0cz4gPiA+Ojpf X0UyPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8Y29uZWpv OjpEaWZmdXNpb248cG9vbWFsb3RlOjpUd29ERjxwb29tYWxvdGU6OlRocmVlREY8cG9vbWFs b3RlOjpJbml0aWFsVHJhaXRzPiA+ID46Ol9fRTI+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFf QU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQz DQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNz aW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFU RV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQoj dW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQz IEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5 LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBy ZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmlja1ZpZXc+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRT KFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5l IFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5h cnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQy LFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0K I2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPEZuUG93LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91Ymxl PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5k ZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQy IGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8Rm5Qb3csIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxk b3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGJvb2wNCiNkZWZpbmUgVDMgQ29tcHJlc3NpYmxlQnJpY2sNCklOU1RBTlRJQVRFX1ZJ RVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRl ZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBpbnQNCiNkZWZpbmUgVDMgQ29tcHJl c3NpYmxlQnJpY2sNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0K I3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmlu ZSBUMiBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8 KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIEJpbmFy eU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BTdWJ0cmFj dCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29t cHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCky LCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+ID4gPg0KSU5T VEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRl ZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQp MiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2Rl ZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIEJpbmFyeU5vZGU8 T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPiA+ID4N CklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQoj dW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBWZWN0b3I8 KGludCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5 Tm9kZTxPcFN1YnRyYWN0LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+ LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBk b3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmll dz4gPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFy eU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91 YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ ID4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lv blRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2Rl PE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwg RnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVj dG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4g PiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBU MQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgVmVj dG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPg0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJp bmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BBZGQs IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXBy ZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwg ZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPiA+DQpJTlNUQU5U SUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQy DQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5l IFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBCaW5hcnlOb2RlPE9w TXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+LCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZl cmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4gPiA+ DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0K I3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91Ymxl DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2Fs YXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBk b3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9G UklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQoj ZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRh ZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9w QWRkLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4g PiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4g PiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVm IFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBk b3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBSZWZl cmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+DQpJTlNU QU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVm IFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQp MiwgZG91YmxlLCBGdWxsPg0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8 T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBG dWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5E UyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmlu ZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPg0KI2RlZmlu ZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRv dWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiwgTG9jPChpbnQpMT4gPiA+ID4sIEJp bmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJs ZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHks IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxh cjxWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+ID4gPiA+ID4gPg0KSU5TVEFOVElBVEVf VklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3Vu ZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJs ZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVz c2libGVCcmljaz4gPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8VmVjdG9yPChpbnQpMiwg ZG91YmxlLCBGdWxsPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhU MSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBU MSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPg0KI2RlZmluZSBU MyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPFZlY3RvcjwoaW50KTIs IGRvdWJsZSwgRnVsbD4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQx IFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g Pg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlO b2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcEZ3ZDxFbmdp bmU8KGludCkyLCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVC cmljaz4sIExvYzwoaW50KTE+ID4gPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVX MV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYg VDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJl c3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQy LFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0K I2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgQ29tcEZ3ZDxFbmdpbmU8KGludCkyLCBW ZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+LCBM b2M8KGludCkxPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykN CiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZp bmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11 bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQp MiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+LCBM b2M8KGludCkxPiA+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2li bGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQz KQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2Rl ZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgQ29tcEZ3ZDxFbmdpbmU8KGludCkyLCBWZWN0 b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4sIExvYzwoaW50 KTE+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVm IFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBW ZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8 VHJpbmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5h cnlOb2RlPE9wRGl2aWRlLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3Vi bGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8VmVjdG9yPChpbnQpMiwgZG91 YmxlLCBGdWxsPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQoj ZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhw cmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0 b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJ QVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDIN CiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBib29sDQojZGVmaW5lIFQz IEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJ QVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDIN CiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUg VDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+ LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJs ZT4sIEJpbmFyeU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIs IGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiA+ ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3Vu ZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBU MiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wU3VidHJh Y3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIEJp bmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8Rm5Eb3Qs IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXBy ZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3Vi bGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9W SUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5k ZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4 cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgQmlu YXJ5Tm9kZTxGbkRvdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91Ymxl LCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3Rv cjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiA+DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxGbkRvdCwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENv bXByZXNzaWJsZUJyaWNrPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMo VDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUg VDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJs ZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlw bHksIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxG aWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3 PiA+ID4sIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0 cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxO b0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXBy ZXNzaWJsZUJyaWNrVmlldz4gPiwgQmluYXJ5Tm9kZTxGbkRvdCwgUmVmZXJlbmNlPEZpZWxk PE5vR2VvbWV0cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29t cHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50 KTI+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1Zp ZXc+ID4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixU MykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dl b21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxs Pg0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVm ZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91Ymxl LCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlw bHksIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIs IGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgQmluYXJ5Tm9kZTxG bkRvdCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgVmVjdG9yPChpbnQp MiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8 RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+ LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFf QU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQz DQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIFZlY3Rvcjwo aW50KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlO b2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZl Y3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwg QmluYXJ5Tm9kZTxGbkRvdCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwg VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGludCkyLCBk b3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+ID4NCklOU1RBTlRJ QVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDIN CiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBU MiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJl LCBCaW5hcnlOb2RlPE9wTFQsIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBT Y2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9B TkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMN Cg0KI2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9k ZTxPcEFuZCwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwo aW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgU2NhbGFyPGRvdWJs ZT4gPiwgQmluYXJ5Tm9kZTxPcExULCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50 KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgU2NhbGFyPGRvdWJsZT4g PiA+LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2Rl PE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxOb0dl b21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBTY2Fs YXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dl b21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPg0K SU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1 bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQoj ZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8 T3BTdWJ0cmFjdCwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFy eU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFNjYWxhcjxkb3VibGU+ID4sIFNj YWxhcjxkb3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBO b0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJl c3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBS ZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrVmlldz4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNk ZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxP cFN1YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5U SUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQy DQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUg VDIgYm9vbA0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BBbmQsIEJp bmFyeU5vZGU8T3BHVCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFy eU5vZGU8T3BMVCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+DQpJTlNU QU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVm IFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNkZWZp bmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5X aGVyZSwgQmluYXJ5Tm9kZTxPcExFLCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50 KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgU2NhbGFyPGRvdWJsZT4g PiwgU2NhbGFyPGRvdWJsZT4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklF VzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVm IFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGJvb2wN CiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTEUsIFJlZmVyZW5jZTxG aWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3 PiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRT KFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5l IFQxIE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMg RXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wTFQsIFJl ZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBVbmFyeU5vZGU8Rm5TcXJ0LCBSZWZl cmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJy aWNrVmlldz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FO RF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0K DQojZGVmaW5lIFQxIE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBib29sDQojZGVm aW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcExULCBSZWZlcmVuY2U8RmllbGQ8 Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwg U2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBO b0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJl c3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcEdULCBVbmFyeU5v ZGU8Rm5GYWJzLCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlO b2RlPE9wU3VidHJhY3QsIEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQp Mj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIEJpbmFyeU5vZGU8T3BN dWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChp bnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPiwgU2NhbGFyPGRv dWJsZT4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJ RU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2Rl ZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5l IFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBCaW5hcnlOb2RlPE9w RGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21l dHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVu Y2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNr Vmlldz4gPiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxOb0dl b21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZl cmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJy aWNrVmlldz4gPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFf QU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQz DQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0K I2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5v ZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21l dHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIEJpbmFy eU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dl b21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPiA+ DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0K I3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4N CiNkZWZpbmUgVDIgYm9vbA0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8 T3BHVCwgVW5hcnlOb2RlPEZuRmFicywgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGlu dCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiwgU2NhbGFyPGRvdWJs ZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRl ZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dlb21ldHJ5PChp bnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJp bmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8Tm9H ZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgU2Nh bGFyPGRvdWJsZT4gPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgU2NhbGFyPGRvdWJsZT4sIFJl ZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFf QU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQz DQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0K I2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIFNjYWxhcjxk b3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklF TkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVm aW5lIFQxIE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUg VDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wRVEs IFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2tWaWV3PiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91YmxlPiwgU2Nh bGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixU MykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dl b21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgYm9vbA0KI2RlZmluZSBUMyBFeHByZXNzaW9u VGFnPEJpbmFyeU5vZGU8T3BFUSwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCky PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFNjYWxhcjxkb3VibGU+ID4g Pg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDEN CiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+ DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlO b2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BMRSwgVW5hcnlOb2RlPEZuRmFicywgUmVmZXJl bmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj a1ZpZXc+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5j ZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tW aWV3PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRy eTwoaW50KTI+DQojZGVmaW5lIFQyIGJvb2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxC aW5hcnlOb2RlPE9wTEUsIFVuYXJ5Tm9kZTxGbkZhYnMsIFJlZmVyZW5jZTxGaWVsZDxOb0dl b21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIFNj YWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9H ZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNz aW9uVGFnPFVuYXJ5Tm9kZTxGbkZhYnMsIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChp bnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPg0KSU5TVEFOVElB VEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0K I3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQy IGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUs IEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBCaW5hcnlO b2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRv dWJsZSwgQ29tcEZ3ZDxFbmdpbmU8KGludCkyLCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1 bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+LCBMb2M8KGludCkxPiA+ID4gPiwgUmVmZXJl bmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwo aW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNr Vmlldz4sIExvYzwoaW50KTE+ID4gPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVm ZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndkPEVuZ2lu ZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJy aWNrVmlldz4sIExvYzwoaW50KTE+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRy eTwoaW50KTI+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQp MiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgTG9jPChpbnQpMT4g PiA+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlO b2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9t ZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBTY2Fs YXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9H ZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNz aW9uVGFnPEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJl bmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj a1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFO VElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBU Mg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJl ZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcEZ3ZDxFbmdp bmU8KGludCkyLCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVC cmlja1ZpZXc+LCBMb2M8KGludCkxPiA+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0 cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwoaW50KTIsIFZlY3RvcjwoaW50 KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4sIExvYzwoaW50KTE+ ID4gPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5vR2Vv bWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwoaW50KTIsIFZlY3Rvcjwo aW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4sIExvYzwoaW50 KTE+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUs IENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwg Q29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgTG9jPChpbnQpMT4gPiA+ID4gPiA+LCBSZWZlcmVu Y2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNr Vmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0K I3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIE5vR2VvbWV0 cnk8KGludCkyPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRh ZzxCaW5hcnlOb2RlPE9wU3VidHJhY3QsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJl bmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwo aW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNr Vmlldz4sIExvYzwoaW50KTE+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwo aW50KTI+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwg ZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgTG9jPChpbnQpMT4gPiA+ ID4gPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRy eTwoaW50KTI+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQp MiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgTG9jPChpbnQpMT4g PiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29t cEZ3ZDxFbmdpbmU8KGludCkyLCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21w cmVzc2libGVCcmlja1ZpZXc+LCBMb2M8KGludCkxPiA+ID4gPiA+ID4gPg0KSU5TVEFOVElB VEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0K I3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQy IGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBs eSwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndk PEVuZ2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNz aWJsZUJyaWNrVmlldz4sIExvYzwoaW50KTE+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9H ZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9y PChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgTG9jPChp bnQpMT4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixU MykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dl b21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRy eTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgQmluYXJ5Tm9k ZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBS ZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91 YmxlLCBDb21wRndkPEVuZ2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4sIExvYzwoaW50KTE+ID4gPiA+ID4sIEJpbmFy eU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4sIEJpbmFy eU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxk PE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4s IFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcEZ3ZDxF bmdpbmU8KGludCkyLCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2li bGVCcmlja1ZpZXc+LCBMb2M8KGludCkxPiA+ID4gPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBS ZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrVmlldz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9W SUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5k ZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91 YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5 Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8 Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwg UmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndkPEVu Z2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJs ZUJyaWNrVmlldz4sIExvYzwoaW50KTE+ID4gPiA+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIFJl ZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4sIEJpbmFyeU5vZGU8T3BEaXZpZGUs IEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGlu dCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVs ZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcEZ3ZDxFbmdpbmU8KGludCkyLCBW ZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+LCBM b2M8KGludCkxPiA+ID4gPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8 Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwg U2NhbGFyPGRvdWJsZT4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMo VDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUg VDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBF eHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5v R2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIEJp bmFyeU5vZGU8T3BTdWJ0cmFjdCwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxP cE11bHRpcGx5LCBVbmFyeU5vZGU8T3BVbmFyeU1pbnVzLCBSZWZlcmVuY2U8RmllbGQ8Tm9H ZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBS ZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXBGd2Q8RW5n aW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiwgTG9jPChpbnQpMT4gPiA+ID4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVm ZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmlja1ZpZXc+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50 KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxk PE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwoaW50KTIsIFZl Y3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4sIExv YzwoaW50KTE+ID4gPiA+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVsZDxO b0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBT Y2FsYXI8ZG91YmxlPiA+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRT KFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5l IFQxIE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMg RXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wU3VidHJhY3QsIEJpbmFyeU5vZGU8T3BEaXZp ZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgVW5hcnlOb2RlPE9wVW5hcnlNaW51cywgUmVm ZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmlja1ZpZXc+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91 YmxlLCBDb21wRndkPEVuZ2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4sIExvYzwoaW50KTE+ID4gPiA+ID4sIEJpbmFy eU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4sIEJpbmFy eU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxk PE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4s IFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcEZ3ZDxF bmdpbmU8KGludCkyLCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2li bGVCcmlja1ZpZXc+LCBMb2M8KGludCkxPiA+ID4gPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBS ZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrVmlldz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklF VzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVm IFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRvdWJs ZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFy eU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dl b21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcEZ3ZDxFbmdpbmU8KGludCkyLCBWZWN0b3I8 KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+LCBMb2M8KGlu dCkxPiA+ID4gPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9t ZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgU2NhbGFy PGRvdWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQz KQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIE5vR2Vv bWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lv blRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5 PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8 RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQp MiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3 PiwgTG9jPChpbnQpMT4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5E UyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmlu ZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQz IEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRp cGx5LCBVbmFyeU5vZGU8T3BVbmFyeU1pbnVzLCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRy eTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBSZWZlcmVu Y2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChp bnQpMiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tW aWV3PiwgTG9jPChpbnQpMT4gPiA+ID4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNl PEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1Zp ZXc+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJ RU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2Rl ZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5l IFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPE5v R2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFNj YWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9H ZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNz aW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgVW5hcnlOb2RlPE9wVW5hcnlNaW51cywg UmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2li bGVCcmlja1ZpZXc+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwg ZG91YmxlLCBDb21wRndkPEVuZ2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwg RnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4sIExvYzwoaW50KTE+ID4gPiA+ID4gPg0K SU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1 bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQoj ZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2Rl PEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BHVCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8 KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFNjYWxhcjxkb3Vi bGU+ID4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIFNjYWxhcjxkb3VibGU+LCBVbmFyeU5vZGU8 Rm5TcXJ0LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFO VElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBU Mg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZp ZGUsIFNjYWxhcjxkb3VibGU+LCBVbmFyeU5vZGU8Rm5TcXJ0LCBSZWZlcmVuY2U8RmllbGQ8 Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYg VDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50 KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPFVuYXJ5 Tm9kZTxGblNxcnQsIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5E X0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoN CiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2Rl ZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8Rm5Eb3QsIEJpbmFyeU5vZGU8T3BB ZGQsIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIs IGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZp ZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwg Q29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5j ZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0 cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBO b0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBG dWxsPg0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJp bmFyeU5vZGU8T3BHVCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFy eU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4s IFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIsIGRv dWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBCaW5hcnlOb2RlPE9w QWRkLCBVbmFyeU5vZGU8Rm5TcXJ0LCBCaW5hcnlOb2RlPEZuRG90LCBSZWZlcmVuY2U8Rmll bGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBD b21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChp bnQpMj4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNr Vmlldz4gPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2Vv bWV0cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3Np YmxlQnJpY2tWaWV3PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEs VDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEg Tm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwg RnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBC aW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8 Tm9HZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21w cmVzc2libGVCcmlja1ZpZXc+ID4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgVW5hcnlOb2RlPEZu U3FydCwgQmluYXJ5Tm9kZTxGbkRvdCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGlu dCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tW aWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGlu dCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+LCBTY2Fs YXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9H ZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNz aW9uVGFnPEJpbmFyeU5vZGU8T3BBZGQsIFVuYXJ5Tm9kZTxGblNxcnQsIEJpbmFyeU5vZGU8 Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50 KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNl PEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxs PiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgYm9vbCwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPg0KSU5T VEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRl ZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQp MiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50 KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9k ZTxGbldoZXJlLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBib29sLCBDb21wcmVzc2libGVCcmljaz4g PiwgU2NhbGFyPFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4gPiwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRl ZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIg Ym9vbA0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJp bmFyeU5vZGU8T3BHVCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgYm9vbCwgQ29t cHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxib29sPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBib29sDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcEFuZCwgQmluYXJ5Tm9k ZTxPcExULCBCaW5hcnlOb2RlPEZuRG90LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGlu dCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgQmluYXJ5Tm9kZTxPcEdFLCBCaW5hcnlOb2RlPEZu RG90LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBD b21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwg ZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4g PiA+LCBTY2FsYXI8Ym9vbD4sIFNjYWxhcjxib29sPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBib29sDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcEFuZCwgQmluYXJ5Tm9kZTxPcExULCBCaW5hcnlOb2RlPEZu RG90LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBD b21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh From wdn at lanl.gov Thu Sep 6 18:15:54 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Thu, 6 Sep 2001 12:15:54 -0600 Subject: Explicit Instantiation Question (2/5) Message-ID: <200109061816.f86IG5o03240@saltydog.lanl.gov> cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwg ZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4g PiwgQmluYXJ5Tm9kZTxPcEdFLCBCaW5hcnlOb2RlPEZuRG90LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJl c3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJ RVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRl ZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBib29sDQojZGVmaW5lIFQzIEV4cHJl c3Npb25UYWc8QmluYXJ5Tm9kZTxPcEdFLCBCaW5hcnlOb2RlPEZuRG90LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlj az4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwg Q29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFU RV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQoj dW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgYm9vbA0KI2RlZmluZSBUMyBF eHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BMVCwgQmluYXJ5Tm9kZTxGbkRvdCwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxl QnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4sIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFO VElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBU Mg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNl PEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1Zp ZXc+ID4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNl PEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwoaW50 KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmll dz4sIExvYzwoaW50KTE+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50 KTI+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwgZG91 YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgTG9jPChpbnQpMT4gPiA+ID4g PiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndk PEVuZ2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNz aWJsZUJyaWNrVmlldz4sIExvYzwoaW50KTE+ID4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9W SUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5k ZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91 YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5 Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91Ymxl LCBDb21wRndkPEVuZ2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4s IENvbXByZXNzaWJsZUJyaWNrVmlldz4sIExvYzwoaW50KTE+ID4gPiA+LCBSZWZlcmVuY2U8 RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQp MiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3 PiwgTG9jPChpbnQpMT4gPiA+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGlu dCkyPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRv dWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4sIExvYzwoaW50KTE+ID4gPiA+ ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYg VDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50 KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFy eU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9w TXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwo aW50KTI+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwg ZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgTG9jPChpbnQpMT4gPiA+ ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZp ZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwoaW50KTIs IFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4s IExvYzwoaW50KTE+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+ LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwgZG91Ymxl LCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgTG9jPChpbnQpMT4gPiA+ID4gPiA+ ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQx DQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIE5vR2VvbWV0cnk8KGludCky Pg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlO b2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUs IENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwg Q29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgTG9jPChpbnQpMT4gPiA+ID4sIFJlZmVyZW5jZTxG aWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcEZ3ZDxFbmdpbmU8KGludCky LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ LCBMb2M8KGludCkxPiA+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRT KFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5l IFQxIE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMg RXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQp Mj4sIGRvdWJsZSwgQ29tcEZ3ZDxFbmdpbmU8KGludCkyLCBWZWN0b3I8KGludCkyLCBkb3Vi bGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+LCBMb2M8KGludCkxPiA+ID4gPiA+ LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQx IFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g Pg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlO b2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wU3VidHJhY3Qs IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4NCklOU1RB TlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYg VDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZp bmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wU3VidHJhY3QsIEJpbmFyeU5vZGU8 T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlw bHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrVmlldz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQoj ZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8 T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlw bHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrVmlldz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQoj ZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8 T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4NCklOU1RB TlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYg VDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZp bmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8Rmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRF X1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1 bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMg RXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBk b3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBG dWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgTG9jPChpbnQpMT4gPiA+ID4gPiA+DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+DQpJTlNUQU5U SUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQy DQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5l IFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9w TXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklF TkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVm aW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxC aW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJ RVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRl ZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBWZWN0b3I8KGludCkyLCBkb3VibGUs IEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3 PiA+ID4sIFVuYXJ5Tm9kZTxGblNxcnQsIEJpbmFyeU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNr Vmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxs PiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxVbmFyeU5vZGU8Rm5TcXJ0LCBCaW5hcnlOb2RlPEZuRG90LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlj a1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFf QU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQz DQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNz aW9uVGFnPEJpbmFyeU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50 KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJp Y2tWaWV3PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMp DQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVm aW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVC cmlja1ZpZXc+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixU MykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNk ZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxP cE11bHRpcGx5LCBGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgQmlu YXJ5Tm9kZTxGbkRvdCwgRmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBD b21wcmVzc2libGVCcmlja1ZpZXc+LCBGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwg RnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIEJpbmFyeU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNr PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBD b21wcmVzc2libGVCcmljaz4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVO RFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZp bmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZp bmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9w R1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNj YWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxh cjxWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVX MV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYg VDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBG dWxsPg0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNz aWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQp MiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJy aWNrPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGJvb2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJl LCBCaW5hcnlOb2RlPE9wQW5kLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBib29sLCBDb21wcmVzc2li bGVCcmlja1ZpZXc+ID4sIEJpbmFyeU5vZGU8T3BPciwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgYm9v bCwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBib29sLCBD b21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+LCBTY2FsYXI8Ym9vbD4sIFNjYWxhcjxib29s PiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVm IFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBi b29sDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFuZCwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgYm9vbCwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBCaW5hcnlOb2Rl PE9wT3IsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGJvb2wsIENvbXByZXNzaWJsZUJyaWNrVmlldz4g PiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgYm9vbCwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4g PiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBU MQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgYm9v bA0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BPciwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgYm9vbCwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8Rmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBib29sLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+DQpJTlNUQU5USUFURV9W SUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5k ZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgYm9vbA0KI2RlZmluZSBUMyBFeHBy ZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BBbmQsIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIGJvb2wsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBCaW5hcnlOb2RlPE9w R1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNj YWxhcjxkb3VibGU+ID4gPiwgU2NhbGFyPGJvb2w+LCBTY2FsYXI8Ym9vbD4gPiA+DQpJTlNU QU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVm IFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgYm9vbA0KI2RlZmlu ZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BBbmQsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGJvb2wsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBCaW5hcnlOb2RlPE9wR1QsIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRl ZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIg ZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxGbkRvdCwgRmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1Zp ZXc+LCBGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJs ZUJyaWNrVmlldz4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixU MykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNk ZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxP cE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNr PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBGd2Q8RW5naW5lPChpbnQpMiwg VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+LCBMb2M8 KGludCkxPiA+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQy LFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0K I2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2Rl PE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91Ymxl PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5k ZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQy IGJvb2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTkUsIEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+LCBTY2FsYXI8ZG91YmxlPiA+ID4N CklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQoj dW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBib29sDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE5FLCBSZWZlcmVuY2U8Rmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4N CklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQoj dW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUN CiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPEZuTWF4LCBCaW5hcnlOb2Rl PEZuTWluLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ LCBTY2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJ RVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRl ZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhw cmVzc2lvblRhZzxCaW5hcnlOb2RlPEZuTWluLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRF X1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1 bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMg RXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBC aW5hcnlOb2RlPEZuTWluLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcEFk ZCwgRmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4sIFNjYWxhcjxkb3Vi bGU+ID4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgVW5hcnlOb2RlPEZuRmFicywgQmluYXJ5Tm9k ZTxPcFN1YnRyYWN0LCBGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3Piwg RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBTY2FsYXI8ZG91 YmxlPiA+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQz KQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2Rl ZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9w TXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPEZuTWluLCBTY2FsYXI8ZG91 YmxlPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2Fs YXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcEFkZCwgRmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBVbmFy eU5vZGU8Rm5GYWJzLCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4sIEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9G UklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQoj ZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRh ZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPEZu TWluLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxP cE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4g PiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBVbmFyeU5vZGU8Rm5GYWJzLCBCaW5hcnlOb2RlPE9w U3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ LCBTY2FsYXI8ZG91YmxlPiA+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklF TkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVm aW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxC aW5hcnlOb2RlPEZuTWluLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcEFk ZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2Nh bGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBVbmFyeU5vZGU8Rm5GYWJzLCBC aW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2s+ID4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVX MV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYg VDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJl c3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBT Y2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlO b2RlPE9wQWRkLCBVbmFyeU5vZGU8Rm5GYWJzLCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+LCBTY2FsYXI8ZG91 YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BBZGQs IFVuYXJ5Tm9kZTxGbkZhYnMsIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0K SU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1 bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0K I2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5v ZGU8T3BBbmQsIEJpbmFyeU5vZGU8T3BBbmQsIEJpbmFyeU5vZGU8T3BBbmQsIEJpbmFyeU5v ZGU8T3BBbmQsIEJpbmFyeU5vZGU8T3BHVCwgVW5hcnlOb2RlPEZuRmFicywgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91Ymxl PiA+LCBCaW5hcnlOb2RlPE9wR1QsIFVuYXJ5Tm9kZTxGbkZhYnMsIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ LCBCaW5hcnlOb2RlPE9wR1QsIFVuYXJ5Tm9kZTxGbkZhYnMsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBC aW5hcnlOb2RlPE9wR1QsIEJpbmFyeU5vZGU8T3BEaXZpZGUsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlO b2RlPE9wTFQsIEJpbmFyeU5vZGU8T3BEaXZpZGUsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2RlPE9w RGl2aWRlLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNj YWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQoj ZGVmaW5lIFQyIGJvb2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9w QW5kLCBCaW5hcnlOb2RlPE9wQW5kLCBCaW5hcnlOb2RlPE9wQW5kLCBCaW5hcnlOb2RlPE9w QW5kLCBCaW5hcnlOb2RlPE9wR1QsIFVuYXJ5Tm9kZTxGbkZhYnMsIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiwg QmluYXJ5Tm9kZTxPcEdULCBVbmFyeU5vZGU8Rm5GYWJzLCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBk b3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiwgQmlu YXJ5Tm9kZTxPcEdULCBVbmFyeU5vZGU8Rm5GYWJzLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiwgQmluYXJ5 Tm9kZTxPcEdULCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiwgQmluYXJ5Tm9kZTxP cExULCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVX MV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYg VDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgYm9vbA0KI2RlZmluZSBUMyBFeHByZXNz aW9uVGFnPEJpbmFyeU5vZGU8T3BMVCwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4N CklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQoj dW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBib29sDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFuZCwgQmluYXJ5Tm9kZTxP cEFuZCwgQmluYXJ5Tm9kZTxPcEFuZCwgQmluYXJ5Tm9kZTxPcEdULCBVbmFyeU5vZGU8Rm5G YWJzLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4s IFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BHVCwgVW5hcnlOb2RlPEZuRmFicywg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2Fs YXI8ZG91YmxlPiA+ID4sIEJpbmFyeU5vZGU8T3BHVCwgVW5hcnlOb2RlPEZuRmFicywgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8 ZG91YmxlPiA+ID4sIEJpbmFyeU5vZGU8T3BHVCwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91Ymxl PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5k ZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQy IGJvb2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wR1QsIEJpbmFy eU5vZGU8T3BEaXZpZGUsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5E UyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmlu ZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4NCiNkZWZpbmUgVDIgYm9vbA0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFy eU5vZGU8T3BBbmQsIEJpbmFyeU5vZGU8T3BBbmQsIEJpbmFyeU5vZGU8T3BHVCwgVW5hcnlO b2RlPEZuRmFicywgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2RlPE9wR1QsIFVuYXJ5Tm9kZTxG bkZhYnMsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4g PiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2RlPE9wR1QsIFVuYXJ5Tm9kZTxGbkZh YnMsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwg U2NhbGFyPGRvdWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQx IFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g Pg0KI2RlZmluZSBUMiBib29sDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9k ZTxPcEFuZCwgQmluYXJ5Tm9kZTxPcEdULCBVbmFyeU5vZGU8Rm5GYWJzLCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ ID4sIEJpbmFyeU5vZGU8T3BHVCwgVW5hcnlOb2RlPEZuRmFicywgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4g Pg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDEN CiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJs ZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFy eU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGludD4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9k ZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBT Y2FsYXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEs VDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEg VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5v ZGU8T3BNdWx0aXBseSwgU2NhbGFyPGludD4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5E UyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmlu ZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8Qmlu YXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcEFkZCwg QmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBy ZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8Rmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBk b3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxP cEFkZCwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBy ZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0K I3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmlu ZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRk LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0K I3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmlu ZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2 aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4NCklO U1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5k ZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNk ZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2Rl PE9wR1QsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2RlPE9wRGl2 aWRlLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxh cjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMp DQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVm aW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZu V2hlcmUsIEJpbmFyeU5vZGU8T3BHVCwgVW5hcnlOb2RlPEZuRmFicywgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ LCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9kZTxPcFN1YnRy YWN0LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklF VzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVm IFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHBy ZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2Rl PE9wU3VidHJhY3QsIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJ RU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2Rl ZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8 QmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIEJp bmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5E X0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoN CiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9u VGFnPEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4N CklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQoj dW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUN CiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlO b2RlPE9wR1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BN dWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBC aW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3Vi bGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4s IEJpbmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4N CklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQoj dW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUN CiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4g PiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8 ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBy ZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4gPiA+DQpJTlNUQU5USUFURV9W SUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5k ZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4 cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5 LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2li bGVCcmljaz4gPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFO VElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBU Mg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmlu ZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BN dWx0aXBseSwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8 ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMp DQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVm aW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BN dWx0aXBseSwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBib29sDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcE9yLCBCaW5hcnlOb2RlPE9wR1QsIFVuYXJ5Tm9kZTxGbkZh YnMsIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BHVCwg QmluYXJ5Tm9kZTxPcERpdmlkZSwgVW5hcnlOb2RlPEZuRmFicywgQmluYXJ5Tm9kZTxPcFN1 YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiwg QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4sIFNjYWxhcjxk b3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykN CiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZp bmUgVDIgYm9vbA0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BHVCwg QmluYXJ5Tm9kZTxPcERpdmlkZSwgVW5hcnlOb2RlPEZuRmFicywgQmluYXJ5Tm9kZTxPcFN1 YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiwg QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4sIFNjYWxhcjxk b3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZp ZGUsIFVuYXJ5Tm9kZTxGbkZhYnMsIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4sIEJpbmFyeU5vZGU8T3BBZGQs IEJpbmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9G UklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQoj ZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRh ZzxCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFO VElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBU Mg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGJvb2wNCiNkZWZpbmUg VDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wR1QsIFVuYXJ5Tm9kZTxGbkZhYnMsIEJp bmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5E X0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoN CiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9u VGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BHVCwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiwg QmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5 Tm9kZTxGblBvdywgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2Rl PE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ LCBTY2FsYXI8ZG91YmxlPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVf VklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3Vu ZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBF eHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBs eSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxh cjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNr PiA+ID4sIEJpbmFyeU5vZGU8Rm5Qb3csIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiwgU2NhbGFyPGRvdWJsZT4g PiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2RlPEZuUG93LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8 ZG91YmxlPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5E X0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoN CiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9u VGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2Fs YXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiA+LCBCaW5hcnlOb2RlPEZuUG93LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVf VklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3Vu ZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBF eHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8Rm5Qb3csIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElB VEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0K I3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBU MyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11 bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNU QU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVm IFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVm aW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91 YmxlPiwgVW5hcnlOb2RlPEZuRXhwLCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPEZuRG90LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVC cmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxs PiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4gPiA+DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VW5hcnlOb2RlPEZuRXhwLCBCaW5hcnlOb2RlPE9w RGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlO b2RlPEZuRG90LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1 bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChp bnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+LCBTY2FsYXI8 ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMp DQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVm aW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BE aXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5v ZGU8Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGlu dCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4sIFNjYWxhcjxk b3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZp ZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9kZTxGbk1h eCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2Nh bGFyPGRvdWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQy LFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0K I2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2Rl PEZuTWluLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlO b2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcEZ3 ZDxFbmdpbmU8KGludCkyLCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVz c2libGVCcmlja1ZpZXc+LCBMb2M8KGludCkxPiA+ID4gPiwgRmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklF TkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVm aW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxC aW5hcnlOb2RlPEZuTWluLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5 LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcEZ3ZDxFbmdpbmU8KGludCkyLCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+ LCBDb21wcmVzc2libGVCcmljaz4sIExvYzwoaW50KTE+ID4gPiA+LCBGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJ RU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2Rl ZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8 QmluYXJ5Tm9kZTxGbk1pbiwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBs eSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRv dWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiwgTG9jPChpbnQpMT4gPiA+ID4gPiwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPg0K SU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1 bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGludA0KI2Rl ZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8 T3BMVCwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9k ZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgRmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBGd2Q8 RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3Np YmxlQnJpY2tWaWV3PiwgTG9jPChpbnQpMT4gPiA+ID4sIEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmlja1ZpZXc+ID4gPiwgU2NhbGFyPGludD4sIFNjYWxhcjxpbnQ+ID4gPg0K SU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1 bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGludA0KI2Rl ZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8 T3BMVCwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9k ZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgRmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBGd2Q8 RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3Np YmxlQnJpY2s+LCBMb2M8KGludCkxPiA+ID4gPiwgRmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxpbnQ+LCBTY2FsYXI8aW50PiA+ID4NCklOU1RBTlRJ QVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDIN CiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBpbnQNCiNkZWZpbmUgVDMg RXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wTFQsIFNj YWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcEZ3 ZDxFbmdpbmU8KGludCkyLCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVz c2libGVCcmljaz4sIExvYzwoaW50KTE+ID4gPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+LCBTY2FsYXI8aW50PiwgU2NhbGFyPGlu dD4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRl ZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIg Ym9vbA0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BMVCwgU2NhbGFy PGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5 LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wRndkPEVu Z2luZTwoaW50KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJs ZUJyaWNrPiwgTG9jPChpbnQpMT4gPiA+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZS SUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNk ZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFn PEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8 ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wRndkPEVuZ2luZTwoaW50 KTIsIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiwg TG9jPChpbnQpMT4gPiA+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQy LFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0K I2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUs IENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwg Q29tcHJlc3NpYmxlQnJpY2s+LCBMb2M8KGludCkxPiA+ID4gPiA+ID4NCklOU1RBTlRJQVRF X1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1 bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMg RXhwcmVzc2lvblRhZzxVbmFyeU5vZGU8Rm5TcXJ0LCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBT Y2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxGbk1heCwgQmluYXJ5Tm9kZTxPcEFkZCwgQmlu YXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJs ZT4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZp ZGUsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPEZuTWF4LCBCaW5hcnlOb2RlPE9wQWRk LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIFNjYWxhcjxkb3VibGU+LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8 ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMp DQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVm aW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8Rm5N From wdn at lanl.gov Thu Sep 6 18:15:54 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Thu, 6 Sep 2001 12:15:54 -0600 Subject: Explicit Instantiation Question (3/5) Message-ID: <200109061816.f86IG7w03245@saltydog.lanl.gov> YXgsIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgQmluYXJ5Tm9kZTxPcEFk ZCwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5E X0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoN CiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9u VGFnPEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgQmluYXJ5Tm9kZTxPcEFk ZCwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMp DQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVm aW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BN dWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiwgQmluYXJ5Tm9kZTxPcEFkZCwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1 bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBC aW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiA+ LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21w cmVzc2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQx IFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g Pg0KI2RlZmluZSBUMiBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQz IEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJl c3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4N CiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPg0KI2RlZmluZSBUMyBF eHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3Rv cjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBCaW5hcnlO b2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91 YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFf QU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQz DQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5h cnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJs ZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJl c3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2li bGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQz KQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2Rl ZmluZSBUMiBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJl c3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHks IFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwg RnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5E X0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoN CiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4N CiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlj az4gPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCky LCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPg0KSU5TVEFOVElB VEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0K I3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBU MyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BHVCwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFy PGRvdWJsZT4gPiwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBk b3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5h cnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVO RFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZp bmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJp bmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRp cGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4NCklOU1RB TlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYg VDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZp bmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9w TXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4NCklO U1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5k ZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBWZWN0b3I8KGlu dCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9k ZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxs PiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5v ZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxs PiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVO RFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZp bmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZp bmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9w TXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENv bXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4N CiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPg0KI2RlZmluZSBUMyBF eHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9y PChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNU QU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVm IFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVm aW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxP cFN1YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNr PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4s IEJpbmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9B TkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMN Cg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcEdFLCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+ LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2RlPE9wU3VidHJhY3Qs IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxh cjxkb3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixU MykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dl b21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNj YWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9t ZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklO U1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5k ZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNk ZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2Rl PE9wR1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4s IFNjYWxhcjxkb3VibGU+ID4sIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wU3VidHJh Y3QsIFNjYWxhcjxkb3VibGU+LCBVbmFyeU5vZGU8Rm5Db3MsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklF VzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVm IFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHBy ZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgU2NhbGFyPGRvdWJsZT4sIFVuYXJ5 Tm9kZTxGbkNvcywgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPFVuYXJ5Tm9kZTxGbkNvcywg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4NCklO U1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5k ZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNk ZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2Rl PE9wR1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4s IFNjYWxhcjxkb3VibGU+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5E X0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoN CiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9u VGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9w QWRkLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBT Y2FsYXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEs VDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEg Tm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwg RnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHks IEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGlu dCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVs ZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIs IGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJ QVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDIN CiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBU MiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlw bHksIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNl PEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1Zp ZXc+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFy PGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPiwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBS ZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBkb3VibGUN CiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVy ZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9G UklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQoj ZGVmaW5lIFQxIE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZp bmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2RlPE9wTXVs dGlwbHksIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2RlPE9w TXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwo aW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4gPg0KSU5TVEFO VElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBU Mg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmlja1ZpZXc+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVf VklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3Vu ZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIFZl Y3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxC aW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wQWRk LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGludCkyLCBk b3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVs ZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENv bXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZS SUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNk ZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIs IGRvdWJsZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9w TXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVy ZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwg RnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9H ZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVz c2libGVCcmlja1ZpZXc+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhU MSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBU MSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5 Tm9kZTxGbk1pbiwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIFNjYWxh cjxkb3VibGU+LCBCaW5hcnlOb2RlPEZuTWF4LCBVbmFyeU5vZGU8Rm5GYWJzLCBGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4g PiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBU MQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91 YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxGbk1pbiwgU2NhbGFy PGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlO b2RlPEZuTWF4LCBVbmFyeU5vZGU8Rm5GYWJzLCBGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPEZuTWluLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxP cERpdmlkZSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8Rm5NYXgsIFVuYXJ5Tm9kZTxG bkZhYnMsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4g PiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVO RFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZp bmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+DQojZGVmaW5lIFQyIGludA0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5h cnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BMVCwgU2NhbGFyPGRvdWJsZT4sIEJpbmFy eU5vZGU8T3BEaXZpZGUsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPEZuTWF4LCBVbmFy eU5vZGU8Rm5GYWJzLCBGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ LCBTY2FsYXI8ZG91YmxlPiA+ID4gPiwgU2NhbGFyPGludD4sIFNjYWxhcjxpbnQ+ID4gPg0K SU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1 bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGludA0KI2Rl ZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8 T3BMVCwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIFNjYWxhcjxkb3Vi bGU+LCBCaW5hcnlOb2RlPEZuTWF4LCBVbmFyeU5vZGU8Rm5GYWJzLCBGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+LCBTY2FsYXI8 aW50PiwgU2NhbGFyPGludD4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhU MSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBU MSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4NCiNkZWZpbmUgVDIgaW50DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5v ZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcExULCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9k ZTxPcERpdmlkZSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8Rm5NYXgsIFVuYXJ5Tm9k ZTxGbkZhYnMsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4sIFNjYWxhcjxpbnQ+LCBTY2FsYXI8aW50PiA+ ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQx DQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBib29s DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcExULCBTY2FsYXI8ZG91 YmxlPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8 Rm5NYXgsIFVuYXJ5Tm9kZTxGbkZhYnMsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4gPg0KSU5TVEFOVElB VEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0K I3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBU MyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIFNjYWxhcjxkb3VibGU+LCBC aW5hcnlOb2RlPEZuTWF4LCBVbmFyeU5vZGU8Rm5GYWJzLCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBk b3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxGbk1heCwgVW5hcnlOb2RlPEZu RmFicywgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQx IFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g Pg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5 Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wR1QsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91 YmxlPiA+LCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrPiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQx DQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3Vi bGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBSZWZl cmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4g PiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVm IFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBW ZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8 QmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91 YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZl Y3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPg0K SU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1 bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQoj ZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhw cmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHks IEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVu Y2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1 bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21l dHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIFJlZmVy ZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2tWaWV3PiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFy eU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3Rv cjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVm ZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91Ymxl LCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIFNjYWxhcjxkb3VibGU+ID4g PiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBU MQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQp Mj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5 Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxGbkRvdCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0 cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBWZWN0 b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiwg U2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBO b0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBG dWxsPg0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5j ZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0 cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiwgUmVmZXJl bmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj a1ZpZXc+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRf RlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0K I2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQp MiwgZG91YmxlLCBGdWxsPg0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8 T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8Tm9H ZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVz c2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxO b0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4g Pg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDEN CiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+ DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5v ZGU8Rm5NYXgsIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVy ZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5E X0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoN CiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9u VGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BBbmQsIEJpbmFyeU5vZGU8 T3BBbmQsIEJpbmFyeU5vZGU8T3BHVCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgQmluYXJ5Tm9kZTxPcEdULCBC aW5hcnlOb2RlPEZuRG90LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3Vi bGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVj dG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2Nh bGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2RlPE9wR1QsIEJpbmFyeU5vZGU8T3BNdWx0aXBs eSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPEZuRG90LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlj az4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwg Q29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4s IEJpbmFyeU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRv dWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBW ZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4g PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBT Y2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQy LFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0K I2RlZmluZSBUMiBib29sDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxP cEFuZCwgQmluYXJ5Tm9kZTxPcEFuZCwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8Rmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBC aW5hcnlOb2RlPE9wR1QsIEJpbmFyeU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZl Y3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZl cmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2li bGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4sIEJpbmFyeU5vZGU8T3BHVCwgQmlu YXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8 Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4s IENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCky LCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8Rmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5 LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxGbkRvdCwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNz aWJsZUJyaWNrPiA+ID4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMo VDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUg VDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+DQojZGVmaW5lIFQyIGJvb2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlO b2RlPE9wR1QsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5 LCBCaW5hcnlOb2RlPEZuRG90LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBk b3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBSZWZl cmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIEJpbmFyeU5v ZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8Rm5Eb3QsIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJs ZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1 bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9B TkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMN Cg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJp bmFyeU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJs ZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0 b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBSZWZl cmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFU RV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQoj dW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQz IEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPEZuRG90 LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21w cmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91 YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FO RF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0K DQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBib29sDQojZGVmaW5lIFQzIEV4cHJlc3Npb25U YWc8QmluYXJ5Tm9kZTxPcEFuZCwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5h cnlOb2RlPE9wR1QsIEJpbmFyeU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3Rv cjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVC cmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5E X0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoN CiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+DQojZGVmaW5lIFQyIGJvb2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRh ZzxCaW5hcnlOb2RlPE9wR1QsIEJpbmFyeU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVz c2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlO b2RlPEZuTWF4LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxGbk1pbiwgQmluYXJ5Tm9k ZTxGbk1pbiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiwgQmluYXJ5Tm9kZTxGbk1pbiwgQmluYXJ5Tm9k ZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4sIFNjYWxhcjxkb3VibGU+ ID4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8Rm5NYXgs IFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPEZuTWluLCBCaW5hcnlOb2RlPEZuTWluLCBC aW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBs eSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4gPiA+LCBCaW5hcnlOb2RlPEZuTWluLCBCaW5hcnlOb2RlPE9wTXVsdGlw bHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4gPg0K SU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1 bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0K I2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8Rm5NaW4sIEJpbmFyeU5vZGU8 Rm5NaW4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9kZTxP cE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiA+ID4sIEJpbmFyeU5vZGU8Rm5NaW4sIEJpbmFyeU5vZGU8 T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYg VDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRv dWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8Rm5NaW4sIEJpbmFy eU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BBZGQsIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+LCBTY2FsYXI8ZG91 YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3Vu ZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBU MiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlw bHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRf RlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0K I2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVm aW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxP cEdULCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXBy ZXNzaWJsZUJyaWNrVmlldz4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgQmluYXJ5Tm9kZTxPcERp dmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPEZuRG90LCBSZWZlcmVu Y2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1 bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21l dHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJs ZUJyaWNrVmlldz4gPiA+LCBCaW5hcnlOb2RlPEZuRG90LCBSZWZlcmVuY2U8RmllbGQ8Tm9H ZW9tZXRyeTwoaW50KTI+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVz c2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4s IFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4g PiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElB VEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0K I3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQy IGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUs IEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxGbkRvdCwgUmVmZXJlbmNlPEZp ZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwg Q29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwo aW50KTI+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlj a1ZpZXc+ID4gPiwgQmluYXJ5Tm9kZTxGbkRvdCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0 cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBWZWN0 b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4gPiA+ LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQx IE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhw cmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8Rm5Eb3QsIFJl ZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIsIGRvdWJs ZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPE5v R2VvbWV0cnk8KGludCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJl c3NpYmxlQnJpY2tWaWV3PiA+ID4sIEJpbmFyeU5vZGU8Rm5Eb3QsIFJlZmVyZW5jZTxGaWVs ZDxOb0dlb21ldHJ5PChpbnQpMj4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENv bXByZXNzaWJsZUJyaWNrVmlldz4gPiwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGlu dCkyPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tW aWV3PiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykN CiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZp bmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5X aGVyZSwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBy ZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91YmxlPiwgU2Nh bGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixU MykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dl b21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBVbmFy eU5vZGU8T3BVbmFyeU1pbnVzLCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8 Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiA+ LCBSZWZlcmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrVmlldz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQx IE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhw cmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFVuYXJ5Tm9kZTxPcFVuYXJ5TWlu dXMsIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2tWaWV3PiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQp Mj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPg0KSU5TVEFOVElBVEVf VklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3Vu ZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRv dWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwg U2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BBZGQsIFJlZmVyZW5jZTxGaWVsZDxOb0dl b21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBSZWZl cmVuY2U8RmllbGQ8Tm9HZW9tZXRyeTwoaW50KTI+LCBkb3VibGUsIENvbXByZXNzaWJsZUJy aWNrVmlldz4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9H ZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNz aW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2Nh bGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5v R2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJl ZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+ID4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPE5v R2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJl ZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2tWaWV3PiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBO b0dlb21ldHJ5PChpbnQpMj4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJl c3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8 KGludCkyPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxG aWVsZDxOb0dlb21ldHJ5PChpbnQpMj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3 PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5k ZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwo aW50KTI+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJp bmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgUmVmZXJlbmNlPEZpZWxkPE5vR2VvbWV0cnk8KGludCkyPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmlja1ZpZXc+ID4sIFJlZmVyZW5jZTxGaWVsZDxOb0dlb21ldHJ5PChpbnQp Mj4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4gPiA+DQpJTlNUQU5USUFU RV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQoj dW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQz IEV4cHJlc3Npb25UYWc8VW5hcnlOb2RlPEZuU3FydCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9G UklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQoj ZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRh ZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmlja1ZpZXc+LCBGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+ID4N CklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQoj dW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUN CiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFy eU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmlja1ZpZXc+ID4sIEJpbmFyeU5vZGU8Rm5Eb3QsIEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9y PChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiwgRmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1ZpZXc+ ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRl ZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIg ZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwg QmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5h cnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRT KFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5l IFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5h cnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklF TkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVm aW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxC aW5hcnlOb2RlPE9wU3VidHJhY3QsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRv dWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4g PiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhU MSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBU MSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFy eU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcEFuZCwgQmluYXJ5Tm9kZTxPcEFuZCwgQmlu YXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQp MiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJy aWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2RlPE9wR0UsIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4g PiwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4sIEJpbmFyeU5vZGU8Rm5NYXgsIEJp bmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJs ZT4sIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8 T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrPiA+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RB TlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYg VDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZp bmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPEZuTWF4LCBCaW5hcnlOb2RlPE9wRGl2 aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2Rl PE9wQWRkLCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9kZTxP cE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNr PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4g PiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4s IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2Nh bGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixU MykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNk ZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxP cERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5 Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5 LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZl cmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIEJpbmFyeU5v ZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4g PiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4g Pg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDEN CiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJs ZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2Nh bGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJp bmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5E UyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmlu ZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8Qmlu YXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgQmluYXJ5Tm9kZTxPcE11bHRp cGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIEJpbmFy eU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2li bGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRl ZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIg ZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBy ZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZS SUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNk ZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+DQojZGVmaW5lIFQyIGJvb2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxC aW5hcnlOb2RlPE9wQW5kLCBCaW5hcnlOb2RlPE9wQW5kLCBCaW5hcnlOb2RlPE9wR1QsIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxk b3VibGU+ID4sIEJpbmFyeU5vZGU8T3BHRSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2RlPE9w R1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNj YWxhcjxkb3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4N CiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9k ZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91 YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3Vu ZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBU MiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJl LCBCaW5hcnlOb2RlPE9wR1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJp bmFyeU5vZGU8T3BTdWJ0cmFjdCwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJ QVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDIN CiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUg VDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wU3Vi dHJhY3QsIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2s+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykN CiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZp bmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcFN1 YnRyYWN0LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQy LFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0K I2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9k ZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wR1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BE aXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQx DQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3Vi bGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5h cnlOb2RlPE9wR1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5v ZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVs dGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJ QVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDIN CiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUg VDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVs dGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBC aW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4N CiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9k ZTxPcE11bHRpcGx5LCBUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wTFQsIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxk b3VibGU+ID4sIFNjYWxhcjxkb3VibGU+LCBTY2FsYXI8ZG91YmxlPiA+LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPg0KSU5TVEFOVElBVEVf VklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3Vu ZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBF eHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BMVCwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRv dWJsZT4gPiwgU2NhbGFyPGRvdWJsZT4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElB VEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0K I3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBU MyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11 bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx From wdn at lanl.gov Thu Sep 6 18:15:54 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Thu, 6 Sep 2001 12:15:54 -0600 Subject: Explicit Instantiation Question (5/5) Message-ID: <200109061816.f86IG9M03250@saltydog.lanl.gov> LCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPFZlY3RvcjwoaW50KTIsIGRvdWJsZSwg RnVsbD4gPiA+LCBTY2FsYXI8VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiA+ID4sIFNj YWxhcjxWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+ID4gPiA+DQpJTlNUQU5USUFURV9W SUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5k ZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91Ymxl LCBGdWxsPg0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBs eSwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwg ZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxWZWN0b3I8KGlu dCkyLCBkb3VibGUsIEZ1bGw+ID4gPiwgU2NhbGFyPFZlY3RvcjwoaW50KTIsIGRvdWJsZSwg RnVsbD4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0K I3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmlu ZSBUMiBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQp MiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxWZWN0b3I8 KGludCkyLCBkb3VibGUsIEZ1bGw+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJ RU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2Rl ZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMywgYm9vbCwgRnVsbD4NCiNkZWZp bmUgVDMgQ29tcHJlc3NpYmxlQnJpY2sNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRT KFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5l IFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPg0KI2RlZmluZSBUMiBWZWN0b3I8KGludCkzLCBjaGFyLCBGdWxsPg0KI2RlZmluZSBU MyBDb21wcmVzc2libGVCcmljaw0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEs VDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEg VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTMsIHNob3J0LCBGdWxsPg0KI2RlZmluZSBUMyBD b21wcmVzc2libGVCcmljaw0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQoj ZGVmaW5lIFQyIFZlY3RvcjwoaW50KTMsIGxvbmcsIEZ1bGw+DQojZGVmaW5lIFQzIENvbXBy ZXNzaWJsZUJyaWNrDQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykN CiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZp bmUgVDIgVmVjdG9yPChpbnQpMiwgY2hhciwgRnVsbD4NCiNkZWZpbmUgVDMgQ29tcHJlc3Np YmxlQnJpY2sNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3Vu ZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBU MiBWZWN0b3I8KGludCkyLCBzaG9ydCwgRnVsbD4NCiNkZWZpbmUgVDMgQ29tcHJlc3NpYmxl QnJpY2sNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVm IFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBW ZWN0b3I8KGludCkyLCBsb25nLCBGdWxsPg0KI2RlZmluZSBUMyBDb21wcmVzc2libGVCcmlj aw0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDEN CiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIHN0ZDo6 YmFzaWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0ZDo6YWxsb2Nh dG9yPGNoYXI+ID4NCiNkZWZpbmUgVDMgQ29tcHJlc3NpYmxlQnJpY2sNCklOU1RBTlRJQVRF X1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1 bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiB1bnNpZ25lZCBsb25nDQojZGVm aW5lIFQzIENvbXByZXNzaWJsZUJyaWNrDQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5E UyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmlu ZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4NCiNkZWZpbmUgVDIgdW5zaWduZWQgaW50DQojZGVmaW5lIFQzIENvbXByZXNzaWJs ZUJyaWNrDQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRl ZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIg dW5zaWduZWQgc2hvcnQNCiNkZWZpbmUgVDMgQ29tcHJlc3NpYmxlQnJpY2sNCklOU1RBTlRJ QVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDIN CiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiB1bnNpZ25lZCBjaGFyDQoj ZGVmaW5lIFQzIENvbXByZXNzaWJsZUJyaWNrDQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJ RU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2Rl ZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMywgZmxvYXQsIEZ1bGw+DQojZGVm aW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxP cEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBT Y2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8VmVjdG9yPChpbnQpMywgZmxvYXQsIEZ1bGw+ID4s IFNjYWxhcjxWZWN0b3I8KGludCkzLCBmbG9hdCwgRnVsbD4gPiA+ID4NCklOU1RBTlRJQVRF X1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1 bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBWZWN0b3I8KGludCkzLCBmbG9h dCwgRnVsbD4NCiNkZWZpbmUgVDMgQ29tcHJlc3NpYmxlQnJpY2tWaWV3DQpJTlNUQU5USUFU RV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQoj dW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZmxv YXQsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVy ZSwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8VmVjdG9yPChpbnQpMiwg ZmxvYXQsIEZ1bGw+ID4sIFNjYWxhcjxWZWN0b3I8KGludCkyLCBmbG9hdCwgRnVsbD4gPiA+ ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQx DQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBWZWN0 b3I8KGludCkyLCBmbG9hdCwgRnVsbD4NCiNkZWZpbmUgVDMgQ29tcHJlc3NpYmxlQnJpY2tW aWV3DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBU MQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgVmVj dG9yPChpbnQpMiwgYm9vbCwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmlu YXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wR1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4sIFNjYWxhcjxW ZWN0b3I8KGludCkyLCBib29sLCBGdWxsPiA+LCBTY2FsYXI8VmVjdG9yPChpbnQpMiwgYm9v bCwgRnVsbD4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQz KQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2Rl ZmluZSBUMiBWZWN0b3I8KGludCkyLCBib29sLCBGdWxsPg0KI2RlZmluZSBUMyBDb21wcmVz c2libGVCcmlja1ZpZXcNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQz KQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIE5vR2Vv bWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBWZWN0b3I8KGludCkzLCBkb3VibGUsIEZ1bGw+ DQojZGVmaW5lIFQzIENvbXByZXNzaWJsZUJyaWNrVmlldw0KSU5TVEFOVElBVEVfVklFVzFf QU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQz DQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIFZlY3Rvcjwo aW50KTMsIGludCwgRnVsbD4NCiNkZWZpbmUgVDMgQ29tcHJlc3NpYmxlQnJpY2tWaWV3DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBOb0dlb21ldHJ5PChpbnQpMj4NCiNk ZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgaW50LCBGdWxsPg0KI2RlZmluZSBUMyBDb21wcmVz c2libGVCcmlja1ZpZXcNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQz KQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2Rl ZmluZSBUMiBWZWN0b3I8KGludCkyLCBpbnQsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+ LCBTY2FsYXI8VmVjdG9yPChpbnQpMiwgaW50LCBGdWxsPiA+LCBTY2FsYXI8VmVjdG9yPChp bnQpMiwgaW50LCBGdWxsPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMo VDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUg VDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGludCwgRnVsbD4NCiNkZWZpbmUgVDMg Q29tcHJlc3NpYmxlQnJpY2tWaWV3DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhU MSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBU MSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4NCiNkZWZpbmUgVDIgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPg0KI2RlZmluZSBU MyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BHVCwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFy PGRvdWJsZT4gPiwgU2NhbGFyPFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4gPiwgU2Nh bGFyPFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJ RVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRl ZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhw cmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wR1QsIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3Vi bGU+ID4sIFNjYWxhcjxkb3VibGU+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRF X1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1 bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBmbG9hdA0KI2RlZmluZSBUMyBF eHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BHVCwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRv dWJsZT4gPiwgU2NhbGFyPGZsb2F0PiwgU2NhbGFyPGZsb2F0PiA+ID4NCklOU1RBTlRJQVRF X1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1 bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBmbG9hdA0KI2RlZmluZSBUMyBD b21wcmVzc2libGVCcmlja1ZpZXcNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQx IFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g Pg0KI2RlZmluZSBUMiBpbnQNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9k ZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wR1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4sIFNjYWxhcjxpbnQ+LCBT Y2FsYXI8aW50PiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQz KQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2Rl ZmluZSBUMiBpbnQNCiNkZWZpbmUgVDMgQ29tcHJlc3NpYmxlQnJpY2tWaWV3DQpJTlNUQU5U SUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQy DQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgYm9vbA0KI2RlZmluZSBU MyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BHVCwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFy PGRvdWJsZT4gPiwgU2NhbGFyPGJvb2w+LCBTY2FsYXI8Ym9vbD4gPiA+DQpJTlNUQU5USUFU RV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQoj dW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgYm9vbA0KI2RlZmluZSBUMyBD b21wcmVzc2libGVCcmlja1ZpZXcNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw== From wdn at lanl.gov Thu Sep 6 18:15:54 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Thu, 6 Sep 2001 12:15:54 -0600 Subject: Explicit Instantiation Question (4/5) Message-ID: <200109061816.f86IG9P03248@saltydog.lanl.gov> LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQx IFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g Pg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlO b2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgQmluYXJ5Tm9kZTxPcEFk ZCwgQmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2Rl PE9wQWRkLCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBs eSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2RlPE9wQWRk LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BBZGQsIFNjYWxhcjxkb3Vi bGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4s IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2Nh bGFyPGRvdWJsZT4gPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9B TkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMN Cg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlO b2RlPE9wQWRkLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BBZGQsIFNj YWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQp MiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJy aWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlO b2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5v ZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcEFkZCwgU2NhbGFyPGRvdWJsZT4sIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91Ymxl PiA+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVm IFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBk b3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBCaW5h cnlOb2RlPE9wQWRkLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BBZGQs IFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5h cnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBk b3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFy eU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcEFkZCwgU2NhbGFyPGRvdWJsZT4sIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91 YmxlPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykN CiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZp bmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11 bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIEJpbmFyeU5vZGU8 T3BBZGQsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcEFkZCwgU2NhbGFy PGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ LCBTY2FsYXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMo VDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUg VDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFy eU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcEFkZCwg U2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4s IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+LCBC aW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2s+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BBZGQsIFNj YWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiwgQmlu YXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5 Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPiA+ID4gPiwgU2NhbGFyPGRvdWJsZT4g PiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBU MQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91 YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5 Tm9kZTxPcEFkZCwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2Nh bGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4gPiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5v ZGU8T3BBZGQsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxh cjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNr PiA+ID4gPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBTY2FsYXI8ZG91 YmxlPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPiA+ID4gPiA+DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBCaW5hcnlOb2RlPE9w QWRkLCBCaW5hcnlOb2RlPE9wQWRkLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcE11 bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmljaz4gPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgQmluYXJ5Tm9kZTxPcEFk ZCwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJs ZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3Vu ZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBU MiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBC aW5hcnlOb2RlPE9wQWRkLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5 LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2li bGVCcmljaz4gPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgU2Nh bGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4gPiA+ DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0K I3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91Ymxl DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZl cmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBCaW5hcnlOb2Rl PE9wQWRkLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8 ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1 bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUg VDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwg U2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4s IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4N CklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQoj dW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUN CiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlO b2RlPE9wQWRkLCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHks IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9k ZTxGbk1heCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2RlPE9wQWRk LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2Fs YXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQoj ZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8 T3BBZGQsIEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2RlPEZu TWF4LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFf QU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQz DQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNz aW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2RlPEZu TWF4LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwg Q29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJ RVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRl ZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhw cmVzc2lvblRhZzxCaW5hcnlOb2RlPEZuTWF4LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJs ZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRl ZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIg ZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwg QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9w QWRkLCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5 Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wQWRkLCBT Y2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNr PiA+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5 Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wQWRkLCBT Y2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNr PiA+ID4sIFNjYWxhcjxkb3VibGU+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4gPiwgQmluYXJ5Tm9kZTxPcEFkZCwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4g PiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVm IFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBk b3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBCaW5h cnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BBZGQsIFNjYWxhcjxkb3VibGU+LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9k ZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQp MiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJy aWNrPiA+LCBCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BBZGQsIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4g PiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BBZGQsIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4g PiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4g PiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVm IFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBk b3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHks IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIEJpbmFy eU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwg QmluYXJ5Tm9kZTxPcEFkZCwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwg QmluYXJ5Tm9kZTxPcEFkZCwgU2NhbGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiA+ID4NCklOU1RBTlRJ QVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDIN CiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUg VDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2RlPE9wQWRkLCBC aW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BBZGQsIFNjYWxhcjxkb3VibGU+ LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFy PGRvdWJsZT4gPiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wQWRkLCBC aW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BBZGQsIFNjYWxhcjxkb3VibGU+ LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFy PGRvdWJsZT4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgQmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlO b2RlPE9wQWRkLCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBy ZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4sIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9B TkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMN Cg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlO b2RlPE9wQWRkLCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBy ZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklF VzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVm IFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHBy ZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcEFkZCwgU2Nh bGFyPGRvdWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4g PiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVm IFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBk b3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHks IFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlm b3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRv dWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FO RF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0K DQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lv blRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmlu YXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBVbmFy eU5vZGU8Rm5FeHAsIFVuYXJ5Tm9kZTxPcFVuYXJ5TWludXMsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklF VzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVm IFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHBy ZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BBZGQsIEJpbmFy eU5vZGU8T3BTdWJ0cmFjdCwgQmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcFN1YnRy YWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBC aW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBVbmFyeU5vZGU8Rm5FeHAs IFVuYXJ5Tm9kZTxPcFVuYXJ5TWludXMsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxk b3VibGU+LCBVbmFyeU5vZGU8Rm5FeHAsIFVuYXJ5Tm9kZTxPcFVuYXJ5TWludXMsIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+ID4gPiwgQmlu YXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4sIEJpbmFyeU5vZGU8Rm5NYXgsIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxk b3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykN CiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZp bmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcEFk ZCwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2Rl PE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFVuYXJ5Tm9k ZTxGbkV4cCwgVW5hcnlOb2RlPE9wVW5hcnlNaW51cywgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBk b3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwg U2NhbGFyPGRvdWJsZT4sIFVuYXJ5Tm9kZTxGbkV4cCwgVW5hcnlOb2RlPE9wVW5hcnlNaW51 cywgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4g PiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiA+DQpJTlNUQU5USUFU RV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQoj dW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQz IEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBCaW5hcnlOb2RlPE9wQWRk LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJs ZT4sIFVuYXJ5Tm9kZTxGbkV4cCwgVW5hcnlOb2RlPE9wVW5hcnlNaW51cywgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPiA+LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIEJpbmFyeU5vZGU8 T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFVuYXJ5Tm9kZTxGbkV4cCwgVW5hcnlOb2Rl PE9wVW5hcnlNaW51cywgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiA+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQy LFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0K I2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2Rl PE9wQWRkLCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFy PGRvdWJsZT4sIFVuYXJ5Tm9kZTxGbkV4cCwgVW5hcnlOb2RlPE9wVW5hcnlNaW51cywgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4gPiA+LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPg0KSU5T VEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRl ZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQp MiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2Rl ZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgQmluYXJ5Tm9kZTxPcE11 bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgVW5hcnlOb2RlPEZuRXhwLCBVbmFyeU5vZGU8T3BV bmFyeU1pbnVzLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNr PiA+ID4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMp DQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVm aW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BN dWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIFVuYXJ5Tm9kZTxGbkV4cCwgVW5hcnlOb2RlPE9w VW5hcnlNaW51cywgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykN CiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZp bmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VW5hcnlOb2RlPEZuRXhw LCBVbmFyeU5vZGU8T3BVbmFyeU1pbnVzLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENv bXByZXNzaWJsZUJyaWNrPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5E UyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmlu ZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8Qmlu YXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2RlPE9wQWRk LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8Rm5NYXgsIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4s IFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2RlPE9wQWRkLCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8Rm5NYXgsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4sIFNjYWxhcjxkb3Vi bGU+ID4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2Rl PE9wTXVsdGlwbHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJp Y2s+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJ RU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2Rl ZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8 QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPEZu TWF4LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBT Y2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2RlPE9wTXVsdGlw bHksIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNj YWxhcjxkb3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4N CiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9k ZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPEZuTWF4LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3Vi bGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91 YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3Vu ZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBU MiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJl LCBCaW5hcnlOb2RlPE9wQW5kLCBCaW5hcnlOb2RlPE9wTFQsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFy eU5vZGU8T3BHVCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2RlPEZuTWF4LCBTY2FsYXI8ZG91 YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPg0K SU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1 bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGJvb2wNCiNk ZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wQW5kLCBCaW5hcnlOb2RlPE9w TFQsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNj YWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BHVCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4NCklOU1RB TlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYg VDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZp bmUgVDMgRXhwcmVzc2lvblRhZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9w TFQsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNj YWxhcjxkb3VibGU+ID4sIFNjYWxhcjxkb3VibGU+LCBUcmluYXJ5Tm9kZTxGbldoZXJlLCBC aW5hcnlOb2RlPE9wR1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4sIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPiA+DQpJTlNUQU5USUFU RV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQoj dW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQz IEV4cHJlc3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcEdULCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8 ZG91YmxlPiA+LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBD b21wcmVzc2libGVCcmljaz4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRT KFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5l IFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxUcmlu YXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wQW5kLCBCaW5hcnlOb2RlPE9wTFQsIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9kZTxP cEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBT Y2FsYXI8ZG91YmxlPiA+ID4sIFNjYWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBk b3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5E X0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoN CiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+DQojZGVmaW5lIFQyIGJvb2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRh ZzxCaW5hcnlOb2RlPE9wQW5kLCBCaW5hcnlOb2RlPE9wTFQsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3Jt UmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJs ZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+ ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYg VDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGJv b2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wTFQsIFJlZmVyZW5j ZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVX MV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYg VDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJl c3Npb25UYWc8QmluYXJ5Tm9kZTxGbk1pbiwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8 Rm5NYXgsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5v ZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4gPg0KSU5T VEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRl ZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQp MiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2Rl ZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8Rm5NYXgsIFNjYWxhcjxkb3VibGU+ LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJs ZT4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklF TkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVm aW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxC aW5hcnlOb2RlPEZuTWluLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxGbk1heCwgU2Nh bGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRp cGx5LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBTY2FsYXI8ZG91 YmxlPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8 Rm5NYXgsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4s IFNjYWxhcjxkb3VibGU+ID4gPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+ID4NCklOU1RB TlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYg VDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZp bmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPEZuTWF4LCBTY2FsYXI8ZG91YmxlPiwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxk b3VibGU+LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlO b2RlPE9wRGl2aWRlLCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxGbk1heCwgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJs ZT4gPiA+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FO RF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0K DQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lv blRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2Nh bGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgU2NhbGFyPGRvdWJsZT4sIEJp bmFyeU5vZGU8T3BEaXZpZGUsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPEZuTWF4LCBS ZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8 ZG91YmxlPiA+ID4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlO b2RlPE9wU3VidHJhY3QsIFNjYWxhcjxkb3VibGU+LCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBT Y2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxGbk1heCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4gPiA+DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBTY2FsYXI8 ZG91YmxlPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5v ZGU8Rm5NYXgsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklF TkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVm aW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxU cmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wQW5kLCBCaW5hcnlOb2RlPE9wR1Qs IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxh cjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BMVCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2Rl PEZuTWF4LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNz aWJsZUJyaWNrPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIs VDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQoj ZGVmaW5lIFQyIGJvb2wNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9w QW5kLCBCaW5hcnlOb2RlPE9wR1QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJl c3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4sIEJpbmFyeU5vZGU8T3BMVCwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRv dWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0K I3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmlu ZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPEZuTWlu LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxGbk1heCwgU2NhbGFyPGRvdWJsZT4sIEJp bmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgU2NhbGFyPGRvdWJs ZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwg QmluYXJ5Tm9kZTxGbk1heCwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBSZWZlcmVuY2U8Rmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5p Zm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBk b3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+ID4g Pg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDEN CiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFy PChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJs ZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8Rm5NYXgsIFNjYWxhcjxk b3VibGU+LCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFNj YWxhcjxkb3VibGU+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQp MiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJy aWNrPiA+ID4sIEJpbmFyeU5vZGU8Rm5NYXgsIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNl PEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChp bnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91Ymxl PiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1 bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUg VDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlk ZSwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZp ZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQp Mj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2RlPEZuTWF4 LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGls aW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29t cHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3Np YmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPEZuTWF4LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVy ZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lh bjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4g PiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBU MQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91 YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwgVW5h cnlOb2RlPEZuU3FydCwgQmluYXJ5Tm9kZTxGbkRvdCwgQmluYXJ5Tm9kZTxPcFN1YnRyYWN0 LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21w cmVzc2libGVCcmljaz4gPiwgU2NhbGFyPFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4g PiA+LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3Rvcjwo aW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8VmVj dG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiA+ID4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4N CklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQoj dW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwo aW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUN CiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPE9wRGl2aWRlLCBVbmFyeU5v ZGU8Rm5GYWJzLCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFNjYWxhcjxkb3VibGU+LCBVbmFy eU5vZGU8Rm5TcXJ0LCBCaW5hcnlOb2RlPEZuRG90LCBCaW5hcnlOb2RlPE9wU3VidHJhY3Qs IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXBy ZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiA+ ID4sIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChp bnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxWZWN0 b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+ID4gPiA+ID4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQx DQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3Vi bGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxVbmFyeU5vZGU8Rm5GYWJzLCBCaW5hcnlO b2RlPE9wU3VidHJhY3QsIFNjYWxhcjxkb3VibGU+LCBVbmFyeU5vZGU8Rm5TcXJ0LCBCaW5h cnlOb2RlPEZuRG90LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBT Y2FsYXI8VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiA+ID4sIEJpbmFyeU5vZGU8T3BT dWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxs PiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxWZWN0b3I8KGludCkyLCBkb3VibGUs IEZ1bGw+ID4gPiA+ID4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQx IFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g Pg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlO b2RlPE9wU3VidHJhY3QsIFNjYWxhcjxkb3VibGU+LCBVbmFyeU5vZGU8Rm5TcXJ0LCBCaW5h cnlOb2RlPEZuRG90LCBCaW5hcnlOb2RlPE9wU3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBT Y2FsYXI8VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiA+ID4sIEJpbmFyeU5vZGU8T3BT dWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRv dWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgVmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxs PiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxWZWN0b3I8KGludCkyLCBkb3VibGUs IEZ1bGw+ID4gPiA+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4N CiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5v ZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2RlPE9w RGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFVuYXJ5Tm9kZTxPcFVuYXJ5TWludXMs IFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVu Y2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48 KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFNjYWxhcjxkb3Vi bGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5k ZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQy IGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUs IEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgVW5hcnlOb2RlPE9wVW5hcnlNaW51cywgUmVmZXJl bmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFu PChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBSZWZlcmVuY2U8 RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGlu dCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVX MV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYg VDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENh cnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJl c3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBVbmFyeU5vZGU8T3BVbmFyeU1pbnVz LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBD YXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+ID4sIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiA+DQpJTlNU QU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVm IFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVm aW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5vZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxP cEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBT Y2FsYXI8ZG91YmxlPiA+LCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBTY2FsYXI8ZG91YmxlPiwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXBy ZXNzaWJsZUJyaWNrPiA+LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChp bnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJs ZUJyaWNrPiA+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9B TkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMN Cg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Np b25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8 T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIs IGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlj az4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYg VDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRv dWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0aXBseSwg QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgUmVmZXJlbmNlPEZpZWxk PFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4g PiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBCaW5hcnlOb2RlPEZuUG93LCBC aW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPEZuTWF4LCBSZWZlcmVuY2U8RmllbGQ8 VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+ LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBTY2Fs YXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFf QU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQz DQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0 ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNz aW9uVGFnPEJpbmFyeU5vZGU8Rm5Qb3csIEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJpbmFyeU5v ZGU8Rm5NYXgsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ ID4sIFNjYWxhcjxkb3VibGU+ID4sIFNjYWxhcjxkb3VibGU+ID4sIFNjYWxhcjxkb3VibGU+ ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYg VDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGlu ZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRv dWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BEaXZpZGUsIEJp bmFyeU5vZGU8Rm5NYXgsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4sIFNjYWxhcjxkb3VibGU+ID4gPg0KSU5TVEFO VElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBU Mg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwg ZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQyIGRvdWJsZQ0KI2RlZmlu ZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZuV2hlcmUsIEJpbmFyeU5vZGU8T3BH VCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2Nh bGFyPGRvdWJsZT4gPiwgQmluYXJ5Tm9kZTxGbk1pbiwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5 LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5Tm9kZTxGblBvdywgQmluYXJ5Tm9kZTxPcERpdmlk ZSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwg Q2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2Nh bGFyPGRvdWJsZT4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2RlPEZuUG93LCBC aW5hcnlOb2RlPE9wRGl2aWRlLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFJlZmVyZW5jZTxGaWVsZDxV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4s IGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgU2Nh bGFyPGRvdWJsZT4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcx X0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBU Mw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNkZWZpbmUgVDMgRXhwcmVz c2lvblRhZzxCaW5hcnlOb2RlPEZuTWluLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIFNjYWxh cjxkb3VibGU+LCBCaW5hcnlOb2RlPEZuUG93LCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBSZWZl cmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91 YmxlPiA+LCBTY2FsYXI8ZG91YmxlPiA+ID4sIEJpbmFyeU5vZGU8Rm5Qb3csIEJpbmFyeU5v ZGU8T3BEaXZpZGUsIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1S ZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91Ymxl LCBDb21wcmVzc2libGVCcmljaz4gPiA+LCBTY2FsYXI8ZG91YmxlPiA+LCBTY2FsYXI8ZG91 YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8Rm5Qb3csIEJpbmFyeU5vZGU8T3BE aXZpZGUsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4s IFNjYWxhcjxkb3VibGU+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiA+DQpJTlNUQU5USUFURV9W SUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5k ZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUs IENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4 cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxGblBvdywgQmluYXJ5Tm9kZTxPcERpdmlkZSwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRv dWJsZT4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJ RU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2Rl ZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwo aW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8 QmluYXJ5Tm9kZTxPcERpdmlkZSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh cjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVz c2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9B TkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMN Cg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIENvbXByZXNz aWJsZUJyaWNrDQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1 bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUg VDIgZG91YmxlDQojZGVmaW5lIFQzIENvbXBGd2Q8RW5naW5lPChpbnQpMiwgVmVjdG9yPChp bnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+LCBMb2M8KGludCkxPiA+ DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0K I3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8 KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgUGh5c2lj c0Jhc2VDbGFzc2VzOjp0c3RlcEVzdGltYXRlDQojZGVmaW5lIFQzIENvbXByZXNzaWJsZUJy aWNrVmlldw0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5k ZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQy IFBoeXNpY3NCYXNlQ2xhc3Nlczo6dHN0ZXBFc3RpbWF0ZQ0KI2RlZmluZSBUMyBDb21wcmVz c2libGVCcmljaw0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgTm9HZW9tZXRy eTwoaW50KTI+DQojZGVmaW5lIFQyIFZlY3RvcjwoaW50KTIsIGZsb2F0LCBGdWxsPg0KI2Rl ZmluZSBUMyBDb21wcmVzc2libGVCcmlja1ZpZXcNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9G UklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQoj ZGVmaW5lIFQxIE5vR2VvbWV0cnk8KGludCkyPg0KI2RlZmluZSBUMiBsb25nDQojZGVmaW5l IFQzIENvbXByZXNzaWJsZUJyaWNrVmlldw0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVO RFMoVDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZp bmUgVDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIHNob3J0DQojZGVmaW5lIFQz IENvbXByZXNzaWJsZUJyaWNrVmlldw0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMo VDEsVDIsVDMpDQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUg VDEgTm9HZW9tZXRyeTwoaW50KTI+DQojZGVmaW5lIFQyIGNoYXINCiNkZWZpbmUgVDMgQ29t cHJlc3NpYmxlQnJpY2tWaWV3DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxU MixUMykNCiN1bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBV bmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4N CiNkZWZpbmUgVDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VHJpbmFyeU5v ZGU8Rm5XaGVyZSwgQmluYXJ5Tm9kZTxPcEdULCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBkb3VibGUs IENvbXByZXNzaWJsZUJyaWNrVmlldz4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgU2NhbGFyPGRv dWJsZT4sIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3 PiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQojdW5k ZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJlY3Rp bGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5lIFQy IFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVsbD4NCiNkZWZpbmUgVDMgRXhwcmVzc2lvblRh ZzxUcmluYXJ5Tm9kZTxGbldoZXJlLCBCaW5hcnlOb2RlPE9wR1QsIFJlZmVyZW5jZTxGaWVs ZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2tWaWV3PiA+LCBTY2FsYXI8ZG91YmxlPiA+ LCBTY2FsYXI8VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiA+LCBSZWZlcmVuY2U8Rmll bGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCky PiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBDb21wcmVzc2libGVCcmlja1Zp ZXc+ID4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1 bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUg VDIgYm9vbA0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BHVCwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmlja1ZpZXc+ID4sIFNjYWxh cjxkb3VibGU+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMp DQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVm aW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPFRyaW5hcnlOb2RlPEZu V2hlcmUsIEJpbmFyeU5vZGU8T3BHVCwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxp bmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21w cmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg ZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+DQpJTlNU QU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3VuZGVm IFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCky LCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQojZGVm aW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91 YmxlPiwgVW5hcnlOb2RlPEZuRXhwLCBCaW5hcnlOb2RlPE9wTXVsdGlwbHksIEJpbmFyeU5v ZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIFJl ZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRl c2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxk b3VibGU+ID4gPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZv cm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91 YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+ID4gPiA+DQpJ TlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBUMQ0KI3Vu ZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91YmxlDQoj ZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VW5hcnlOb2RlPEZuRXhwLCBCaW5hcnlOb2RlPE9w TXVsdGlwbHksIEJpbmFyeU5vZGU8T3BNdWx0aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFy eU5vZGU8T3BEaXZpZGUsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGlu dCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxl QnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4gPiwgQmluYXJ5Tm9kZTxPcERpdmlkZSwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRv dWJsZT4gPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMp DQojdW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9y bVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVm aW5lIFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BN dWx0aXBseSwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBTY2FsYXI8ZG91YmxlPiwgQmluYXJ5 Tm9kZTxPcERpdmlkZSwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVC cmljaz4gPiwgU2NhbGFyPGRvdWJsZT4gPiA+LCBCaW5hcnlOb2RlPE9wRGl2aWRlLCBSZWZl cmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNp YW48KGludCkyPiA+LCBkb3VibGUsIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8ZG91 YmxlPiA+ID4gPg0KSU5TVEFOVElBVEVfVklFVzFfQU5EX0ZSSUVORFMoVDEsVDIsVDMpDQoj dW5kZWYgVDENCiN1bmRlZiBUMg0KI3VuZGVmIFQzDQoNCiNkZWZpbmUgVDEgVW5pZm9ybVJl Y3RpbGluZWFyPChpbnQpMiwgZG91YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+DQojZGVmaW5l IFQyIGRvdWJsZQ0KI2RlZmluZSBUMyBFeHByZXNzaW9uVGFnPEJpbmFyeU5vZGU8T3BNdWx0 aXBseSwgU2NhbGFyPGRvdWJsZT4sIEJpbmFyeU5vZGU8T3BEaXZpZGUsIFJlZmVyZW5jZTxG aWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50 KTI+ID4sIGRvdWJsZSwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNjYWxhcjxkb3VibGU+ID4g PiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1bmRlZiBU MQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5l YXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgZG91 YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcERpdmlkZSwgUmVm ZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVz aWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPGRv dWJsZT4gPiA+DQpJTlNUQU5USUFURV9WSUVXMV9BTkRfRlJJRU5EUyhUMSxUMixUMykNCiN1 bmRlZiBUMQ0KI3VuZGVmIFQyDQojdW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVj dGlsaW5lYXI8KGludCkyLCBkb3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUg VDIgZG91YmxlDQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8VW5hcnlOb2RlPEZuU3FydCwg UmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2Fy dGVzaWFuPChpbnQpMj4gPiwgZG91YmxlLCBDb21wcmVzc2libGVCcmljaz4gPiA+ID4NCklO U1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5k ZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50 KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBkb3VibGUNCiNk ZWZpbmUgVDMgRXhwcmVzc2lvblRhZzxCaW5hcnlOb2RlPEZuRG90LCBCaW5hcnlOb2RlPE9w U3VidHJhY3QsIFJlZmVyZW5jZTxGaWVsZDxVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBk b3VibGUsIENhcnRlc2lhbjwoaW50KTI+ID4sIFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4sIENvbXByZXNzaWJsZUJyaWNrPiA+LCBTY2FsYXI8VmVjdG9yPChpbnQpMiwgZG91Ymxl LCBGdWxsPiA+ID4sIEJpbmFyeU5vZGU8T3BTdWJ0cmFjdCwgUmVmZXJlbmNlPEZpZWxkPFVu aWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPiwg VmVjdG9yPChpbnQpMiwgZG91YmxlLCBGdWxsPiwgQ29tcHJlc3NpYmxlQnJpY2s+ID4sIFNj YWxhcjxWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+ID4gPiA+ID4NCklOU1RBTlRJQVRF X1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1 bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0aWxpbmVhcjwoaW50KTIsIGRvdWJs ZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBUMiBWZWN0b3I8KGludCkyLCBkb3Vi bGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Npb25UYWc8QmluYXJ5Tm9kZTxPcFN1YnRy YWN0LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBD b21wcmVzc2libGVCcmljaz4gPiwgU2NhbGFyPFZlY3RvcjwoaW50KTIsIGRvdWJsZSwgRnVs bD4gPiA+ID4NCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQxLFQyLFQzKQ0KI3Vu ZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw0KDQojZGVmaW5lIFQxIFVuaWZvcm1SZWN0 aWxpbmVhcjwoaW50KTIsIGRvdWJsZSwgQ2FydGVzaWFuPChpbnQpMj4gPg0KI2RlZmluZSBU MiBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+DQojZGVmaW5lIFQzIEV4cHJlc3Npb25U YWc8QmluYXJ5Tm9kZTxPcEFkZCwgQmluYXJ5Tm9kZTxPcE11bHRpcGx5LCBCaW5hcnlOb2Rl PE9wQWRkLCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91 YmxlLCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+ From scotth at proximation.com Thu Sep 6 18:32:36 2001 From: scotth at proximation.com (Scott Haney) Date: Thu, 6 Sep 2001 12:32:36 -0600 Subject: [pooma-dev] Explicit Instantiation Question (1/5) In-Reply-To: <200109061816.f86IG5m03239@saltydog.lanl.gov> Message-ID: On Thursday, September 6, 2001, at 12:15 PM, Dave Nystrom wrote: > Partial message, part 1 of 5 > To read this message, select all of the parts of the message and select > the Message --> MIME --> Combine Messages menu item. Hi Everyone, I can't read these split up MIME files. Therefore, I can't respond to the question. If anyone else can read this, please translate to something that a PC-based mail program can grok. Or, Dave, please resend with something other than emacs. Scott P.S. Gaby, I couldn't read your discussion about profiling either. From JimC at proximation.com Thu Sep 6 20:07:47 2001 From: JimC at proximation.com (James Crotinger) Date: Thu, 6 Sep 2001 14:07:47 -0600 Subject: [pooma-dev] Explicit Instantiation Question (1/5) Message-ID: > -----Original Message----- > From: Dave Nystrom [mailto:wdn at lanl.gov] > Sent: Thursday, September 06, 2001 12:16 PM > To: pooma-dev > Subject: [pooma-dev] Explicit Instantiation Question (1/5) > > > Dave, whatever you did to send this message and break it into 5 pieces is not grokable to OUTLOOK. I got 5 messages, each with a single attachment named something like ATT00224.TXT. Here's an elided version of what came in that file: ------------------------------------------------------------------------ MIME-Version: 1.0 Message-ID: <15255.48474.96969.769446 at saltydog.lanl.gov> Date: Thu, 6 Sep 2001 12:15:54 -0600 From: Dave Nystrom To: pooma-dev Subject: Explicit Instantiation Question X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid User-Agent: SEMI/1.13.7 (Awazu) CLIME/1.13.6 (=?ISO-2022-JP?B?GyRCQ2YbKEI=?= =?ISO-2022-JP?B?GyRCJU4+MRsoQg==?=) MULE XEmacs/21.1 (patch 14) (Cuyahoga Valley) (i386-redhat-linux) Content-Type: text/plain; charset=US-ASCII SSdtIHdvbmRlcmluZyBpZiBhbnlvbmUgb24gcG9vbWEtZGV2IGNvdWxkIHRlbGwgbWUgaG93 IHRvIGdvIGFib3V0DQpleHBsaWNpdGx5IGluc3RhbnRpYXRpbmcgdGhlIFZpZXcxIGFuZCBB bHRWaWV3MSB0ZW1wbGF0ZXMgZnJvbSBQb29tYSAyLg0KTGF0ZWx5LCBjb21waWxlIHRpbWVz IGhhdmUgYmVlbiBtaXNlcmFibGUgb24gdGhlIGJsdWVtb3VudGFpbiBiMTggbWFjaGluZQ0K [ many lines deleted . . . ] RG90LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBD b21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh ------------------------------------------------------------------------ The final file, ATT00234.TXT, ends with ------------------------------------------------------------------------ dW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgYm9vbA0KI2RlZmluZSBUMyBD b21wcmVzc2libGVCcmlja1ZpZXcNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw== ------------------------------------------------------------------------ Given that the first file just seemed to end with no recognizable sentinal, I suspect your mailer is splitting these files and that OUTLOOK has no way to recognize that an attachment has been split across multiple files (sounds like Scott's email program on the Mac doesn't either). I'm sure this is the same problem we saw with Gaby's message awhile back. Jim -------------- next part -------------- An HTML attachment was scrubbed... URL: From wdn at lanl.gov Thu Sep 6 20:08:04 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Thu, 6 Sep 2001 14:08:04 -0600 Subject: Explicit Instantiation Question Message-ID: <15255.55204.483550.258656@saltydog.lanl.gov> Here is another try at sending my email. I am trying again to speed up our compiles because it has been taking way too long on b18, the SGI machine we are doing our classified development on. John and I have made some good progress on that by getting shared libraries working on b18 and explicitly instantiating all the Pooma2 assign functions in a special library package that only needs to be rebuilt when we change Pooma 2. In the process of doing that, I have revisited the idea of trying to explicitly instantiate the Pooma 2 View1 and AltView1 templates. When Jeffrey was looking at the original problem there with View1 which had a circular dependency which was causing a point-of-instantiation problem, he discovered that he could explicitly instantiate the View1 template with fairly simple template arguments by first explicitly instantiating the Field class with those same template arguments. Then he figured out how to explicitly instantiate the View1 class by adding the AltView1 class. However, that does not help me because now I have 2000-3000 AltView1 templates that I need to instantiate. So, I tried using Jeffreys original solution which I modified to use with the AltView1 template - see the cpp macro INSTANTIATE_VIEW1_AND_FRIENDS below. But, the simple View1.cc file below fails to compile when using KCC 4.0f on Red Hat 7.1 Linux. So, I'm wondering if I am doing the right thing in my cpp macro - KCC seems to think not. Also, I'm wondering if I need to explicitly instantiate the whole Field class or just 1 or 2 methods of the Field class. I think that Jeffrey might be the best person to answer this question although others who are intimately familiar with Pooma 2 might be able to also. Bottom line is that I am trying to figure out some way to explicitly instantiate the View1 and AltView1 templates without having to remove the circular dependency which is causing the point-of-instantiation problem. Thanks for any help, Dave Nystrom email: wdn at lanl.gov LANL X-3 phone: 505-667-7913 fax: 505-665-3046 ---------------------------------------Simple View1.cc File------------------------------------- #include "Pooma/NewFields.h" #define INSTANTIATE_VIEW1_AND_FRIENDS(T1_CPP,T2_CPP,T3_CPP) \ template class Field; \ template AltView1,Interval<1> >::sv; \ template AltView1,Interval<2> >::sv; \ template AltView1,Interval<3> >::sv; #define T1 UniformRectilinear<(int)2, double, Cartesian<(int)2> > #define T2 Vector<(int)2, double, Full> #define T3 ExpressionTag, BinaryNode >, Vector<(int)2, double, Full>, CompressibleBrickView> >, Reference >, Vector<(int)2, double, Full>, CompressibleBrickView> > >, BinaryNode, Reference >, Vector<(int)2, double, Full>, CompressibleBrickView> > > > >, BinaryNode, Reference >, Vector<(int)2, double, Full>, CompressibleBrickView> > >, BinaryNode >, Vector<(int)2, double, Full>, CompressibleBrickView> >, Reference >, ! Vector<(int)2, double, Full>, CompressibleBrickView> > > > >, Reference >, Vector<(int)2, double, Full>, CompressibleBrickView> > > > INSTANTIATE_VIEW1_AND_FRIENDS(T1,T2,T3) #undef T1 #undef T2 #undef T3 From JimC at proximation.com Thu Sep 6 20:10:26 2001 From: JimC at proximation.com (James Crotinger) Date: Thu, 6 Sep 2001 14:10:26 -0600 Subject: [pooma-dev] Explicit Instantiation Question (1/5) Message-ID: BTW, I've switched my mailer to send out plain text. Is the reflector turning these into HTML? I switched because the reflector was removing any formatting and leaving my replies in a state such that you couldn't tell which text was the original message and which was my reply. Now I'm getting HTML back, which loses the mono-spaced font that is generally pretty handy for code discussions. Jim -----Original Message----- From: James Crotinger [mailto:JimC at proximation.com] Sent: Thursday, September 06, 2001 2:08 PM To: 'Dave Nystrom' Cc: 'pooma-dev at pooma.codesourcery.com' Subject: RE: [pooma-dev] Explicit Instantiation Question (1/5) > -----Original Message----- > From: Dave Nystrom [ mailto:wdn at lanl.gov ] > Sent: Thursday, September 06, 2001 12:16 PM > To: pooma-dev > Subject: [pooma-dev] Explicit Instantiation Question (1/5) > > > Dave, whatever you did to send this message and break it into 5 pieces is not grokable to OUTLOOK. I got 5 messages, each with a single attachment named something like ATT00224.TXT. Here's an elided version of what came in that file: ------------------------------------------------------------------------ MIME-Version: 1.0 Message-ID: <15255.48474.96969.769446 at saltydog.lanl.gov> Date: Thu, 6 Sep 2001 12:15:54 -0600 From: Dave Nystrom To: pooma-dev Subject: Explicit Instantiation Question X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid User-Agent: SEMI/1.13.7 (Awazu) CLIME/1.13.6 (=?ISO-2022-JP?B?GyRCQ2YbKEI=?= =?ISO-2022-JP?B?GyRCJU4+MRsoQg==?=) MULE XEmacs/21.1 (patch 14) (Cuyahoga Valley) (i386-redhat-linux) Content-Type: text/plain; charset=US-ASCII SSdtIHdvbmRlcmluZyBpZiBhbnlvbmUgb24gcG9vbWEtZGV2IGNvdWxkIHRlbGwgbWUgaG93 IHRvIGdvIGFib3V0DQpleHBsaWNpdGx5IGluc3RhbnRpYXRpbmcgdGhlIFZpZXcxIGFuZCBB bHRWaWV3MSB0ZW1wbGF0ZXMgZnJvbSBQb29tYSAyLg0KTGF0ZWx5LCBjb21waWxlIHRpbWVz IGhhdmUgYmVlbiBtaXNlcmFibGUgb24gdGhlIGJsdWVtb3VudGFpbiBiMTggbWFjaGluZQ0K [ many lines deleted . . . ] RG90LCBSZWZlcmVuY2U8RmllbGQ8VW5pZm9ybVJlY3RpbGluZWFyPChpbnQpMiwgZG91Ymxl LCBDYXJ0ZXNpYW48KGludCkyPiA+LCBWZWN0b3I8KGludCkyLCBkb3VibGUsIEZ1bGw+LCBD b21wcmVzc2libGVCcmljaz4gPiwgUmVmZXJlbmNlPEZpZWxkPFVuaWZvcm1SZWN0aWxpbmVh ------------------------------------------------------------------------ The final file, ATT00234.TXT, ends with ------------------------------------------------------------------------ dW5kZWYgVDMNCg0KI2RlZmluZSBUMSBVbmlmb3JtUmVjdGlsaW5lYXI8KGludCkyLCBkb3Vi bGUsIENhcnRlc2lhbjwoaW50KTI+ID4NCiNkZWZpbmUgVDIgYm9vbA0KI2RlZmluZSBUMyBD b21wcmVzc2libGVCcmlja1ZpZXcNCklOU1RBTlRJQVRFX1ZJRVcxX0FORF9GUklFTkRTKFQx LFQyLFQzKQ0KI3VuZGVmIFQxDQojdW5kZWYgVDINCiN1bmRlZiBUMw== ------------------------------------------------------------------------ Given that the first file just seemed to end with no recognizable sentinal, I suspect your mailer is splitting these files and that OUTLOOK has no way to recognize that an attachment has been split across multiple files (sounds like Scott's email program on the Mac doesn't either). I'm sure this is the same problem we saw with Gaby's message awhile back. Jim -------------- next part -------------- An HTML attachment was scrubbed... URL: From wdn at lanl.gov Thu Sep 6 20:18:05 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Thu, 6 Sep 2001 14:18:05 -0600 Subject: Messed up XEmacs emails Message-ID: <15255.55805.714059.92051@saltydog.lanl.gov> Earlier today, I noticed that when I start an email composition buffer in XEmacs, the buffer has the following attributes "MIME-Edit 7bit Fill Abbrev". XEmacs also tells me that I can type "C-c C-x C-z" to exit Mime mode. When I do that, my buffer then has the familiar attributes of "Fill Abbrev". I don't know what I've done to deserve this sort of behavior from XEmacs but a friend said he does not see this behavior but he built XEmacs from scratch rather than use what comes with RH 7.1. Perhaps I'll try that. Anyway, I things will be okay as long as I remember to get out of Mime mode. -- Dave Nystrom email: wdn at lanl.gov LANL X-3 phone: 505-667-7913 fax: 505-665-3046 From JimC at proximation.com Thu Sep 6 20:32:33 2001 From: JimC at proximation.com (James Crotinger) Date: Thu, 6 Sep 2001 14:32:33 -0600 Subject: [pooma-dev] Explicit Instantiation Question Message-ID: I've mentioned before that sv is probably not used anywhere and that it was pretty clearly just added for clarity in the class definition. Is there any reason not to remove it completely? That is, we currently have something like (this is a bit old, but I don't think this stuff has changed): // Deduce appropriate version of implementation to dispatch to. static const bool sv = DomainTraits::singleValued; typedef View1Implementation Dispatch_t; // The optimized domain combiner. typedef CombineDomainOpt Combine_t; This can be changed to the more unwieldly // Deduce appropriate version of implementation to dispatch to. typedef View1Implementation::singleValued> Dispatch_t; // The optimized domain combiner. typedef CombineDomainOpt::singleValued> Combine_t; Then "sv" won't have to be instantiated at all since it won't exist anymore. sv is public, but I think that was an oversight - I don't think anyone ever uses View1::sv. Jim > -----Original Message----- > From: Dave Nystrom [mailto:wdn at lanl.gov] > Sent: Thursday, September 06, 2001 2:08 PM > To: pooma-dev > Subject: [pooma-dev] Explicit Instantiation Question > > > Here is another try at sending my email. I am trying again > to speed up our > compiles because it has been taking way too long on b18, the > SGI machine we > are doing our classified development on. John and I have > made some good > progress on that by getting shared libraries working on b18 > and explicitly > instantiating all the Pooma2 assign functions in a special > library package > that only needs to be rebuilt when we change Pooma 2. > > In the process of doing that, I have revisited the idea of trying to > explicitly instantiate the Pooma 2 View1 and AltView1 templates. When > Jeffrey was looking at the original problem there with View1 > which had a > circular dependency which was causing a > point-of-instantiation problem, he > discovered that he could explicitly instantiate the View1 > template with > fairly simple template arguments by first explicitly > instantiating the Field > class with those same template arguments. Then he figured out how to > explicitly instantiate the View1 class by adding the AltView1 class. > However, that does not help me because now I have 2000-3000 AltView1 > templates that I need to instantiate. > > So, I tried using Jeffreys original solution which I modified > to use with the > AltView1 template - see the cpp macro > INSTANTIATE_VIEW1_AND_FRIENDS below. > But, the simple View1.cc file below fails to compile when > using KCC 4.0f on > Red Hat 7.1 Linux. So, I'm wondering if I am doing the right > thing in my cpp > macro - KCC seems to think not. Also, I'm wondering if I > need to explicitly > instantiate the whole Field class or just 1 or 2 methods of > the Field class. > I think that Jeffrey might be the best person to answer this question > although others who are intimately familiar with Pooma 2 > might be able to > also. > > Bottom line is that I am trying to figure out some way to explicitly > instantiate the View1 and AltView1 templates without having > to remove the > circular dependency which is causing the > point-of-instantiation problem. > > Thanks for any help, > > Dave Nystrom email: wdn at lanl.gov > LANL X-3 phone: 505-667-7913 fax: > 505-665-3046 > > ---------------------------------------Simple View1.cc > File------------------------------------- > #include "Pooma/NewFields.h" > > #define INSTANTIATE_VIEW1_AND_FRIENDS(T1_CPP,T2_CPP,T3_CPP) \ > template class Field; \ > template > AltView1,Interval<1> >::sv; \ > template > AltView1,Interval<2> >::sv; \ > template AltView1,Interval<3> >::sv; > > #define T1 UniformRectilinear<(int)2, double, Cartesian<(int)2> > > #define T2 Vector<(int)2, double, Full> > #define T3 ExpressionTag BinaryNode, > BinaryNode Reference Cartesian<(int)2> >, Vector<(int)2, double, Full>, > CompressibleBrickView> >, > Reference Cartesian<(int)2> >, Vector<(int)2, double, Full>, > CompressibleBrickView> > >, BinaryNode Scalar, Reference double, Cartesian<(int)2> >, Vector<(int)2, double, Full>, > CompressibleBrickView> > > > >, BinaryNode BinaryNode, > Reference Cartesian<(int)2> >, Vector<(int)2, double, Full>, > CompressibleBrickView> > >, BinaryNode Reference Cartesian<(int)2> >, Vector<(int)2, double, Full>, > CompressibleBrickView> >, > Reference Cartesian<(int)2> >, ! > Vector<(int)2, double, Full>, CompressibleBrickView> > > > >, > Reference Cartesian<(int)2> >, Vector<(int)2, double, Full>, > CompressibleBrickView> > > > > INSTANTIATE_VIEW1_AND_FRIENDS(T1,T2,T3) > #undef T1 > #undef T2 > #undef T3 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From JimC at proximation.com Thu Sep 6 22:14:56 2001 From: JimC at proximation.com (James Crotinger) Date: Thu, 6 Sep 2001 16:14:56 -0600 Subject: ssh Message-ID: [I added pooma-dev to this list in case anyone else out there has an idea on this. I'm trying to figure out how to tunnel ftp through ssh from my local machine to nirvana.acl.lanl.gov. It is non-trivial because we have to tunnel through portal.lanl.gov and because Proximation has no machines on the internet except for the web server, which only accepts vpn and http connections.] Given this, I tried the obvious thing: $ ssh -l jac -t -L21:localhost:33225 \ -L20:localhost:33226 \ portal.lanl.gov \ ssh -L33225:nirvana.acl.lanl.gov:21 \ -L33226:nirvana.acl.lanl.gov:20 \ nirvana.acl.lanl.gov This should forward the ftp control connection and the ftp data connection (21 and 20). I then tried "ftp localhost" and did get connected to nirvana. I could do "cd .ssh" and it said that worked. But when I tried to do anything involving data, it failed, saying 425 Can't build data connection: Connection refused. I tried a couple of numbers for the intermediate proxy port, but it didn't make any difference. (I don't know where we're supposed to get these numbers - Stephen mentions an algorithm for deducing them from you're z-number, but doesn't recall what it is.) I'm guessing that nirvana isn't using 20 for the ftp data connection, but then what is it? Anyone have any experience with this? Jim > -----Original Message----- > From: Stephen A Smith [mailto:sasmith at cybermesa.com] > Sent: Wednesday, September 05, 2001 7:42 PM > To: jimc at proximation.com > Subject: ssh > > > All I found was a note I sent to Bill about using cvs and mail through > portal. > I seem to remember ftp being easy somehow, that portal > supported it. It > might > have been that I said ftp to portal.lanl.gov, and it logged > you in with > the passphrase > and then let you connect to another machine. Anyway, here's > what I did > for > cvs and mail: > > > For mail, I was doing > > ssh -L 1110:localhost:33224 portal.lanl.gov ssh -L > 33224:localhost:110 \ > > cic-mail > > (and telling netscape to use localhost:1110) > > for cvs, I was doing > > ssh -t -L2401:localhost:33225 portal.lanl.gov ssh \ > -L33225:blueserver.acl.lanl.gov:2401 tbp.acl.lanl.gov > > and > > cvs -d :pserver:sa_smith at localhost:/usr/local/pooma/framework > > (They had some algorithm based on your ICN number that let you pick > ports > that no one else would use.) > > Stephen > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From oldham at codesourcery.com Fri Sep 7 17:23:39 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Fri, 7 Sep 2001 10:23:39 -0700 Subject: Tiny/tests/t2: Print to stdout, not stderr Message-ID: <20010907102339.A24291@codesourcery.com> This patch causes t2 to print its success xor failure to standard output, not standard error, as all other test programs do. 2001-09-07 Jeffrey D. Oldham * t2.cpp (main): Printing test's success or failure to standard output, not standard error, to be consist with other tests. Tested on sequential Linux using gcc 3.0.1 by compiling the modified +executable Approved by Stpehen Smith Applied to mainline Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- Index: t2.cpp =================================================================== RCS file: /home/pooma/Repository/r2/src/Tiny/tests/t2.cpp,v retrieving revision 1.5 diff -c -p -r1.5 t2.cpp *** t2.cpp 2000/03/07 13:18:20 1.5 --- t2.cpp 2001/09/03 19:37:24 *************** int main() *** 89,100 **** if (ecnt == 2) { ! std::cerr << "PASSED" << std::endl; return 0; } else { ! std::cerr << "FAILED" << std::endl; return 1; } } --- 89,100 ---- if (ecnt == 2) { ! std::cout << "PASSED" << std::endl; return 0; } else { ! std::cout << "FAILED" << std::endl; return 1; } } From mark at codesourcery.com Fri Sep 7 21:27:25 2001 From: mark at codesourcery.com (Mark Mitchell) Date: Fri, 07 Sep 2001 21:27:25 -0000 Subject: visualization framework In-Reply-To: <3B9933BB.FE956FBD@mayo.edu> Message-ID: <3465632992.999898045@[192.168.0.164]> Christian -- I've forwarded your message to the POOMA development list. POOMA experts, would one of you answer Christian's question? Christian, I'd enjoy hearing more about your project. We're also adding some very nice capabilities in POOMA 2.4 that are going to make it easier to write simulations: support for lazily updated dependent Fields and support for exotic centerings. Thanks, --On Friday, September 07, 2001 3:53 PM -0500 Christian Riedel wrote: > Dear sirs, > > I have just started to use pooma (2.3) for a small simulation project > and would like to find an easy way to visualize the field and particle > data that I get. Since I found the Lux/Connect classes I was now > wondering wether this visualization framework would be available or > if there are any other toolkits that you use for such purposes. > I am looking forward to hearing from you. > Thanks , > > Christian > From oldham at codesourcery.com Mon Sep 10 15:23:21 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Mon, 10 Sep 2001 08:23:21 -0700 Subject: Patch: Fix CodeWarrior IDE Files NewField->Field Message-ID: <20010910082321.A23695@codesourcery.com> In continuing work to replace all Fields with NewField code, we move CodeWarrior .mcp files. 2001-09-10 Jeffrey D. Oldham Continuing the replacement of Field by NewField code: * NewField/MacFieldTests.mcp: Move to Field/MacFieldTests.mcp. * Field/MacFieldTests.mcp: Replaced by NewField/MacFieldTests.mcp. * Field/WinFieldTests.mcp: Removed. With these changes, the only mainline files containing "NewField" are src/Pooma/PETE/PoomaNewField.in and src/Pooma/PETE/PoomaNewFieldVector.in. Should these files be changed or renamed? Not tested. How does one test this? Approved by Scott Haney. Applied to mainline. Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- ? differences-2001Sep07 ? differences-2001Sep10 Index: Field/MacFieldTests.mcp =================================================================== RCS file: /home/pooma/Repository/r2/ide/CodeWarrior/src/Field/MacFieldTests.mcp,v retrieving revision 1.13 diff -c -p -r1.13 MacFieldTests.mcp Binary files /tmp/cvsX67d6d and MacFieldTests.mcp differ Index: Field/WinFieldTests.mcp =================================================================== RCS file: WinFieldTests.mcp diff -N WinFieldTests.mcp Binary files /tmp/cvsRgzqoe and /dev/null differ Index: NewField/MacFieldTests.mcp =================================================================== RCS file: MacFieldTests.mcp diff -N MacFieldTests.mcp Binary files /tmp/cvstFeAMU and /dev/null differ From oldham at codesourcery.com Mon Sep 10 15:33:04 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Mon, 10 Sep 2001 08:33:04 -0700 Subject: 12% Pooma Test Executables Fail Message-ID: <200109101533.IAA23756@oz.codesourcery.com> Twenty-two of the 187 Pooma test executables fail. Almost all such failures are caused by: 1) Particles tests use a header file with old field abstractions no longer supported. 2) Connect/Lux tests fail for a similar reason. Thanks, Jeffrey D. Oldham oldham at codesourcery.com From wdn at lanl.gov Mon Sep 10 16:40:11 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Mon, 10 Sep 2001 10:40:11 -0600 Subject: [pooma-dev] Explicit Instantiation Question In-Reply-To: References: Message-ID: <15260.60651.706607.688648@saltydog.lanl.gov> Hi Jim and Scott, Jim's idea works great. I made the changes in NewField/Field.h and it eliminated 3000+ templates that the Blanca source code was instantiating. The changes only take about 5 minutes to make. Could someone make them to the repository version of Pooma 2 that Blanca is using? Thanks to Jim for taking the time to look at the code and figure this out. Thanks, Dave Nystrom email: wdn at lanl.gov LANL X-3 phone: 505-667-7913 fax: 505-665-3046 James Crotinger writes: > I've mentioned before that sv is probably not used anywhere and that it was > pretty clearly just added for clarity in the class definition. Is there any > reason not to remove it completely? That is, we currently have something > like (this is a bit old, but I don't think this stuff has changed): > > // Deduce appropriate version of implementation to dispatch to. > > static const bool sv = DomainTraits::singleValued; > typedef View1Implementation Dispatch_t; > > // The optimized domain combiner. > > typedef CombineDomainOpt Combine_t; > > > This can be changed to the more unwieldly > > // Deduce appropriate version of implementation to dispatch to. > > typedef View1Implementation DomainTraits::singleValued> Dispatch_t; > > // The optimized domain combiner. > > typedef CombineDomainOpt DomainTraits::singleValued> Combine_t; > > Then "sv" won't have to be instantiated at all since it won't exist anymore. > sv is public, but I think that was an oversight - I don't think anyone ever > uses View1::sv. > > Jim > > > > -----Original Message----- > > From: Dave Nystrom [mailto:wdn at lanl.gov] > > Sent: Thursday, September 06, 2001 2:08 PM > > To: pooma-dev > > Subject: [pooma-dev] Explicit Instantiation Question > > > > > > Here is another try at sending my email. I am trying again > > to speed up our > > compiles because it has been taking way too long on b18, the > > SGI machine we > > are doing our classified development on. John and I have > > made some good > > progress on that by getting shared libraries working on b18 > > and explicitly > > instantiating all the Pooma2 assign functions in a special > > library package > > that only needs to be rebuilt when we change Pooma 2. > > > > In the process of doing that, I have revisited the idea of trying to > > explicitly instantiate the Pooma 2 View1 and AltView1 templates. When > > Jeffrey was looking at the original problem there with View1 > > which had a > > circular dependency which was causing a > > point-of-instantiation problem, he > > discovered that he could explicitly instantiate the View1 > > template with > > fairly simple template arguments by first explicitly > > instantiating the Field > > class with those same template arguments. Then he figured out how to > > explicitly instantiate the View1 class by adding the AltView1 class. > > However, that does not help me because now I have 2000-3000 AltView1 > > templates that I need to instantiate. > > > > So, I tried using Jeffreys original solution which I modified > > to use with the > > AltView1 template - see the cpp macro > > INSTANTIATE_VIEW1_AND_FRIENDS below. > > But, the simple View1.cc file below fails to compile when > > using KCC 4.0f on > > Red Hat 7.1 Linux. So, I'm wondering if I am doing the right > > thing in my cpp > > macro - KCC seems to think not. Also, I'm wondering if I > > need to explicitly > > instantiate the whole Field class or just 1 or 2 methods of > > the Field class. > > I think that Jeffrey might be the best person to answer this question > > although others who are intimately familiar with Pooma 2 > > might be able to > > also. > > > > Bottom line is that I am trying to figure out some way to explicitly > > instantiate the View1 and AltView1 templates without having > > to remove the > > circular dependency which is causing the > > point-of-instantiation problem. > > > > Thanks for any help, > > > > Dave Nystrom email: wdn at lanl.gov > > LANL X-3 phone: 505-667-7913 fax: > > 505-665-3046 > > > > ---------------------------------------Simple View1.cc > > File------------------------------------- > > #include "Pooma/NewFields.h" > > > > #define INSTANTIATE_VIEW1_AND_FRIENDS(T1_CPP,T2_CPP,T3_CPP) \ > > template class Field; \ > > template > > AltView1,Interval<1> >::sv; \ > > template > > AltView1,Interval<2> >::sv; \ > > template AltView1,Interval<3> >::sv; > > > > #define T1 UniformRectilinear<(int)2, double, Cartesian<(int)2> > > > #define T2 Vector<(int)2, double, Full> > > #define T3 ExpressionTag > BinaryNode, > > BinaryNode > Reference > Cartesian<(int)2> >, Vector<(int)2, double, Full>, > > CompressibleBrickView> >, > > Reference > Cartesian<(int)2> >, Vector<(int)2, double, Full>, > > CompressibleBrickView> > >, BinaryNode > Scalar, Reference > double, Cartesian<(int)2> >, Vector<(int)2, double, Full>, > > CompressibleBrickView> > > > >, BinaryNode > BinaryNode, > > Reference > Cartesian<(int)2> >, Vector<(int)2, double, Full>, > > CompressibleBrickView> > >, BinaryNode > Reference > Cartesian<(int)2> >, Vector<(int)2, double, Full>, > > CompressibleBrickView> >, > > Reference > Cartesian<(int)2> >, ! > > Vector<(int)2, double, Full>, CompressibleBrickView> > > > >, > > Reference > Cartesian<(int)2> >, Vector<(int)2, double, Full>, > > CompressibleBrickView> > > > > > INSTANTIATE_VIEW1_AND_FRIENDS(T1,T2,T3) > > #undef T1 > > #undef T2 > > #undef T3 > > > > > > > > RE: [pooma-dev] Explicit Instantiation Question > > > >

I've mentioned before that sv is probably not used anywhere and that it was pretty clearly just added for clarity in the class definition. Is there any reason not to remove it completely? That is, we currently have something like (this is a bit old, but I don't think this stuff has changed):

> >

  // Deduce appropriate version of implementation to dispatch to. >
  >
  static const bool sv = DomainTraits<SDomain_t>::singleValued; >
  typedef View1Implementation<Subject_t, SDomain_t, sv> Dispatch_t; >

> >

  // The optimized domain combiner. >
  >
  typedef CombineDomainOpt<NewDomain_t, sv> Combine_t; >

>
> >

This can be changed to the more unwieldly >

> >

  // Deduce appropriate version of implementation to dispatch to. >
  >
  typedef View1Implementation<Subject_t, SDomain_t, DomainTraits<SDomain_t>::singleValued> Dispatch_t; >

> >

  // The optimized domain combiner. >
  >
  typedef CombineDomainOpt<NewDomain_t, DomainTraits<SDomain_t>::singleValued> Combine_t;  >

> >

Then "sv" won't have to be instantiated at all since it won't exist anymore. sv is public, but I think that was an oversight - I don't think anyone ever uses View1<blah>::sv.

> >

  Jim >

>
> >

> -----Original Message----- >
> From: Dave Nystrom [mailto:wdn at lanl.gov] >
> Sent: Thursday, September 06, 2001 2:08 PM >
> To: pooma-dev >
> Subject: [pooma-dev] Explicit Instantiation Question >
> >
> >
> Here is another try at sending my email.  I am trying again >
> to speed up our >
> compiles because it has been taking way too long on b18, the >
> SGI machine we >
> are doing our classified development on.  John and I have >
> made some good >
> progress on that by getting shared libraries working on b18 >
> and explicitly >
> instantiating all the Pooma2 assign functions in a special >
> library package >
> that only needs to be rebuilt when we change Pooma 2. >
> >
> In the process of doing that, I have revisited the idea of trying to >
> explicitly instantiate the Pooma 2 View1 and AltView1 templates.  When >
> Jeffrey was looking at the original problem there with View1 >
> which had a >
> circular dependency which was causing a >
> point-of-instantiation problem, he >
> discovered that he could explicitly instantiate the View1 >
> template with >
> fairly simple template arguments by first explicitly >
> instantiating the Field >
> class with those same template arguments.  Then he figured out how to >
> explicitly instantiate the View1 class by adding the AltView1 class. >
> However, that does not help me because now I have 2000-3000 AltView1 >
> templates that I need to instantiate. >
> >
> So, I tried using Jeffreys original solution which I modified >
> to use with the >
> AltView1 template - see the cpp macro >
> INSTANTIATE_VIEW1_AND_FRIENDS below. >
> But, the simple View1.cc file below fails to compile when >
> using KCC 4.0f on >
> Red Hat 7.1 Linux.  So, I'm wondering if I am doing the right >
> thing in my cpp >
> macro - KCC seems to think not.  Also, I'm wondering if I >
> need to explicitly >
> instantiate the whole Field class or just 1 or 2 methods of >
> the Field class. >
> I think that Jeffrey might be the best person to answer this question >
> although others who are intimately familiar with Pooma 2 >
> might be able to >
> also. >
> >
> Bottom line is that I am trying to figure out some way to explicitly >
> instantiate the View1 and AltView1 templates without having >
> to remove the >
> circular dependency which is causing the >
> point-of-instantiation problem. >
> >
> Thanks for any help, >
> >
> Dave Nystrom                  email: wdn at lanl.gov >
> LANL X-3                      phone: 505-667-7913     fax: >
> 505-665-3046 >
> >
> ---------------------------------------Simple View1.cc >
> File------------------------------------- >
> #include "Pooma/NewFields.h" >
> >
> #define INSTANTIATE_VIEW1_AND_FRIENDS(T1_CPP,T2_CPP,T3_CPP) \ >
> template class          Field<T1_CPP,T2_CPP,T3_CPP>; \ >
> template       >
> AltView1<Field<T1_CPP,T2_CPP,T3_CPP>,Interval<1> >::sv; \ >
> template       >
> AltView1<Field<T1_CPP,T2_CPP,T3_CPP>,Interval<2> >::sv; \ >
> template       AltView1<Field<T1_CPP,T2_CPP,T3_CPP>,Interval<3> >::sv; >
> >
> #define T1 UniformRectilinear<(int)2, double, Cartesian<(int)2> > >
> #define T2 Vector<(int)2, double, Full> >
> #define T3 ExpressionTag<BinaryNode<OpAdd, >
> BinaryNode<OpSubtract, BinaryNode<OpMultiply, Scalar<double>, >
> BinaryNode<OpSubtract, BinaryNode<OpAdd, >
> Reference<Field<UniformRectilinear<(int)2, double, >
> Cartesian<(int)2> >, Vector<(int)2, double, Full>, >
> CompressibleBrickView> >, >
> Reference<Field<UniformRectilinear<(int)2, double, >
> Cartesian<(int)2> >, Vector<(int)2, double, Full>, >
> CompressibleBrickView> > >, BinaryNode<OpMultiply, >
> Scalar<int>, Reference<Field<UniformRectilinear<(int)2, >
> double, Cartesian<(int)2> >, Vector<(int)2, double, Full>, >
> CompressibleBrickView> > > > >, BinaryNode<OpMultiply, >
> BinaryNode<OpMultiply, Scalar<double>, >
> Reference<Field<UniformRectilinear<(int)2, double, >
> Cartesian<(int)2> >, Vector<(int)2, double, Full>, >
> CompressibleBrickView> > >, BinaryNode<OpSubtract, >
> Reference<Field<UniformRectilinear<(int)2, double, >
> Cartesian<(int)2> >, Vector<(int)2, double, Full>, >
> CompressibleBrickView> >, >
> Reference<Field<UniformRectilinear<(int)2, double, >
> Cartesian<(int)2> >, ! >
> Vector<(int)2, double, Full>, CompressibleBrickView> > > > >, >
> Reference<Field<UniformRectilinear<(int)2, double, >
> Cartesian<(int)2> >, Vector<(int)2, double, Full>, >
> CompressibleBrickView> > > > >
> INSTANTIATE_VIEW1_AND_FRIENDS(T1,T2,T3) >
> #undef T1 >
> #undef T2 >
> #undef T3 >
> >

> > > From oldham at codesourcery.com Mon Sep 10 17:10:07 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Mon, 10 Sep 2001 10:10:07 -0700 Subject: [pooma-dev] Explicit Instantiation Question In-Reply-To: <15260.60651.706607.688648@saltydog.lanl.gov>; from wdn@lanl.gov on Mon, Sep 10, 2001 at 10:40:11AM -0600 References: <15260.60651.706607.688648@saltydog.lanl.gov> Message-ID: <20010910101007.A24048@codesourcery.com> On Mon, Sep 10, 2001 at 10:40:11AM -0600, Dave Nystrom wrote: > Hi Jim and Scott, > > Jim's idea works great. I made the changes in NewField/Field.h and it > eliminated 3000+ templates that the Blanca source code was instantiating. > The changes only take about 5 minutes to make. Could someone make them to > the repository version of Pooma 2 that Blanca is using? Please send a patch. Thanks, Jeffrey D. Oldham oldham at codesourcery.com From oldham at codesourcery.com Mon Sep 10 18:33:02 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Mon, 10 Sep 2001 11:33:02 -0700 Subject: Tool to Test All Pooma Regression Tests Message-ID: <20010910113302.A24224@codesourcery.com> To ensure that the correctness of the Pooma test executables when changing the Pooma code, I have created a QMTest testsuite that exercises all the Pooma test executables, summarizing the results for easy perusal. QMTest is a regression testing package, resulting from the Software Carpentry competition. I encourage you to install the software on your machine, performing nightly builds. In the near future, I will ship a testsuite that runs the benchmark code so we can test for increases in running times. For more information, please read the README file in the attached gzipped tar file. Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- A non-text attachment was scrubbed... Name: pooma-regression-2001Sep10.tgz Type: application/x-gzip Size: 10386 bytes Desc: not available URL: From stephens at proximation.com Mon Sep 10 21:43:54 2001 From: stephens at proximation.com (Stephen Smith) Date: Mon, 10 Sep 2001 15:43:54 -0600 Subject: Patch: pack, unpack functions Message-ID: <<10Sep.pack.patch>> These changes add the pack/unpack functions requested by Blanca. Tested on Linux with --messaging on 2 processors. Reviewed by Scott Haney. Log Message: * PackUnpack.h: - Added a pack/unpack function requested by Blanca. pack() returns a RefCountedBlockPtr to all the elements in a field (not including guard layers) that are local to a given processor. unpack() copies the data from the RefCountedBlockPtr back into the field. These functions were tested in parallel which led to the following small changes: * FieldEngine.ExrpEngine.h - added a non-const accessor for the engine (used by reductions of remote engines) * FieldOffset.cpp - added blockAndEvaluate before values are checked * LocalPatch.cpp - added a test of pack/unpack * Arrays.h - added include of Functions/PackUnpack.h -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 10Sep.pack.patch Type: application/octet-stream Size: 12140 bytes Desc: not available URL: From stephens at proximation.com Mon Sep 10 22:02:41 2001 From: stephens at proximation.com (Stephen Smith) Date: Mon, 10 Sep 2001 16:02:41 -0600 Subject: Patch: pack/unpack added to Blanca branch Message-ID: I've added pack and unpack to the blanca-2001Oct01 branch. The functions return a RefCountedBlockPtr, so you don't have to allocate or delete storage: RefCountedBlockPtr ptr = pack(field); fortran_code(ptr.beginPointer(), ptr.size()); // operate on double*, size unpack(field, ptr); Pack returns a 1-D block of data that includes all the data local to a given processor, excluding the guard layers. unpack performs the inverse operation. Let me know if this solution is sufficient and works for you. Thanks, Stephen <<10Sep.pack.blanca.patch>> -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 10Sep.pack.blanca.patch Type: application/octet-stream Size: 10511 bytes Desc: not available URL: From mark at codesourcery.com Tue Sep 11 05:48:38 2001 From: mark at codesourcery.com (Mark Mitchell) Date: Mon, 10 Sep 2001 22:48:38 -0700 Subject: [pooma-dev] Explicit Instantiation Question (1/5) In-Reply-To: Message-ID: <18260000.1000187318@localhost> --On Thursday, September 06, 2001 02:10:26 PM -0600 James Crotinger wrote: > > BTW, I've switched my mailer to send out plain text. You did not succeed. :-) Your message came as multipart/alternative with both HTML and text variants. Thanks, -- Mark Mitchell mark at codesourcery.com CodeSourcery, LLC http://www.codesourcery.com From cummings at linkline.com Tue Sep 11 08:16:12 2001 From: cummings at linkline.com (Julian C. Cummings) Date: Tue, 11 Sep 2001 01:16:12 -0700 Subject: Particles developer tests Message-ID: Hi All, I just committed some mods to Particles in the main line branch. With these changes, all of the Particles developer tests except for interpolate and particle_test[1-4] should be functioning properly. I wasn't confident in my ability to produce a patch file that others could use (since I am running cygwin with DOS-style text files), I just went ahead and committed the changes. Perhaps someone could verify that the Particles tests are working (except those I mentioned above)? I have a few comments/questions. It seems like there are some new Fields source files that should be deleted now, such as FieldEngine.UR.h and PositionFunctions.h. Is that correct? Another issue is that for Particle->Field scatter, I need a function that sets the external guard layers to zero. We used to do this by adding a temporary ConstantBC to the Field with constant value zero, applying the BC, and deleting the BC. Can we do a similar thing with FieldUpdaters? Is there a better way to do this with the new Fields? I believe that I can use pre-existing mechanisms in MultiPatch Engines to zero out the internal guard layers, so there should be no issue there. I'd like to tackle the Particle/Field interpolators later this week. Thanks, Julian C. Dr. Julian C. Cummings Staff Scientist, CACR/Caltech (626) 395-2543 cummings at cacr.caltech.edu From stephens at proximation.com Tue Sep 11 16:20:32 2001 From: stephens at proximation.com (Stephen Smith) Date: Tue, 11 Sep 2001 10:20:32 -0600 Subject: patch: missing typenames in PackUnpack.h Message-ID: Added a couple missing typenames, caught by Jeffrey. <> -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: PackUnpack.11Sep.8.3.patch Type: application/octet-stream Size: 1678 bytes Desc: not available URL: From oldham at codesourcery.com Tue Sep 11 18:46:38 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Tue, 11 Sep 2001 11:46:38 -0700 Subject: [pooma-dev] Particles developer tests In-Reply-To: ; from cummings@linkline.com on Tue, Sep 11, 2001 at 01:16:12AM -0700 References: Message-ID: <20010911114638.A13051@codesourcery.com> On Tue, Sep 11, 2001 at 01:16:12AM -0700, Julian C. Cummings wrote: > > I just committed some mods to Particles in the main > line branch. With these changes, all of the Particles > developer tests except for interpolate and particle_test[1-4] > should be functioning properly. I wasn't confident in my > ability to produce a patch file that others could use > (since I am running cygwin with DOS-style text files), I > just went ahead and committed the changes. Perhaps > someone could verify that the Particles tests are working > (except those I mentioned above)? For Linux/gcc3.1, all the src/Particles/tests tests performed by "make run" succeeded for me! This is great! Thanks, Jeffrey D. Oldham oldham at codesourcery.com From oldham at codesourcery.com Wed Sep 12 21:10:05 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Wed, 12 Sep 2001 14:10:05 -0700 Subject: Patch: PETE Patches: NewField->Field Message-ID: <20010912141005.A8353@codesourcery.com> We continue replacing the old field abstraction with the new field abstraction. Using an updated PETE (not included), we modify the PETE input files by replacing PoomaField{,Vector}.in with PoomaNewField{,Vector}.in. The changes to the resulting header files consists of additional blank lines produced by PETE's MakeOperator. 2001-09-11 Jeffrey D. Oldham * Field/FieldOperators.h: Minor blank lines added. * Field/PoomaFieldOperators.h: Likewise. * Field/VectorFieldOperators.h: Likewise. * Pooma/PETE/PoomaClass.in: Remove ConstArray. * Pooma/PETE/PoomaDynamicArray.in: Likewise. * Pooma/PETE/PoomaField.in: Remove ConstField. Add MakeReturn. * Pooma/PETE/PoomaFieldVector.in: Likewise. * Pooma/PETE/PoomaNewField.in: Remove this file. * Pooma/PETE/PoomaNewFieldVector.in: Likewise. * Pooma/PETE/PoomaOps.in: Prefix abs with 'std'. * Pooma/PETE/PoomaVectorClass.in: Remove ConstArray. Tested by constructing new header files compiling Pooma library building Field tests using Linux and gcc 3.1 Approved by Stephen Smith Applied to mainline Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- Index: Field/FieldOperators.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Field/FieldOperators.h,v retrieving revision 1.4 diff -c -p -r1.4 FieldOperators.h *** Field/FieldOperators.h 2001/08/30 01:15:06 1.4 --- Field/FieldOperators.h 2001/09/12 01:04:26 *************** *** 13,23 **** --- 13,26 ---- // /////////////////////////////////////////////////////////////////////////////// + template class Field; #undef MakeReturn #define MakeReturn MakeFieldReturn + + template inline typename MakeReturn >::Leaf_t> >::Expression_t *************** where(const Field & c,const T2 *** 1819,1825 **** --- 1822,1830 ---- CreateLeaf::make(f))); } + #undef MakeReturn + #endif // POOMA_FIELD_FIELDOPERATORS_H Index: Field/PoomaFieldOperators.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Field/PoomaFieldOperators.h,v retrieving revision 1.8 diff -c -p -r1.8 PoomaFieldOperators.h *** Field/PoomaFieldOperators.h 2001/08/30 01:15:06 1.8 --- Field/PoomaFieldOperators.h 2001/09/12 01:04:26 *************** Tensor *** 23,28 **** --- 23,29 ---- symmetrize(const Tensor &x); #endif + template class Field; #undef MakeReturn *************** NE(const T1 & l,const Field & *** 1096,1102 **** --- 1097,1105 ---- #ifdef PETE_ALLOW_SCALAR_SHIFT #endif // PETE_ALLOW_SCALAR_SHIFT + #undef MakeReturn + #endif // POOMA_FIELD_POOMAFIELDOPERATORS_H Index: Field/VectorFieldOperators.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Field/VectorFieldOperators.h,v retrieving revision 1.4 diff -c -p -r1.4 VectorFieldOperators.h *** Field/VectorFieldOperators.h 2001/08/30 01:15:07 1.4 --- Field/VectorFieldOperators.h 2001/09/12 01:04:26 *************** *** 15,25 **** --- 15,28 ---- // /////////////////////////////////////////////////////////////////////////////// + template class Field; #undef MakeReturn #define MakeReturn MakeFieldReturn + + template inline typename MakeReturn >::Leaf_t, *************** operator!=(const TinyMatrix (1) Added support for writing POOMA R1 compatible DiscField fileSets. This implementation is simplified in that it writes only a single fileSet from context 0. However, it works with both Arrays and multi-material/multi-centering Fields. The latter objects must fit entirely inside a record. This implementation is designed to work in parallel, but we haven't tested it on Nirvana. Once we verify correct parallel operation, I will put this on the Blanca branch. Jim is working on the reader and that is nearly done as well. (2) Added a class called CollectFromContexts that accumulates values from all contexts into an std::vector on a specified context. This data can be processed and then broadcast back to the other contexts. (3) Added a new compressed() free function, which is used to see if an engine is fully compressed. Added support for this to both Fields and Arrays. (4) Made it possible to assign a Field with 1 sub-field to an Array. (5) Added free functions---numMaterials(x), centeringSize(x), subField(x, m, c)---where x is either a Field or Array. These adapters allow one to write code that will work with both Arrays and Fields. This was tested using CodeWarrior Pro 7 under MacOS X. It was reviewed by Jim Crotinger. I will do further testing under Linux with GCC and KCC and fix any problems I encounter. Scott -------------- next part -------------- (1) Added support for writing POOMA R1 compatible DiscField fileSets. This implementation is simplified in that it writes only a single fileSet from context 0. However, it works with both Arrays and multi-material/multi-centering Fields. The latter objects must fit entirely inside a record. This implementation is designed to work in parallel, but we haven't tested it on Nirvana. Once we verify correct parallel operation, I will put this on the Blanca branch. Jim is working on the reader and that is nearly done as well. (2) Added a class called CollectFromContexts that accumulates values from all contexts into an std::vector on a specified context. This data can be processed and then broadcast back to the other contexts. (3) Added a new compressed() free function, which is used to see if an engine is fully compressed. Added support for this to both Fields and Arrays. (4) Made it possible to assign a Field with 1 sub-field to an Array. (5) Added free functions---numMaterials(x), centeringSize(x), subField(x, m, c)---where x is either a Field or Array. These adapters allow one to write code that will work with both Arrays and Fields. This was tested using CodeWarrior Pro 7 under MacOS X. It was reviewed by Jim Crotinger. I will do further testing under Linux with GCC and KCC and fix any problems I encounter. Scott -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep132001.1.patch Type: application/applefile Size: 499 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep132001.1.patch Type: application/octet-stream Size: 13312 bytes Desc: not available URL: From scotth at proximation.com Fri Sep 14 21:21:29 2001 From: scotth at proximation.com (Scott Haney) Date: Fri, 14 Sep 2001 15:21:29 -0600 Subject: Minor changes to FileSetWriter Message-ID: Found when testing with KCC. Scott -------------- next part -------------- Found when testing with KCC. Scott -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep142001.1.patch Type: application/applefile Size: 499 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep142001.1.patch Type: application/octet-stream Size: 1608 bytes Desc: not available URL: From oldham at codesourcery.com Fri Sep 14 22:40:33 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Fri, 14 Sep 2001 15:40:33 -0700 Subject: Patch: Fix Array Layout_t Regressions Message-ID: <20010914154033.A23540@codesourcery.com> Yesterday, src/Array/Array.h was modified using an unannounced patch, attached for your information. Nightly Pooma regression tests performed using QMTest showed src/Array/tests/array_test{19,18,14,23,20,15} subsequently failed. This patch fixes these regressions by ensuring Layout_t is available for all Array engine specializations. 2001-09-14 Jeffrey D. Oldham * Array/Array.h (class Array): Add Layout_t typedef. * Engine/IndirectionEngine.h (Engine<...,IndirectionTag>): Likewise. * Engine/Stencil.h (Engine<...,StencilEngine>): Likewise. * Engine/UserFunction.h (Engine<...,UserFunctionEngine>): Fix spelling mistake in comments. Add Layout_t typedef. Tested on sequential Linux using gcc3.1 by compiling Pooma library and Array tests Approved by Stephen Smith Applied to mainline Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- Index: Array/Array.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Array/Array.h,v retrieving revision 1.143 diff -c -p -r1.143 Array.h *** Array/Array.h 2001/09/13 23:22:55 1.143 --- Array/Array.h 2001/09/14 22:37:00 *************** public: *** 1429,1434 **** --- 1429,1435 ---- typedef typename Engine_t::Element_t Element_t; typedef typename Engine_t::ElementRef_t ElementRef_t; typedef typename Engine_t::Domain_t Domain_t; + typedef typename Engine_t::Layout_t Layout_t; enum { dimensions = Engine_t::dimensions }; enum { rank = Engine_t::dimensions }; Index: Engine/IndirectionEngine.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Engine/IndirectionEngine.h,v retrieving revision 1.22 diff -c -p -r1.22 IndirectionEngine.h *** Engine/IndirectionEngine.h 2001/03/28 22:33:15 1.22 --- Engine/IndirectionEngine.h 2001/09/14 22:37:01 *************** public: *** 85,90 **** --- 85,91 ---- typedef typename A1::Element_t Element_t; typedef typename A1::ElementRef_t ElementRef_t; typedef typename A2::Domain_t Domain_t; + typedef DomainLayout Layout_t; typedef typename A1::Engine_t Engine1_t; typedef typename A2::Engine_t Engine2_t; Index: Engine/Stencil.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Engine/Stencil.h,v retrieving revision 1.43 diff -c -p -r1.43 Stencil.h *** Engine/Stencil.h 2001/07/02 20:11:29 1.43 --- Engine/Stencil.h 2001/09/14 22:37:02 *************** public: *** 262,267 **** --- 262,268 ---- typedef Engine This_t; typedef This_t Engine_t; typedef Interval Domain_t; + typedef DomainLayout Layout_t; typedef T Element_t; typedef ErrorType ElementRef_t; typedef typename Expression::Engine_t ExprEngine_t; Index: Engine/UserFunction.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Engine/UserFunction.h,v retrieving revision 1.27 diff -c -p -r1.27 UserFunction.h *** Engine/UserFunction.h 2000/12/12 15:53:23 1.27 --- Engine/UserFunction.h 2001/09/14 22:37:02 *************** struct UserFunctionEngine *** 120,126 **** // // Typedefs for the tag, element types, domain and dimensions. // Operator() with integers to evaluate elements quickly. ! // Operator() with a doman to subset. // Accessor for the domain. // //----------------------------------------------------------------------------- --- 120,126 ---- // // Typedefs for the tag, element types, domain and dimensions. // Operator() with integers to evaluate elements quickly. ! // Operator() with a domain to subset. // Accessor for the domain. // //----------------------------------------------------------------------------- *************** public: *** 138,143 **** --- 138,144 ---- typedef Engine This_t; typedef This_t Engine_t; typedef typename Expression::Domain_t Domain_t; + typedef typename Expression::Layout_t Layout_t; typedef T Element_t; typedef ErrorType ElementRef_t; typedef typename Expression::Engine_t ExprEngine_t; -------------- next part -------------- Index: Array.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Array/Array.h,v retrieving revision 1.142 retrieving revision 1.143 diff -c -p -r1.142 -r1.143 *** Array.h 2001/09/13 20:56:17 1.142 --- Array.h 2001/09/13 23:22:55 1.143 *************** public: *** 1818,1823 **** --- 1818,1831 ---- } //--------------------------------------------------------------------------- + // Returns the Array's layout. + + inline typename Engine_t::Layout_t layout() const + { + return engine_m.layout(); + } + + //--------------------------------------------------------------------------- // View-creation operations. These operator() functions take one or more // sub-domains, which combine to form a domain with dimensionality identical // to the rank of the array. Views based on up to 7 subdomains are supported. *************** struct ElementProperties< Array Yesterday, Scott Haney added the IO directory. This patch adds the makefile infrastructure to include the files in the Pooma library and to compile the IO regression tests. 2001-09-14 Jeffrey D. Oldham * subdir.mk: Add IO directory to collection. * IO/FileSetWriter.h (FileSetWriter::write): Add missing 'typename's. * IO/include.mk: New file. * IO/objfile.mk: Likewise. * IO/tests/include.mk: Likewise. * IO/tests/makefile: Likewise. Tested on sequential Linux using gcc3.1 by compiling Pooma library and IO tests Approved by Stephen Smith Applied to mainline Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- Index: subdir.mk =================================================================== RCS file: /home/pooma/Repository/r2/src/subdir.mk,v retrieving revision 1.19 diff -c -p -r1.19 subdir.mk *** subdir.mk 2001/08/30 01:14:57 1.19 --- subdir.mk 2001/09/14 22:05:56 *************** NEXTDIR := Engine *** 45,50 **** --- 45,54 ---- include $(THISDIR)/$(NEXTDIR)/include.mk THISDIR :=$(firstword $(DIR_LIST)) + NEXTDIR := IO + include $(THISDIR)/$(NEXTDIR)/include.mk + THISDIR :=$(firstword $(DIR_LIST)) + NEXTDIR := Layout include $(THISDIR)/$(NEXTDIR)/include.mk THISDIR :=$(firstword $(DIR_LIST)) Index: IO/FileSetWriter.h =================================================================== RCS file: /home/pooma/Repository/r2/src/IO/FileSetWriter.h,v retrieving revision 1.3 diff -c -p -r1.3 FileSetWriter.h *** IO/FileSetWriter.h 2001/09/14 21:20:27 1.3 --- IO/FileSetWriter.h 2001/09/14 22:05:59 *************** void FileSetWriter::write(Subject & *** 271,279 **** // Create an array to receive the data. Make this // remote (owned by the I/O context) and compressible. ! Array > a; a.engine() = ! Engine > (ioContext_m, d); // Assign to the array to get the data. One might be able --- 271,279 ---- // Create an array to receive the data. Make this // remote (owned by the I/O context) and compressible. ! Array > a; a.engine() = ! Engine > (ioContext_m, d); // Assign to the array to get the data. One might be able Index: IO/include.mk =================================================================== RCS file: include.mk diff -N include.mk *** /dev/null Tue May 5 14:32:27 1998 --- include.mk Fri Sep 14 16:05:59 2001 *************** *** 0 **** --- 1,53 ---- + # Generated by mm.pl: Wed Mar 11 22:10:45 MST 1998 + # ACL:license + # ---------------------------------------------------------------------- + # This software and ancillary information (herein called "SOFTWARE") + # called POOMA (Parallel Object-Oriented Methods and Applications) is + # made available under the terms described here. The SOFTWARE has been + # approved for release with associated LA-CC Number LA-CC-98-65. + # + # Unless otherwise indicated, this SOFTWARE has been authored by an + # employee or employees of the University of California, operator of the + # Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with + # the U.S. Department of Energy. The U.S. Government has rights to use, + # reproduce, and distribute this SOFTWARE. The public may copy, distribute, + # prepare derivative works and publicly display this SOFTWARE without + # charge, provided that this Notice and any statement of authorship are + # reproduced on all copies. Neither the Government nor the University + # makes any warranty, express or implied, or assumes any liability or + # responsibility for the use of this SOFTWARE. + # + # If SOFTWARE is modified to produce derivative works, such modified + # SOFTWARE should be clearly marked, so as not to confuse it with the + # version available from LANL. + # + # For more information about POOMA, send e-mail to pooma at acl.lanl.gov, + # or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. + # ---------------------------------------------------------------------- + # ACL:license + + + # Wrap make components from SHARED_ROOT and the current directory in the + # proper order so that variables like ODIR have the correct directory-specific + # value at the right moment. See the included files for details of what they + # are doing. This file should NOT be manually edited. + + # Set NEXTDIR, THISDIR and DIR_LIST + include $(SHARED_ROOT)/include1.mk + + # Include list of subdirectories to process + -include $(THISDIR)/subdir.mk + + # Set list of object files, relative to ODIR + -include $(THISDIR)/objfile.mk + + # Remove current dir from DIR_LIST + DIR_LIST :=$(filter-out $(firstword $(DIR_LIST)), $(DIR_LIST)) + + + # ACL:rcsinfo + # ---------------------------------------------------------------------- + # $RCSfile: include.mk,v $ $Author: oldham $ + # $Revision: 1.1 $ $Date: 2001/08/30 01:15:07 $ + # ---------------------------------------------------------------------- + # ACL:rcsinfo Index: IO/objfile.mk =================================================================== RCS file: objfile.mk diff -N objfile.mk *** /dev/null Tue May 5 14:32:27 1998 --- objfile.mk Fri Sep 14 16:05:59 2001 *************** *** 0 **** --- 1,49 ---- + # Generated by mm.pl: Wed Mar 11 22:10:45 MST 1998 + # ACL:license + # ---------------------------------------------------------------------- + # This software and ancillary information (herein called "SOFTWARE") + # called POOMA (Parallel Object-Oriented Methods and Applications) is + # made available under the terms described here. The SOFTWARE has been + # approved for release with associated LA-CC Number LA-CC-98-65. + # + # Unless otherwise indicated, this SOFTWARE has been authored by an + # employee or employees of the University of California, operator of the + # Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with + # the U.S. Department of Energy. The U.S. Government has rights to use, + # reproduce, and distribute this SOFTWARE. The public may copy, distribute, + # prepare derivative works and publicly display this SOFTWARE without + # charge, provided that this Notice and any statement of authorship are + # reproduced on all copies. Neither the Government nor the University + # makes any warranty, express or implied, or assumes any liability or + # responsibility for the use of this SOFTWARE. + # + # If SOFTWARE is modified to produce derivative works, such modified + # SOFTWARE should be clearly marked, so as not to confuse it with the + # version available from LANL. + # + # For more information about POOMA, send e-mail to pooma at acl.lanl.gov, + # or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. + # ---------------------------------------------------------------------- + # ACL:license + + # Set ODIR, PROJECT_INCLUDES, UNIQUE + include $(SHARED_ROOT)/include2.mk + + # Object file list. + # This list is user-editable. + # Be sure that $(UNIQUE)_OBJS is set, even if set to empty. + + $(UNIQUE)_OBJS := \ + $(ODIR)/DiskLayout.cmpl.o + + LOCAL_OBJS += $($(UNIQUE)_OBJS) + + # Set rules for the ODIR directory + include $(SHARED_ROOT)/compilerules.mk + + # ACL:rcsinfo + # ---------------------------------------------------------------------- + # $RCSfile: objfile.mk,v $ $Author: oldham $ + # $Revision: 1.1 $ $Date: 2001/08/30 01:15:07 $ + # ---------------------------------------------------------------------- + # ACL:rcsinfo Index: IO/tests/include.mk =================================================================== RCS file: include.mk diff -N include.mk *** /dev/null Tue May 5 14:32:27 1998 --- include.mk Fri Sep 14 16:05:59 2001 *************** *** 0 **** --- 1,59 ---- + # Generated by mm.pl: Mon Mar 9 13:58:39 MST 1998 + # ACL:license + # ---------------------------------------------------------------------- + # This software and ancillary information (herein called "SOFTWARE") + # called POOMA (Parallel Object-Oriented Methods and Applications) is + # made available under the terms described here. The SOFTWARE has been + # approved for release with associated LA-CC Number LA-CC-98-65. + # + # Unless otherwise indicated, this SOFTWARE has been authored by an + # employee or employees of the University of California, operator of the + # Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with + # the U.S. Department of Energy. The U.S. Government has rights to use, + # reproduce, and distribute this SOFTWARE. The public may copy, distribute, + # prepare derivative works and publicly display this SOFTWARE without + # charge, provided that this Notice and any statement of authorship are + # reproduced on all copies. Neither the Government nor the University + # makes any warranty, express or implied, or assumes any liability or + # responsibility for the use of this SOFTWARE. + # + # If SOFTWARE is modified to produce derivative works, such modified + # SOFTWARE should be clearly marked, so as not to confuse it with the + # version available from LANL. + # + # For more information about POOMA, send e-mail to pooma at acl.lanl.gov, + # or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. + # ---------------------------------------------------------------------- + # ACL:license + + + # Wrap make components from SHARED_ROOT and the current directory in the + # proper order so that variables like ODIR have the correct directory-specific + # value at the right moment. See the included files for details of what they + # are doing. This file should NOT be manually edited. + + # Set NEXTDIR, THISDIR and DIR_LIST + include $(SHARED_ROOT)/include1.mk + + # Include list of subdirectories to process + -include $(THISDIR)/subdir.mk + + # Set ODIR, PROJECT_INCLUDES, UNIQUE + include $(SHARED_ROOT)/include2.mk + + # Set list of object files, relative to ODIR + -include $(THISDIR)/objfile.mk + + # Set rules for the ODIR directory + include $(SHARED_ROOT)/compilerules.mk + + # Remove current dir from DIR_LIST + DIR_LIST :=$(filter-out $(firstword $(DIR_LIST)), $(DIR_LIST)) + + + # ACL:rcsinfo + # ---------------------------------------------------------------------- + # $RCSfile: include.mk,v $ $Author: oldham $ + # $Revision: 1.3 $ $Date: 2001/08/30 01:15:19 $ + # ---------------------------------------------------------------------- + # ACL:rcsinfo Index: IO/tests/makefile =================================================================== RCS file: makefile diff -N makefile *** /dev/null Tue May 5 14:32:27 1998 --- makefile Fri Sep 14 16:05:59 2001 *************** *** 0 **** --- 1,74 ---- + # Generated by mm.pl: Mon Mar 9 13:58:39 MST 1998 + # ACL:license + # ---------------------------------------------------------------------- + # This software and ancillary information (herein called "SOFTWARE") + # called POOMA (Parallel Object-Oriented Methods and Applications) is + # made available under the terms described here. The SOFTWARE has been + # approved for release with associated LA-CC Number LA-CC-98-65. + # + # Unless otherwise indicated, this SOFTWARE has been authored by an + # employee or employees of the University of California, operator of the + # Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with + # the U.S. Department of Energy. The U.S. Government has rights to use, + # reproduce, and distribute this SOFTWARE. The public may copy, distribute, + # prepare derivative works and publicly display this SOFTWARE without + # charge, provided that this Notice and any statement of authorship are + # reproduced on all copies. Neither the Government nor the University + # makes any warranty, express or implied, or assumes any liability or + # responsibility for the use of this SOFTWARE. + # + # If SOFTWARE is modified to produce derivative works, such modified + # SOFTWARE should be clearly marked, so as not to confuse it with the + # version available from LANL. + # + # For more information about POOMA, send e-mail to pooma at acl.lanl.gov, + # or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. + # ---------------------------------------------------------------------- + # ACL:license + + # This file is user-editable + + PROJECT_ROOT = $(shell cd ../../..; pwd) + include $(PROJECT_ROOT)/config/head.mk + + PASS=APP + + TSTOPTS = + + ########################### + + default:: tests + + run: run_tests + cat *.out + + run_tests: tests + $(ODIR)/DiskLayoutTest1 $(TSTOPTS) 1>DiskLayoutTest1.out 2>&1 + $(ODIR)/FileSetWriter $(TSTOPTS) 1>FileSetWriter.out 2>&1 + + tests:: $(ODIR)/DiskLayoutTest1 $(ODIR)/FileSetWriter + + ########################### + + .PHONY: DiskLayoutTest1 + + DiskLayoutTest1: $(ODIR)/DiskLayoutTest1 + + $(ODIR)/DiskLayoutTest1: $(ODIR)/DiskLayoutTest1.o + $(LinkToSuite) + + .PHONY: FileSetWriter + + FileSetWriter: $(ODIR)/FileSetWriter + + $(ODIR)/FileSetWriter: $(ODIR)/FileSetWriter.o + $(LinkToSuite) + + include $(SHARED_ROOT)/tail.mk + + # ACL:rcsinfo + # ---------------------------------------------------------------------- + # $RCSfile: makefile,v $ $Author: oldham $ + # $Revision: 1.22 $ $Date: 2001/08/30 01:15:19 $ + # ---------------------------------------------------------------------- + # ACL:rcsinfo From jcrotinger at mac.com Sat Sep 15 00:19:17 2001 From: jcrotinger at mac.com (James Crotinger) Date: Fri, 14 Sep 2001 18:19:17 -0600 Subject: [pooma-cvs] CVS update: pooma In-Reply-To: <20010914212028.23920.qmail@merlin.codesourcery.com> Message-ID: Scott, VTune doesn't have open, read, and write. Shouldn't we just go with either C++ or C I/O? It'll be more portable. I'm using streams in the read stuff. Jim on 9/14/01 3:20 PM, haney at merlin.codesourcery.com at haney at merlin.codesourcery.com wrote: > > Date: Friday September 14, 2001 @ 15:20 > Author: haney > > Update of /home/pooma/Repository/r2/src/IO > In directory ns1.codesourcery.com:/tmp/cvs-serv23915/r2/src/IO > > Modified Files: > FileSetWriter.h > Log Message: > Fixed two problems found with KCC: (1) was using #if > defined(POOMA_HAS_BINARY_OPEN_MODE) rather than #if POOMA_HAS_BINARY_OPEN_MODE > and (2) the DFOffsetData struct cannot be local to a function and be used as > an argument to a templated function. Moved this out into the private part of > the class body. From oldham at codesourcery.com Mon Sep 17 16:40:23 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Mon, 17 Sep 2001 09:40:23 -0700 Subject: [pooma-dev] Re: [pooma-cvs] CVS update: pooma In-Reply-To: ; from jcrotinger@mac.com on Fri, Sep 14, 2001 at 06:19:17PM -0600 References: <20010914212028.23920.qmail@merlin.codesourcery.com> Message-ID: <20010917094023.A8451@codesourcery.com> On Fri, Sep 14, 2001 at 06:19:17PM -0600, James Crotinger wrote: > Scott, > > VTune doesn't have open, read, and write. Shouldn't we just go with either > C++ or C I/O? It'll be more portable. I'm using streams in the read stuff. Hello Scott and Jim, The files produced by running test programs have strange permissions on my Linux machine: --w--wx--T 1 oldham csl 1920 Sep 17 08:59 fset.data* --w--wx--T 1 oldham csl 292 Sep 17 08:59 fset.layout* -rw-rw---- 1 oldham csl 208 Sep 17 08:59 fset.meta --w--wx--T 1 oldham csl 712 Sep 17 08:59 fset.offset* On Irix: --w---x--- 1 joldham pooma 292 Sep 17 10:38 fset.layout* --w---x--- 1 joldham pooma 712 Sep 17 10:38 fset.offset* --w---x--- 1 joldham pooma 1920 Sep 17 10:38 fset.data* -rw-r--r-- 1 joldham pooma 208 Sep 17 10:38 fset.meta Thanks, Jeffrey D. Oldham oldham at codesourcery.com From scotth at proximation.com Mon Sep 17 16:42:35 2001 From: scotth at proximation.com (Scott Haney) Date: Mon, 17 Sep 2001 10:42:35 -0600 Subject: [pooma-dev] Re: [pooma-cvs] CVS update: pooma In-Reply-To: <20010917094023.A8451@codesourcery.com> Message-ID: Hi Jeffrey, I'm sure I know what is wrong. Should be trivial to fix. Scott On Monday, September 17, 2001, at 10:40 AM, Jeffrey Oldham wrote: > On Fri, Sep 14, 2001 at 06:19:17PM -0600, James Crotinger wrote: >> Scott, >> >> VTune doesn't have open, read, and write. Shouldn't we just go with >> either >> C++ or C I/O? It'll be more portable. I'm using streams in the read >> stuff. > > Hello Scott and Jim, > > The files produced by running test programs have strange > permissions on my Linux machine: > > --w--wx--T 1 oldham csl 1920 Sep 17 08:59 fset.data* > --w--wx--T 1 oldham csl 292 Sep 17 08:59 fset.layout* > -rw-rw---- 1 oldham csl 208 Sep 17 08:59 fset.meta > --w--wx--T 1 oldham csl 712 Sep 17 08:59 fset.offset* > > On Irix: > > --w---x--- 1 joldham pooma 292 Sep 17 10:38 fset.layout* > --w---x--- 1 joldham pooma 712 Sep 17 10:38 fset.offset* > --w---x--- 1 joldham pooma 1920 Sep 17 10:38 fset.data* > -rw-r--r-- 1 joldham pooma 208 Sep 17 10:38 fset.meta > > Thanks, > Jeffrey D. Oldham > oldham at codesourcery.com From oldham at codesourcery.com Mon Sep 17 23:29:21 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Mon, 17 Sep 2001 16:29:21 -0700 Subject: Failing Pooma Regression Tests Message-ID: <200109172329.f8HNTLB09352@oz.codesourcery.com> Following is a list of Pooma tests that fail. If you have spare time, please try fixing one of them. Thanks, Jeffrey D. Oldham oldham at codesourcery.com --- TEST RUN STATISTICS ------------------------------------------------------ 187 tests total 168 ( 90%) tests PASS 19 ( 10%) tests FAIL --- TESTS THAT DID NOT PASS -------------------------------------------------- field.localpatch : FAIL Unexpected exit code, err. particles.particle_test1 : FAIL Unexpected exit code, err. particles.particle_test3 : FAIL Unexpected exit code, err. particles.particle_test2 : FAIL Unexpected exit code, err. connect.lux.bytefield : FAIL Unexpected exit code, err. array.scalaradvection : FAIL Unexpected exit code, err. connect.lux.lux_test1 : FAIL Unexpected exit code, err. connect.lux.lux_test2 : FAIL Unexpected exit code, err. particles.particle_bench1 : FAIL Unexpected exit code, err. field.positions : FAIL Unexpected exit code, err. particles.interpolate : FAIL Unexpected exit code, err. array.scalaradvectionxb : FAIL Unexpected exit code, err. databrowser.testdatabrowser : FAIL Unexpected exit code, err. particles.particle_test4 : FAIL Unexpected exit code, err. particles.particle_bench4 : FAIL Unexpected exit code, err. particles.particle_bench2 : FAIL Unexpected exit code, err. particles.particle_bench3 : FAIL Unexpected exit code, err. field.crossbox : FAIL Unexpected exit code, err. dynamicarray.dynamic_array_test5 : FAIL Unexpected exit code, err. From scotth at proximation.com Tue Sep 18 14:48:06 2001 From: scotth at proximation.com (Scott Haney) Date: Tue, 18 Sep 2001 08:48:06 -0600 Subject: Minor changes to FileSetWriter.h Message-ID: Replaced UNIX output with the use of std::ostream. This should fix the portability problems that Jim reported with respect to windows and also the file permission problems that Jeffrey reported. This patch was tested with CodeWarrior Pro 7 and reviewed by Jim Crotinger. -------------- next part -------------- Replaced UNIX output with the use of std::ostream. This should fix the portability problems that Jim reported with respect to windows and also the file permission problems that Jeffrey reported. This patch was tested with CodeWarrior Pro 7 and reviewed by Jim Crotinger. -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep182001.1.patch Type: application/applefile Size: 499 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep182001.1.patch Type: application/octet-stream Size: 8867 bytes Desc: not available URL: From oldham at codesourcery.com Tue Sep 18 17:18:31 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Tue, 18 Sep 2001 10:18:31 -0700 Subject: [pooma-dev] Minor changes to FileSetWriter.h In-Reply-To: <200109181450.HAA17014@oz.codesourcery.com>; from scotth@proximation.com on Tue, Sep 18, 2001 at 08:48:06AM -0600 References: <200109181450.HAA17014@oz.codesourcery.com> Message-ID: <20010918101831.A12767@codesourcery.com> On Tue, Sep 18, 2001 at 08:48:06AM -0600, Scott Haney wrote: > Replaced UNIX output with the use of std::ostream. This should fix the > portability problems that Jim reported with respect to windows and also > the file permission problems that Jeffrey reported. > > This patch was tested with CodeWarrior Pro 7 and reviewed by Jim > Crotinger. For Linux, the file permissions are fine: -rw-rw---- 1 oldham csl 27 Sep 18 10:17 DiskLayoutTest1.out -rw-rw---- 1 oldham csl 25 Sep 18 10:17 FileSetWriter.out -rw-rw---- 1 oldham csl 292 Sep 18 10:17 RTestData.layout -rw-rw---- 1 oldham csl 292 Sep 18 10:17 TestData.layout -rw-rw---- 1 oldham csl 1920 Sep 18 10:17 fset.data -rw-rw---- 1 oldham csl 292 Sep 18 10:17 fset.layout -rw-rw---- 1 oldham csl 208 Sep 18 10:17 fset.meta -rw-rw---- 1 oldham csl 712 Sep 18 10:17 fset.offset For Irix6.5, the file permissions for some are still strange: -rw-r--r-- 1 joldham pooma 25 Sep 18 11:16 FileSetWriter.out --w---x--- 1 joldham pooma 1920 Sep 18 11:16 fset.data* --w---x--- 1 joldham pooma 712 Sep 18 11:16 fset.offset* --w---x--- 1 joldham pooma 292 Sep 18 11:16 fset.layout* -rw-r--r-- 1 joldham pooma 208 Sep 18 11:16 fset.meta -rw-r--r-- 1 joldham pooma 27 Sep 18 11:16 DiskLayoutTest1.out -rw-r--r-- 1 joldham pooma 292 Sep 18 11:16 RTestData.layout -rw-r--r-- 1 joldham pooma 292 Sep 18 11:16 TestData.layout Thanks, Jeffrey D. Oldham oldham at codesourcery.com From scotth at proximation.com Tue Sep 18 19:42:13 2001 From: scotth at proximation.com (Scott Haney) Date: Tue, 18 Sep 2001 13:42:13 -0600 Subject: More IO tweaks Message-ID: Apparently, the offset in the .offset file refers to elements not bytes. Also, added make targets for some tests and made it so IO .cmpl.cpp files are compiled into the library. This patch was tested under Linux with KCC and reviewed by Jim Crotinger. -------------- next part -------------- Apparently, the offset in the .offset file refers to elements not bytes. Also, added make targets for some tests and made it so IO .cmpl.cpp files are compiled into the library. This patch was tested under Linux with KCC and reviewed by Jim Crotinger. -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep182001.2.patch Type: application/applefile Size: 499 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep182001.2.patch Type: application/octet-stream Size: 4219 bytes Desc: not available URL: From qmtrack at ns1.codesourcery.com Wed Sep 19 03:17:36 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 19 Sep 2001 03:17:36 -0000 Subject: [QMTrack] new issue test2 Message-ID: <20010919031736.3544.qmail@merlin.codesourcery.com> The issue test2 was created by guest on 2001-09-18 21:17 MDT. Issue ID: test2 Modification Time: 2001-09-18 21:17 MDT Modifying User: guest State: submitted Summary: Test email linkage. Categories: None Discussion: None Description: In theory, this defect should go to the pooma-dev mailing list. Assignee: guest From mark at codesourcery.com Wed Sep 19 03:41:44 2001 From: mark at codesourcery.com (Mark Mitchell) Date: Tue, 18 Sep 2001 20:41:44 -0700 Subject: Achievements Message-ID: <1930000.1000870904@localhost> Gentlemen -- You have implemented many wonderous things in the past few months. Scott and I would like to announce our progress to a wider audience, and encourage more participation and users to join in. Here is a draft note that I've prepared. I'd appreciate your thoughts on places that it could be posted (newsgroups? mailing lists?) and on its content. -- Mark Mitchell mark at codesourcery.com CodeSourcery, LLC http://www.codesourcery.com ANNOUNCEMENT: POOMA TOOLKIT DEVELOPMENT ======================================= The POOMA (Parallel Object Oriented Methods and Applications) toolkit is an open-source C++ toolkit that allows the creation of high-performance parallel numerical applications. POOMA works at a very high level of abstraction; a few lines of POOMA code is often equivalent to hundreds or thousands of lines of C or Fortran code. Version 2.4 (currently under development) contains exciting new features, including: - Dependent fields A dependent field automatically, but lazily, updates itself whenever an independent field changes. Using dependent fields, you can all code the equations that apply to a particular domain, but only evaluate the ones you need, when you need them. - Centering support POOMA now contains support for cell-centered, edge-centered, and face-centered fields, and allows you to convert from one kind of field to another. If you would like to download the current development version of POOMA, or a previous stable version, visit: http://pooma.codesourcery.com On that site, you will also find information about how to join the POOMA mailing lists, and even participate in the development of POOMA. Enjoy! From mark at codesourcery.com Thu Sep 20 12:52:41 2001 From: mark at codesourcery.com (Mark Mitchell) Date: Thu, 20 Sep 2001 05:52:41 -0700 Subject: pooma.codesourcery.com Message-ID: <9040000.1000990361@gandalf.codesourcery.com> I believe the machine is now in working order again. I apologize for the outage. -- Mark Mitchell mark at codesourcery.com CodeSourcery, LLC http://www.codesourcery.com From mitchell at mail.codesourcery.com Thu Sep 20 17:16:04 2001 From: mitchell at mail.codesourcery.com (mitchell at mail.codesourcery.com) Date: 20 Sep 2001 17:16:04 -0000 Subject: SSH Configuration Message-ID: <20010920171604.7858.qmail@mail.codesourcery.com> Folks -- The SSH daemon got upgraded as part of the system rebuilding. If you're connecting with OpenSSH, you may have to add `-1' to the SSH command-line. To test that things are working, you can do: ssh -v -1 pooma at pooma.codesourcery.com You should be able to connect, and you should see messages indicating success; the key is: debug1: Entering interactive session If you see that, even though nothing happens, it's working. Then, try connecting with CVS; you will probably need to set CVS_RSH to `ssh -1' or edit your .ssh/config to indicate that you want to connect to pooma.codesourcery.com with SSH version 1. If you still have trouble, send me an email. Thanks, -- Mark From jcrotinger at proximation.com Thu Sep 20 17:20:07 2001 From: jcrotinger at proximation.com (James Crotinger) Date: Thu, 20 Sep 2001 11:20:07 -0600 Subject: [pooma-dev] SSH Configuration Message-ID: Mark, Something's not working. Here's what I get: $ ssh -v -1 -l crotinger pooma.codesourcery.com OpenSSH_2.9p2, SSH protocols 1.5/2.0, OpenSSL 0x0090600f debug1: Reading configuration data /home/Administrator/.ssh/config debug1: Seeding random number generator debug1: Rhosts Authentication disabled, originating port will not be trusted. debug1: restore_uid debug1: ssh_connect: getuid 500 geteuid 500 anon 1 debug1: Connecting to pooma.codesourcery.com [206.168.99.1] port 22. debug1: temporarily_use_uid: 500/513 (e=500) debug1: restore_uid debug1: temporarily_use_uid: 500/513 (e=500) debug1: restore_uid debug1: Connection established. debug1: identity file /home/Administrator/.ssh/identity type 0 debug1: Remote protocol version 1.99, remote software version OpenSSH_2.5.2p2 debug1: match: OpenSSH_2.5.2p2 pat ^OpenSSH_2\.5\.[012] debug1: Local version string SSH-1.5-OpenSSH_2.9p2 debug1: Waiting for server public key. debug1: Received server public key (768 bits) and host key (1024 bits). debug1: Host 'pooma.codesourcery.com' is known and matches the RSA1 host key. debug1: Found key in /home/Administrator/.ssh/known_hosts:3 debug1: Encryption type: 3des debug1: Sent encrypted session key. debug1: Installing crc compensation attack detector. debug1: Received encrypted confirmation. debug1: Trying RSA authentication with key 'jimc at jimc-5000' debug1: Server refused our key. debug1: Doing password authentication. crotinger at pooma.codesourcery.com's password: Jim > -----Original Message----- > From: mitchell at mail.codesourcery.com > [mailto:mitchell at mail.codesourcery.com] > Sent: Thursday, September 20, 2001 11:16 AM > To: pooma-dev at pooma.codesourcery.com > Subject: [pooma-dev] SSH Configuration > > > > Folks -- > > The SSH daemon got upgraded as part of the system rebuilding. If > you're connecting with OpenSSH, you may have to add `-1' to the > SSH command-line. > > To test that things are working, you can do: > > ssh -v -1 pooma at pooma.codesourcery.com > > You should be able to connect, and you should see messages indicating > success; the key is: > > debug1: Entering interactive session > > If you see that, even though nothing happens, it's working. Then, > try connecting with CVS; you will probably need to set CVS_RSH to > `ssh -1' or edit your .ssh/config to indicate that you want to > connect to pooma.codesourcery.com with SSH version 1. > > If you still have trouble, send me an email. > > Thanks, > > -- Mark > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mark at codesourcery.com Thu Sep 20 17:34:42 2001 From: mark at codesourcery.com (Mark Mitchell) Date: Thu, 20 Sep 2001 10:34:42 -0700 Subject: [pooma-dev] SSH Configuration In-Reply-To: Message-ID: <9990000.1001007282@warlock.codesourcery.com> --On Thursday, September 20, 2001 11:20:07 AM -0600 James Crotinger wrote: > > Mark, > > Something's not working. Here's what I get: It looks like you're using a key that the server doesn't know about. (At least from the comment; it looks like your key has a comment of jimc at jimc-5000.) There are three keys on the server: environment="LOGNAME=crotinger",no-port-forwarding,no-X11-forwarding,no-age nt-forwarding,command="/usr/bin/cvs server" 1024 33 963537931349533818801551200332883775152201395968716417145479383412959325269 200389706617746879223007360862138544262690538175851536443654119824192470939 149456142641274905838436130490564362487022644529842349701941462054016428084 001877688063627206934976764890925386166981473518024207399701649432912311083 99769511 Code Sourcery key pair environment="LOGNAME=crotinger",no-port-forwarding,no-X11-forwarding,no-age nt-forwarding,command="/usr/bin/cvs server" 1024 35 141118432998008675844636566703367295816217865717631645978481197146807893072 099581866521062369307610835663426062938961297910484939180685048747725610249 047130782114375915195524441852190407275603562831646867101301114072813266430 773290749107602087792812757956197160286650459381450135127330771480206362411 388431461 jimc at jimc environment="LOGNAME=crotinger",no-port-forwarding,no-X11-forwarding,no-age nt-forwarding,command="/usr/bin/cvs server" 1024 35 130678146393567873320543224824980953113550666251790240292893260038555487629 270301612999003550811289612952655950161347643899889309298577481929941557116 060763002649070631141286486013689651201577368438659164619127701170804554477 018520208116808762650454052397437035418078454987796725918354669694687911481 889352079 jac at nirvana -- Mark Mitchell mark at codesourcery.com CodeSourcery, LLC http://www.codesourcery.com From stephens at proximation.com Thu Sep 20 17:53:34 2001 From: stephens at proximation.com (Stephen Smith) Date: Thu, 20 Sep 2001 11:53:34 -0600 Subject: [pooma-dev] SSH Configuration Message-ID: I tried setting CVS_RSH to "ssh -1" and putting a line in ~/.ssh/config. The first had the problem that it couldn't find the file named "ssh -1" and adding a line in the config didn't stop it from trying ssh2. What finally worked is a hack: I set CVS_RSH to ssh1 and created a file ssh1: #!/bin/bash ssh -1 $@ Now I can access the repository again. Stephen -----Original Message----- From: James Crotinger [mailto:jcrotinger at proximation.com] Sent: Thursday, September 20, 2001 11:20 AM To: 'mitchell at mail.codesourcery.com'; pooma-dev at pooma.codesourcery.com Subject: RE: [pooma-dev] SSH Configuration Mark, Something's not working. Here's what I get: $ ssh -v -1 -l crotinger pooma.codesourcery.com OpenSSH_2.9p2, SSH protocols 1.5/2.0, OpenSSL 0x0090600f debug1: Reading configuration data /home/Administrator/.ssh/config debug1: Seeding random number generator debug1: Rhosts Authentication disabled, originating port will not be trusted. debug1: restore_uid debug1: ssh_connect: getuid 500 geteuid 500 anon 1 debug1: Connecting to pooma.codesourcery.com [206.168.99.1] port 22. debug1: temporarily_use_uid: 500/513 (e=500) debug1: restore_uid debug1: temporarily_use_uid: 500/513 (e=500) debug1: restore_uid debug1: Connection established. debug1: identity file /home/Administrator/.ssh/identity type 0 debug1: Remote protocol version 1.99, remote software version OpenSSH_2.5.2p2 debug1: match: OpenSSH_2.5.2p2 pat ^OpenSSH_2\.5\.[012] debug1: Local version string SSH-1.5-OpenSSH_2.9p2 debug1: Waiting for server public key. debug1: Received server public key (768 bits) and host key (1024 bits). debug1: Host 'pooma.codesourcery.com' is known and matches the RSA1 host key. debug1: Found key in /home/Administrator/.ssh/known_hosts:3 debug1: Encryption type: 3des debug1: Sent encrypted session key. debug1: Installing crc compensation attack detector. debug1: Received encrypted confirmation. debug1: Trying RSA authentication with key 'jimc at jimc-5000' debug1: Server refused our key. debug1: Doing password authentication. crotinger at pooma.codesourcery.com's password: Jim > -----Original Message----- > From: mitchell at mail.codesourcery.com > [ mailto:mitchell at mail.codesourcery.com ] > Sent: Thursday, September 20, 2001 11:16 AM > To: pooma-dev at pooma.codesourcery.com > Subject: [pooma-dev] SSH Configuration > > > > Folks -- > > The SSH daemon got upgraded as part of the system rebuilding. If > you're connecting with OpenSSH, you may have to add `-1' to the > SSH command-line. > > To test that things are working, you can do: > > ssh -v -1 pooma at pooma.codesourcery.com > > You should be able to connect, and you should see messages indicating > success; the key is: > > debug1: Entering interactive session > > If you see that, even though nothing happens, it's working. Then, > try connecting with CVS; you will probably need to set CVS_RSH to > `ssh -1' or edit your .ssh/config to indicate that you want to > connect to pooma.codesourcery.com with SSH version 1. > > If you still have trouble, send me an email. > > Thanks, > > -- Mark > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jcrotinger at proximation.com Thu Sep 20 18:37:05 2001 From: jcrotinger at proximation.com (James Crotinger) Date: Thu, 20 Sep 2001 12:37:05 -0600 Subject: [pooma-dev] SSH Configuration Message-ID: > > > > Mark, > > > > Something's not working. Here's what I get: > > It looks like you're using a key that the server doesn't know about. > (At least from the comment; it looks like your key has a comment of > jimc at jimc-5000.) Nothing has changed on this end - that key has always had the comment jimc at jimc-5000. The one on your machine with the comment "jimc at jimc" (below) is the right key. Did you create new identity.pub files or something - looks like the name just got truncated, perhaps by a tool not expecting a hyphen in the name or something? Jim > > environment="LOGNAME=crotinger",no-port-forwarding,no-X11-forw > arding,no-age > nt-forwarding,command="/usr/bin/cvs server" 1024 35 > 14111843299800867584463656670336729581621786571763164597848119 > 7146807893072 > 09958186652106236930761083566342606293896129791048493918068504 > 8747725610249 > 04713078211437591519552444185219040727560356283164686710130111 > 4072813266430 > 77329074910760208779281275795619716028665045938145013512733077 > 1480206362411 > 388431461 jimc at jimc > -- > Mark Mitchell mark at codesourcery.com > CodeSourcery, LLC http://www.codesourcery.com > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mark at codesourcery.com Thu Sep 20 18:44:56 2001 From: mark at codesourcery.com (Mark Mitchell) Date: Thu, 20 Sep 2001 11:44:56 -0700 Subject: [pooma-dev] SSH Configuration In-Reply-To: Message-ID: <21310000.1001011496@warlock.codesourcery.com> --On Thursday, September 20, 2001 12:37:05 PM -0600 James Crotinger wrote: > >> > >> > Mark, >> > >> > Something's not working. Here's what I get: >> >> It looks like you're using a key that the server doesn't know about. >> (At least from the comment; it looks like your key has a comment of >> jimc at jimc-5000.) > > Nothing has changed on this end - that key has always had the comment > jimc at jimc-5000. The one on your machine with the comment "jimc at jimc" > (below) is the right key. Did you create new identity.pub files or > something - looks like the name just got truncated, perhaps by a tool not > expecting a hyphen in the name or something? Weird; no, it's the exact same files. I don't know how the comment got truncated, but the key looks fine. Oh, I thought of something else: do your CVS Root/Repository files show `pooma at pooma.codesourcery.com' or `crotinger at pooma.codesourcery.com'? The former is right, but we might have done the latter briefly when we were starting up. If need be, we can go back to that, or you can just write over the files. Or call me at (916) 791-8304 and we'll fix it. -- Mark Mitchell mark at codesourcery.com CodeSourcery, LLC http://www.codesourcery.com From qmtrack at ns1.codesourcery.com Thu Sep 20 18:53:46 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 20 Sep 2001 18:53:46 -0000 Subject: [QMTrack] modification to issue test Message-ID: <20010920185346.9023.qmail@mail.codesourcery.com> The issue test was changed by oldham on 2001-09-20 12:53 MDT. The following fields were modified: State: active From qmtrack at ns1.codesourcery.com Thu Sep 20 18:54:14 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 20 Sep 2001 18:54:14 -0000 Subject: [QMTrack] modification to issue test Message-ID: <20010920185414.9068.qmail@mail.codesourcery.com> The issue test was changed by oldham on 2001-09-20 12:54 MDT. The following fields were modified: State: resolved Discussion: On 2001-09-20 12:54 MDT, oldham wrote: Mark Mitchell fixed all the problems! From qmtrack at ns1.codesourcery.com Thu Sep 20 18:54:59 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 20 Sep 2001 18:54:59 -0000 Subject: [QMTrack] modification to issue test2 Message-ID: <20010920185459.9114.qmail@mail.codesourcery.com> The issue test2 was changed by oldham on 2001-09-20 12:54 MDT. The following fields were modified: State: active From qmtrack at ns1.codesourcery.com Thu Sep 20 18:55:21 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 20 Sep 2001 18:55:21 -0000 Subject: [QMTrack] modification to issue test2 Message-ID: <20010920185521.9149.qmail@mail.codesourcery.com> The issue test2 was changed by oldham on 2001-09-20 12:55 MDT. The following fields were modified: State: resolved Discussion: On 2001-09-20 12:55 MDT, oldham wrote: It worked!! From jcrotinger at proximation.com Thu Sep 20 19:24:13 2001 From: jcrotinger at proximation.com (James Crotinger) Date: Thu, 20 Sep 2001 13:24:13 -0600 Subject: [pooma-dev] SSH Configuration Message-ID: > Oh, I thought of something else: do your CVS Root/Repository files > show `pooma at pooma.codesourcery.com' or > `crotinger at pooma.codesourcery.com'? > The former is right, but we might have done the latter briefly when > we were starting up. If need be, we can go back to that, or you can > just write over the files. Fortunately, I just have ":ext:crotinger:" in the CVS/Root, deferring the true identity to the .ssh/config file. This did have "User crotinger", which worked until yesterday. I changed this to "pooma" and that now seems to work. Now I need to try that nirvana key as well. Thanks, Jim -------------- next part -------------- An HTML attachment was scrubbed... URL: From oldham at CS.Stanford.EDU Thu Sep 20 20:25:10 2001 From: oldham at CS.Stanford.EDU (Jeffrey David Oldham) Date: Thu, 20 Sep 2001 13:25:10 -0700 Subject: PATCH: Remove old field engines Message-ID: <20010920132510.A11859@Xenon.stanford.edu> Fields with meshes replaced fields with geometries. Remove the old files. 2001-09-20 Jeffrey D. Oldham * FieldEngine.Lagrangian.h: Remove this file which uses fields with geometries. * FieldEngine.NoGeometry.h: Likewise. * FieldEngine.UR.h: Likewise. * FieldEngineApply.h: Likewise. * FieldEngineBase.h: Likewise. Tested on sequential Linux using gcc 3.1 by compiling Pooma library and Field tests Approved by Stephen Smith Applied to mainline Thanks, Jeffrey D. Oldham oldham at cs.stanford.edu -------------- next part -------------- Index: FieldEngine.Lagrangian.h =================================================================== RCS file: FieldEngine.Lagrangian.h diff -N FieldEngine.Lagrangian.h *** /tmp/cvsBYwNoC Thu Sep 20 12:08:14 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,275 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - //----------------------------------------------------------------------------- - // Classes: - // Lagrangian - // FieldEngine, T, EngineTag> - //----------------------------------------------------------------------------- - - #ifndef POOMA_FIELD_FIELDENGINE_LAGRANGIAN_H - #define POOMA_FIELD_FIELDENGINE_LAGRANGIAN_H - - //----------------------------------------------------------------------------- - // Overview: - // - // FieldEngine - //----------------------------------------------------------------------------- - - //----------------------------------------------------------------------------- - // Includes: - //----------------------------------------------------------------------------- - - #include "Field/FieldEngine/FieldEngineBase.h" - - #include "Array/Array.h" - #include "CoordinateSystems/Cartesian.h" - #include "Domain/Interval.h" - #include "Engine/ConstantFunctionEngine.h" - #include "Engine/EnginePatch.h" - #include "Engine/IndexFunctionEngine.h" - #include "Layout/INode.h" - #include "PETE/PETE.h" - #include "Pooma/Indices.h" - #include "Tiny/Vector.h" - #include "Utilities/PAssert.h" - - - //----------------------------------------------------------------------------- - // Forward Declarations: - //----------------------------------------------------------------------------- - - template class FieldEngine; - - - //----------------------------------------------------------------------------- - // Full Description: - // - // Lagrangian tag class. - //----------------------------------------------------------------------------- - - template > - struct Lagrangian; - - - //----------------------------------------------------------------------------- - // Full Description: - // - // FieldEngine, specialized for a rudimentary Lagrangian mesh. - //----------------------------------------------------------------------------- - - template - class FieldEngine, T, EngineTag> : - public FieldEngineBase - { - public: - - //--------------------------------------------------------------------------- - // Exported typedefs and enumerations. - - // This class. - - typedef FieldEngine, T, EngineTag> - This_t; - - // Our base class. - - typedef FieldEngineBase Base_t; - - // The geometry tag. - - typedef Lagrangian GeometryTag_t; - - // The engine tag. - - typedef EngineTag EngineTag_t; - - // The coordinate system. - - typedef CoordinateSystem CoordinateSystem_t; - - // The domain type. - - typedef typename Base_t::Domain_t Domain_t; - - // The number of indices required to select a point in this mesh. - - enum { dimensions = Dim }; - - // The type used to represent a point in the mesh. - - typedef Vector PointType_t; - - // Our engine type. - - typedef Engine Engine_t; - - // Our layout type. - - typedef typename Engine_t::Layout_t Layout_t; - - - //--------------------------------------------------------------------------- - // Constructors. We don't use default arguments for the origin and spacings - // because that produces ambiguities. - - template - FieldEngine(const BaseInitializer &baseInit, - const Layout_t &layout, - const PointType_t &origin, - const PointType_t &spacings) - : Base_t(baseInit, layout), - positions_m(layout) - { - positions_m = origin + iota(growRight(totalCellDomain(), 1) - - physicalCellDomain().firsts()) * spacings; - } - - // Copy constructor. - - FieldEngine(const This_t &model) - : Base_t(model), - positions_m(model.positions_m) - { } - - // Copy constructor (except for updaters). - - FieldEngine(const This_t &model, const Pooma::Updaters::DontCopyUpdaters &d) - : Base_t(model, d), - positions_m(model.positions_m) - { } - - // Sub-field constructor. - - FieldEngine(const This_t &model, const int &iSubField) - : Base_t(model, iSubField), - positions_m(model.positions_m) - { } - - // Domain view constructors. - - template - FieldEngine(const FieldEngine &model, - const Domain_t &d) - : Base_t(model, d), - positions_m(model.vertexPositions()(translateToVertexDomain(d))) - { } - - template - FieldEngine(const FieldEngine &model, - const INode &inode) - : Base_t(model, inode), - positions_m(model.vertexPositions()(inode)) - { } - - // Note there is no change to the vertex positions, because EngineView - // currently is only used to support RemoteView operations which don't - // change the domain. - template - FieldEngine(const FieldEngine &model, - const EngineView &engineView) - : Base_t(model, engineView), - positions_m(forEach(model.vertexPositions(), engineView, TreeCombine())) - { } - - // Expression-engine constructor. - - FieldEngine(const Engine &e) - : Base_t(e), - positions_m(referenceField().fieldEngine().vertexPositions()) - { } - - // Patch constructor. - - template - FieldEngine(const FieldEngine &model, - const FieldEnginePatch &p) - : Base_t(model, p), - positions_m(model.vertexPositions().patchLocal(p.patch_m)) - { } - - - //--------------------------------------------------------------------------- - // Copy assignment operator (shallow). - - This_t &operator=(const This_t &rhs); - - - //--------------------------------------------------------------------------- - // Empty destructor is fine. - - ~FieldEngine() { } - - - //--------------------------------------------------------------------------- - // Return the vertex centers. - - typedef Array VertexPositionsArray_t; - - const VertexPositionsArray_t &vertexPositions() const - { - return positions_m; - } - - private: - - VertexPositionsArray_t positions_m; - - }; - - template - struct LeafFunctor< - FieldEngine, T, EngineTag>, - ExpressionApply > - { - typedef Lagrangian GeometryTag_t; - typedef FieldEngine Subject_t; - typedef typename Subject_t::Engine_t Engine_t; - typedef LeafFunctor > LeafFunctor_t; - typedef int Type_t; - - inline static - Type_t apply(const Subject_t &fieldEngine, const ExpressionApply &tag) - { - forEach(fieldEngine.vertexPositions(), tag, NullCombine()); - - return LeafFunctor_t::apply(fieldEngine.engine(), tag); - } - }; - - #endif // POOMA_FIELD_FIELDENGINE_LAGRANGIAN_H - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: FieldEngine.Lagrangian.h,v $ $Author: oldham $ - // $Revision: 1.1 $ $Date: 2001/08/30 01:15:10 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo - --- 0 ---- Index: FieldEngine.NoGeometry.h =================================================================== RCS file: FieldEngine.NoGeometry.h diff -N FieldEngine.NoGeometry.h *** /tmp/cvsbKOjVk Thu Sep 20 12:08:14 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,348 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - //----------------------------------------------------------------------------- - // Classes: - // NoGeometry - // FieldEngine - //----------------------------------------------------------------------------- - - #ifndef POOMA_FIELD_FIELDENGINE_NOGEOMETRY_H - #define POOMA_FIELD_FIELDENGINE_NOGEOMETRY_H - - //----------------------------------------------------------------------------- - // Overview: - // - // FieldEngine - //----------------------------------------------------------------------------- - - //----------------------------------------------------------------------------- - // Includes: - //----------------------------------------------------------------------------- - #include "Field/FieldEngine/FieldEngineBase.h" - - #include "Array/Array.h" - #include "Domain/Interval.h" - #include "Engine/ConstantFunctionEngine.h" - #include "Engine/IndexFunctionEngine.h" - #include "Layout/INode.h" - #include "Field/Updater/UpdaterList.h" - #include "Tiny/Vector.h" - #include "Utilities/PAssert.h" - - - //----------------------------------------------------------------------------- - // Forward Declarations: - //----------------------------------------------------------------------------- - - template class ComponentWrapper; - template class Engine; - template class FieldEngine; - - - //----------------------------------------------------------------------------- - // NoGeometry tag class. - //----------------------------------------------------------------------------- - - template - struct NoGeometry; - - - //----------------------------------------------------------------------------- - // FieldEngine, specialized for no geometry. This is really just a field - // wrapper of a single engine. - //----------------------------------------------------------------------------- - - template - class FieldEngine, T, EngineTag> - { - public: - - //--------------------------------------------------------------------------- - // Exported typedefs and enumerations. - - // This class. - - typedef FieldEngine, T, EngineTag> This_t; - - // Our base class. - - typedef FieldEngineBase Base_t; - - // The geometry tag. - - typedef NoGeometry GeometryTag_t; - - // The engine tag. - - typedef EngineTag EngineTag_t; - - // The domain type. - - typedef typename Base_t::Domain_t Domain_t; - - // The number of indices required to select a point in this mesh. - - enum { dimensions = Dim }; - - // Our engine type. - - typedef Engine Engine_t; - - // Our layout type. - - typedef typename Engine_t::Layout_t Layout_t; - - // Our guard layers type. - - typedef GuardLayers GuardLayers_t; - - - //--------------------------------------------------------------------------- - // Constructors. - // - // There is no sub-field constructor because this field-engine can't have - // subfields. - - // Default constructor. - FieldEngine() - : engine_m(Pooma::NoInit()), - guards_m(0), - updaters_m() - { } - - // Copy constructor. - - FieldEngine(const This_t &model) - : engine_m(model.engine_m), - guards_m(model.guards_m), - updaters_m(model.updaters_m) - { } - - // Domain view constructor, including INodes and non-interval - // views. - - template - FieldEngine(const FieldEngine &model, - const Domain &d) - : engine_m(NewEngineEngine::Engine_t, Domain>::apply(model.engine(), d), - NewEngineDomain::Engine_t, Domain>::apply(model.engine(), d)), - updaters_m(model.updaters()) - { } - - // Sub-field constructor. Needs to exist, but shouldn't be called since we - // have no subfields. - - template - FieldEngine(const FieldEngine &model, const int &) - : engine_m(model.engine()) - { - PError("Can't create a sub-field of a FieldEngine."); - } - - // Expression-engine constructor. - - FieldEngine(const Engine &e) - : engine_m(e) - { - } - - // Patch constructor. - - template - FieldEngine(const FieldEngine &model, - const FieldEnginePatch &p) - : engine_m(engineFunctor(model.engine(), p)), - updaters_m(model.updaters()) - { } - - // ComponentView constructor. The geometry for the model should be the - // same since a component view simply mutates the elements. - - template - FieldEngine(const FieldEngine &model, - const ComponentWrapper &c) - : engine_m(model.engine(), c.components()), - updaters_m(model.updaters()) - { } - - // EngineView version used for remote computations. - - template - FieldEngine(const FieldEngine &model, - const EngineView &engineView) - : engine_m(leafFunctor(model.engine(), engineView)), - updaters_m(model.updaters()) - { } - - //--------------------------------------------------------------------------- - // Copy assignment operator (disabled). - - This_t &operator=(const This_t &rhs); - - - //--------------------------------------------------------------------------- - // Empty destructor is fine. - - ~FieldEngine() { } - - - //--------------------------------------------------------------------------- - // Accessors and modifiers. - - inline int numSubFields() const - { - return 0; - } - - const Loc offsets() const - { - // Always vert-centered... - - return Loc(1); - } - - Engine_t &engine() - { - return engine_m; - } - - const Engine_t &engine() const - { - return engine_m; - } - - const UpdaterList &updaters() const - { - return updaters_m; - } - - UpdaterList &updaters() - { - return updaters_m; - } - - const GuardLayers_t &guardLayers() const - { - return guards_m; - } - - - //--------------------------------------------------------------------------- - // Domain accessor functions. - // - // This field-engine always has vert-centering and the total domain is - // given by the engine. - - inline const Domain_t physicalCellDomain() const - { - return shrinkRight(physicalDomain(), 1); - } - - inline Domain_t totalCellDomain() const - { - return shrinkRight(engine_m.domain(), 1); - } - - Domain_t physicalDomain() const - { - return shrink(engine_m.domain(), guards_m); - } - - Domain_t totalDomain() const - { - return engine_m.domain(); - } - - Domain_t physicalDomain(int iSubField) const - { - // This field engine cannot have subfields. - PAssert(iSubField == 0); - return physicalDomain(); - } - - Domain_t totalDomain(int iSubField) const - { - // This field engine cannot have subfields. - PAssert(iSubField == 0); - return engine_m.domain(); - } - - - //--------------------------------------------------------------------------- - // Make a distinct copy of this fieldEngineBase. - - template - void makeOwnCopy(const Subject &s) - { - // Deepen the copies of the engine & updaters list. - - engine().makeOwnCopy(); - updaters().makeOwnCopy(s); - } - - private: - - Engine_t engine_m; - GuardLayers_t guards_m; - UpdaterList updaters_m; - }; - - // This version of field engine requires a specialization of ExpressionApply, - // since the default version assume a field engine that uses FieldEngineBase. - - template - struct LeafFunctor< - FieldEngine, T, EngineTag>, - ExpressionApply > - { - typedef NoGeometry GeometryTag_t; - typedef FieldEngine Subject_t; - typedef typename Subject_t::Engine_t Engine_t; - typedef LeafFunctor > LeafFunctor_t; - typedef int Type_t; - - inline static - Type_t apply(const Subject_t &fieldEngine, const ExpressionApply &tag) - { - return LeafFunctor_t::apply(fieldEngine.engine(), tag); - } - }; - - - #endif // POOMA_FIELD_FIELDENGINE_NOGEOMETRY_H - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: FieldEngine.NoGeometry.h,v $ $Author: oldham $ - // $Revision: 1.1 $ $Date: 2001/08/30 01:15:10 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo - --- 0 ---- Index: FieldEngine.UR.h =================================================================== RCS file: FieldEngine.UR.h diff -N FieldEngine.UR.h *** /tmp/cvs4HJ4r3 Thu Sep 20 12:08:14 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,377 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - //----------------------------------------------------------------------------- - // Classes: - // UniformRectilinear - // FieldEngine - //----------------------------------------------------------------------------- - - #ifndef POOMA_FIELD_FIELDENGINE_UR_H - #define POOMA_FIELD_FIELDENGINE_UR_H - - //----------------------------------------------------------------------------- - // Overview: - // - // FieldEngine - //----------------------------------------------------------------------------- - - //----------------------------------------------------------------------------- - // Includes: - //----------------------------------------------------------------------------- - - #include "Field/FieldEngine/FieldEngineBase.h" - - #include "Array/Array.h" - #include "CoordinateSystems/Cartesian.h" - #include "Domain/Interval.h" - #include "Engine/ConstantFunctionEngine.h" - #include "Engine/IndexFunctionEngine.h" - #include "Layout/INode.h" - #include "Tiny/Vector.h" - #include "Utilities/PAssert.h" - - - //----------------------------------------------------------------------------- - // Forward Declarations: - //----------------------------------------------------------------------------- - - template class FieldEngine; - template class ComponentWrapper; - - - //----------------------------------------------------------------------------- - // Full Description: - // - // UniformRectilinear tag class. - //----------------------------------------------------------------------------- - - template > - struct UniformRectilinear; - - - //----------------------------------------------------------------------------- - // Full Description: - // - // FieldEngine, specialized for uniform rectilinear meshes. - //----------------------------------------------------------------------------- - - template - class FieldEngine, T, EngineTag> - : public FieldEngineBase - { - public: - - //--------------------------------------------------------------------------- - // Exported typedefs and enumerations. - - // This class. - - typedef - FieldEngine, T, EngineTag> - This_t; - - // Our base class. - - typedef FieldEngineBase Base_t; - - // The geometry tag. - - typedef UniformRectilinear GeometryTag_t; - - // The engine tag. - - typedef EngineTag EngineTag_t; - - // The coordinate system. - - typedef CoordinateSystem CoordinateSystem_t; - - // The domain type. - - typedef typename Base_t::Domain_t Domain_t; - - // The number of indices required to select a point in this mesh. - - enum { dimensions = Dim }; - - // The type used to represent a point in the mesh. - - typedef Vector PointType_t; - - // Our engine type. - - typedef Engine Engine_t; - - // Our layout type. - - typedef typename Engine_t::Layout_t Layout_t; - - - //--------------------------------------------------------------------------- - // Constructors. We don't use default arguments for the origin and spacings - // because that produces ambiguities. - - FieldEngine() - : Base_t() - { } - - template - FieldEngine(const BaseInitializer &baseInit, - const Layout_t &layout, - const PointType_t &origin, - const PointType_t &spacings) - : Base_t(baseInit, layout), - origin_m(origin), - spacings_m(spacings) - { } - - // Version that constructs a field with a new centering but based on the - // same geometry. - - template - FieldEngine(const BaseInitializer &baseInit, - const FieldEngine &model) - : Base_t(baseInit, model), - origin_m(model.origin()), - spacings_m(model.spacings()) - { - } - - // Copy constructor. - - FieldEngine(const This_t &model) - : Base_t(model), - origin_m(model.origin_m), - spacings_m(model.spacings_m) - { } - - // Copy constructor (except for updaters). - - FieldEngine(const This_t &model, const Pooma::Updaters::DontCopyUpdaters &d) - : Base_t(model, d), - origin_m(model.origin_m), - spacings_m(model.spacings_m) - { } - - // Sub-field constructor. - - template - FieldEngine(const FieldEngine &model, - const int &iSubField) - : Base_t(model, iSubField), - origin_m(model.origin()), - spacings_m(model.spacings()) - { } - - // Domain view constructor. - - template - FieldEngine(const FieldEngine &model, - const Domain_t &d) - : Base_t(model, d), - origin_m(model.origin()), - spacings_m(model.spacings()) - { - for (int i = 0; i < Dim; i++) - origin_m(i) += - (d[i].first() - model.physicalCellDomain()[i].first()) * - spacings_m(i); - } - - template - FieldEngine(const FieldEngine &model, - const INode &inode) - : Base_t(model, inode), - origin_m(model.origin()), - spacings_m(model.spacings()) - { - for (int i = 0; i < Dim; i++) - origin_m(i) += - (inode.domain()[i].first() - model.physicalCellDomain()[i].first()) * - spacings_m(i); - } - - template - FieldEngine(const FieldEngine &model, - const EngineView &engineView) - : Base_t(model, engineView), - origin_m(model.origin()), - spacings_m(model.spacings()) - { - // Will need to fix up origin_m if EnginView replaces INode<> view. - } - - // Expression-engine constructor. - - FieldEngine(const Engine &e) - : Base_t(e) - { - origin_m = referenceField().fieldEngine().origin(); - spacings_m = referenceField().fieldEngine().spacings(); - } - - // Patch constructor. - - template - FieldEngine(const FieldEngine &model, - const FieldEnginePatch &p) - : Base_t(model, p), - spacings_m(model.spacings()) - { - for (int i = 0; i < Dim; i++) - origin_m(i) += - (physicalCellDomain()[i].first() - - model.physicalCellDomain()[i].first()) * - spacings_m(i); - } - - // ComponentView constructor. The geometry for the model should be the - // same since a component view simply mutates the elements. - - template - FieldEngine(const FieldEngine &model, - const ComponentWrapper &c) - : Base_t(model, c), - origin_m(model.origin()), - spacings_m(model.spacings()) - { } - - - //--------------------------------------------------------------------------- - // Copy assignment operator (shallow). - - This_t &operator=(const This_t &rhs) - { - origin_m = rhs.origin(); - spacings_m = rhs.spacings(); - initialize(rhs); - return *this; - } - - //--------------------------------------------------------------------------- - // Empty destructor is fine. - - ~FieldEngine() { } - - - //--------------------------------------------------------------------------- - // Accessors. - - inline const PointType_t &origin() const { return origin_m; } - inline const PointType_t &spacings() const { return spacings_m; } - - - //--------------------------------------------------------------------------- - // Return an index-function-engine-based array that can return the positions - // of the geometric center of a cell's faces. - - class FaceCenterFunctor - { - public: - - FaceCenterFunctor() { } - - FaceCenterFunctor(const PointType_t &origin, const PointType_t &spacings, - const Domain_t &pcd, int orientation) - : origin_m(origin), spacings_m(spacings) - { - for (int i = 0; i < PointType_t::dimensions; i++) - { - if (i != orientation) - origin_m(i) += 0.5 * spacings_m(i); - origin_m(i) -= pcd[i].first() * spacings_m(i); - } - } - - PointType_t operator()(int i0) const - { - return origin_m + PointType_t(i0) * spacings_m; - } - - PointType_t operator()(int i0, int i1) const - { - return origin_m + PointType_t(i0, i1) * spacings_m; - } - - PointType_t operator()(int i0, int i1, int i2) const - { - return origin_m + PointType_t(i0, i1, i3) * spacings_m; - } - - private: - - PointType_t origin_m, spacings_m; - }; - - typedef Array > - FaceCentersArray_t; - - FaceCentersArray_t faceCenters(int orientation, const Domain_t &d) const; - - private: - - PointType_t origin_m, spacings_m; - - }; - - - /////////////////////////////////////////////////////////////////////////////// - // - // Non-inline members. - // - /////////////////////////////////////////////////////////////////////////////// - - //----------------------------------------------------------------------------- - // Return the face centers. - //----------------------------------------------------------------------------- - - template - typename - FieldEngine, T, EngineTag>:: - FaceCentersArray_t - FieldEngine, T, EngineTag>:: - faceCenters(int orientation, const Domain_t &d) const - { - FaceCentersArray_t array(d); - FaceCenterFunctor functor(origin_m, spacings_m, physicalCellDomain(), - orientation); - array.engine().setFunctor(functor); - return array; - } - - #endif // POOMA_FIELD_FIELDENGINE_UR_H - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: FieldEngine.UR.h,v $ $Author: oldham $ - // $Revision: 1.1 $ $Date: 2001/08/30 01:15:10 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo - --- 0 ---- Index: FieldEngineApply.h =================================================================== RCS file: FieldEngineApply.h diff -N FieldEngineApply.h *** /tmp/cvsALibZL Thu Sep 20 12:08:14 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,34 **** - - - template - struct LeafFunctor, EngineApply > - { - typedef Field Subject_t; - typedef typename Subject_t::FieldEngine_t FieldEngine_t; - typedef LeafFunctor > LeafFunctor_t; - typedef typename LeafFunctor_t::Type_t Type_t; - - inline static - Type_t apply(const Subject_t &field, - const EngineApply &tag) - { - return LeafFunctor_t::apply(field.fieldEngine(), tag); - } - }; - - template - struct LeafFunctor, EngineApply > - { - typedef FieldEngine Subject_t; - typedef typename Subject_t::Engine_t Engine_t; - typedef LeafFunctor > LeafFunctor_t; - typedef typename LeafFunctor_t::Type_t Type_t; - - inline static - Type_t apply(const Subject_t &fieldEngine, - const EngineApply &tag) - { - return LeafFunctor_t::apply(fieldEngine.engine(), tag); - } - }; - --- 0 ---- Index: FieldEngineBase.h =================================================================== RCS file: FieldEngineBase.h diff -N FieldEngineBase.h *** /tmp/cvsu3ikwu Thu Sep 20 12:08:14 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,589 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - //----------------------------------------------------------------------------- - // Classes: - // FieldEngineBase - //----------------------------------------------------------------------------- - - #ifndef POOMA_FIELD_FIELDENGINE_FIELDENGINEBASE_H - #define POOMA_FIELD_FIELDENGINE_FIELDENGINEBASE_H - - //----------------------------------------------------------------------------- - // Overview: - // - // FieldEngineBase and related classes. POOMA supports a flexible form - // of "centering" that allows a hierarchy of multiple centering points per - // cell. The centering information, managed by the FieldEngineBase - // class, is initialized using a flexible set of functors. - //----------------------------------------------------------------------------- - - //----------------------------------------------------------------------------- - // Includes: - //----------------------------------------------------------------------------- - - #include "Domain/Interval.h" - #include "Domain/Loc.h" - #include "Domain/Shrink.h" - #include "Layout/INode.h" - #include "Layout/GuardLayers.h" - #include "Utilities/PAssert.h" - #include "Utilities/RefCountedBlockPtr.h" - #include "Engine/EnginePatch.h" - #include "Engine/EngineFunctor.h" - #include "Field/Updater/UpdaterList.h" - #include "Field/FieldEngine/FieldEnginePatch.h" - - //----------------------------------------------------------------------------- - // Forward declarations: - //----------------------------------------------------------------------------- - - template class Engine; - template class ComponentWrapper; - - - // ---------------------------------------------------------------------------- - // FieldEngineBaseData holds offset information about the centering along - // with a copy of the engine containing the data associated with the centering. - // ---------------------------------------------------------------------------- - - template - class FieldEngineBaseData : public RefCounted - { - public: - - template - FieldEngineBaseData(const Loc &offsets, - const Initializer &init) - : offsets_m(offsets), - engine_m(init) - { } - - template - FieldEngineBaseData(const Loc &offsets, - const Initializer &init, const UpdaterList &l) - : offsets_m(offsets), - engine_m(init), - updaters_m(l) - { } - - template - FieldEngineBaseData(const Loc &offsets, const Engine &e, - const Domain &d, const UpdaterList &l) - : offsets_m(offsets), - engine_m(NewEngineEngine::apply(e, d), - NewEngineDomain::apply(e, d)), - updaters_m(l) - { } - - const Loc &offsets() const { return offsets_m; } - - const Engine &engine() const { return engine_m; } - Engine &engine() { return engine_m; } - - const UpdaterList &updaters() const { return updaters_m; } - UpdaterList &updaters() { return updaters_m; } - - private: - - Loc offsets_m; - Engine engine_m; - UpdaterList updaters_m; - }; - - - // ---------------------------------------------------------------------------- - // FieldEngineBase manages a hierarchy of engines, making it possible for - // FieldEngine specializations to implement geometry-specific behavior only. - // ---------------------------------------------------------------------------- - - template - class FieldEngineBase - { - public: - - //--------------------------------------------------------------------------- - // Exported typedefs and enumerations. - - typedef FieldEngineBase This_t; - typedef FieldEngineBaseData Data_t; - typedef Engine Engine_t; - typedef typename Engine_t::Domain_t Domain_t; - typedef typename Engine_t::Layout_t Layout_t; - typedef typename Engine_t::Element_t Element_t; - typedef typename Engine_t::ElementRef_t ElementRef_t; - enum { dimensions = Dim }; - typedef GuardLayers GuardLayers_t; - - - //--------------------------------------------------------------------------- - // Constructors. - - // Default constructor. - - FieldEngineBase() - : physicalCellDomain_m(Pooma::NoInit()), - guards_m(0) - { } - - // Layout constructor. Takes a layout appropriate for the contained - // engines and, based on the logic contained in the InitFunctor, sets - // up centering information and the engines. - - template - FieldEngineBase(const InitFunctor &f, const Layout_t &layout) - : physicalCellDomain_m(layout.domain()), - guards_m(layout.externalGuards()) - { - shrinkInPlace(physicalCellDomain_m, guards_m); - shrinkRightInPlace(physicalCellDomain_m, 1); - f.initialize(*this, layout); - } - - // Initialize with a new centering from a model. - - template - FieldEngineBase(const InitFunctor &f, - const FieldEngineBase &model) - : physicalCellDomain_m(model.physicalCellDomain()), - guards_m(model.guardLayers()) - { - f.initialize(*this, Pooma::NoInit()); - } - - // Copy constructor. - - FieldEngineBase(const This_t &model) - : subFields_m(model.subFields_m), - data_m(model.data_m), - physicalCellDomain_m(model.physicalCellDomain_m), - guards_m(model.guards_m) - { } - - // Sub-field view constructor. This is when we want to construct a view of - // one of the subFields in our top-level list. - - FieldEngineBase(const This_t &model, const int &iSubField) - : subFields_m(model.subFields_m[iSubField].subFields_m), - data_m(model.subFields_m[iSubField].data_m), - physicalCellDomain_m(model.physicalCellDomain_m), - guards_m(model.guards_m) - { } - - // View constructor. - - template - FieldEngineBase(const FieldEngineBase &model, - const Initializer &i) - { - initialize(*this, model, i); - } - - //--------------------------------------------------------------------------- - // Initialize functions. - - template - void initialize(const Loc &loc, const Initializer &init) - { - data_m = new Data_t(loc, init); - } - - template - void initialize(const Loc &loc, const Initializer &init, - const UpdaterList &l) - { - data_m = new Data_t(loc, init, l); - } - - template - void initialize(const Loc &loc, const Engine &e, const Domain &d, - const UpdaterList &l) - { - data_m = new Data_t(loc, e, d, l); - } - - void initialize(const This_t &model) - { - subFields_m = model.subFields_m; - data_m = model.data_m; - physicalCellDomain_m = model.physicalCellDomain_m; - guards_m = model.guards_m; - } - - template - void initialize(This_t &s, - const FieldEngineBase &model, const Domain_t &d) - { - int n = model.numSubFields(); - if (n == 0) - { - s.physicalCellDomain_m = shrinkRight(d - d.firsts(), - model.offsets()); - s.initialize(model.offsets(), model.engine(), d, model.updaters()); - } - else - { - s.physicalCellDomain_m = d - d.firsts(); - s.addSubFields(n); - for (int i = 0; i < n; i++) - initialize(s.subFields_m[i], model.subField(i), - model.subField(i).translateDomain(d)); - } - } - - template - void initialize(This_t &s, - const FieldEngineBase &model, const INode &i) - { - int n = model.numSubFields(); - if (n == 0) - { - s.physicalCellDomain_m = - shrinkRight(i.domain() - i.domain().firsts(), model.offsets()); - s.initialize(model.offsets(), model.engine(), i, model.updaters()); - } - else - { - s.physicalCellDomain_m = i.domain() - i.domain().firsts(); - s.addSubFields(n); - for (int j = 0; j < n; j++) - initialize(s.subFields_m[j], model.subField(j), - model.subField(j).translateDomain(i)); - } - } - - template - void initialize(This_t &s, - const FieldEngineBase &model, - const EngineView &ev) - { - typedef typename FieldEngineBase::Engine_t EngIn_t; - int n = model.numSubFields(); - if (n == 0) - { - s.physicalCellDomain_m = model.physicalCellDomain(); - s.guards_m = model.guardLayers(); - s.initialize(model.offsets(), - LeafFunctor >::apply(model.engine(), ev), - model.updaters()); - } - else - { - s.physicalCellDomain_m = model.physicalCellDomain(); - s.guards_m = model.guardLayers(); - s.addSubFields(n); - for (int i = 0; i < n; i++) - initialize(s.subFields_m[i], model.subField(i), ev); - } - } - - template - void initialize(This_t &s, - const FieldEngineBase &model, - const FieldEnginePatch &p) - { - PAssert(model.numSubFields() == 0); - s.initialize(model.offsets(), engineFunctor(model.engine(), - EnginePatch(p.patch_m))); - s.physicalCellDomain_m = shrinkRight(p.domain_m, model.offsets()); - s.guards_m = model.guardLayers(); - } - - template - void initialize(This_t &s, - const FieldEngineBase &model, - const ComponentWrapper &c) - { - int n = model.numSubFields(); - if (n == 0) - { - s.physicalCellDomain_m = model.physicalCellDomain(); - s.guards_m = model.guardLayers(); - s.initialize(model.offsets(), - Engine_t(model.engine(), c.components()), - model.updaters()); - } - else - { - s.physicalCellDomain_m = model.physicalCellDomain(); - s.guards_m = model.guardLayers(); - s.addSubFields(n); - for (int i = 0; i < n; i++) - initialize(s.subFields_m[i], model.subField(i), c); - } - } - - void initialize(This_t &s, const This_t &model, - const Pooma::Updaters::DontCopyUpdaters &d) - { - int n = model.numSubFields(); - s.physicalCellDomain_m = model.physicalCellDomain(); - s.guards_m = model.guardLayers(); - if (n == 0) - { - s.initialize(model.offsets(), model.engine()); - } - else - { - s.addSubFields(n); - for (int i = 0; i < n; i++) - initialize(s.subFields_m[i], model.subField(i), d); - } - } - - - //--------------------------------------------------------------------------- - // Accessors and modifiers. - - void addSubFields(int n) - { - PAssert(subFields_m.size() == 0); - - subFields_m.reserve(n); - subFields_m.resize(n); - for (int i = 0; i < n; i++) - { - subFields_m[i].physicalCellDomain_m = physicalCellDomain_m; - subFields_m[i].guards_m = guards_m; - } - } - - inline int numSubFields() const - { - return subFields_m.size(); - } - - This_t &subField(int i) - { - return subFields_m[i]; - } - - const This_t &subField(int i) const - { - return subFields_m[i]; - } - - const Loc &offsets() const - { - PAssert(data_m.isValid()); - return data_m->offsets(); - } - - Engine_t &engine() - { - PAssert(data_m.isValid()); - return data_m->engine(); - } - - const Engine_t &engine() const - { - PAssert(data_m.isValid()); - return data_m->engine(); - } - - const UpdaterList &updaters() const - { - PAssert(data_m.isValid()); - return data_m->updaters(); - } - - UpdaterList &updaters() - { - PAssert(data_m.isValid()); - return data_m->updaters(); - } - - const GuardLayers_t &guardLayers() const - { - return guards_m; - } - - GuardLayers_t &guardLayers() - { - return guards_m; - } - - - //--------------------------------------------------------------------------- - // Domain accessor functions. - - inline const Domain_t physicalCellDomain() const - { - return physicalCellDomain_m; - } - - inline Domain_t totalCellDomain() const - { - return grow(physicalCellDomain_m, guards_m); - } - - Domain_t physicalDomain(int iSubField) const - { - return subFields_m[iSubField]. - translateDomain(physicalCellDomain_m); - } - - Domain_t totalDomain(int iSubField) const - { - return subFields_m[iSubField]. - translateDomain(totalCellDomain()); - } - - Domain_t physicalDomain() const - { - return translateDomain(physicalCellDomain_m); - } - - Domain_t totalDomain() const - { - return translateDomain(totalCellDomain()); - } - - - //--------------------------------------------------------------------------- - // Make a distinct copy of this fieldEngineBase. - - template - void makeOwnCopy(const Subject &s) - { - // This only make sense if we have no subfields. - - PAssert(data_m.isValid()); - - // Create a new data block with shallow copies of the engine and the - // updaters. - - initialize(offsets(), engine(), updaters()); - - // Deepen the copies of the engine & updaters list. - - engine().makeOwnCopy(); - updaters().makeOwnCopy(s); - } - - - //--------------------------------------------------------------------------- - // Domain translation function. - - inline Domain_t - translateDomain(const Domain_t &d) const - { - if (subFields_m.size() == 0) - return growRight(d, offsets()); - else - return d; - } - - inline INode - translateDomain(const INode &inode) const - { - return INode(inode, translateDomain(inode.domain())); - } - - inline Domain_t - translateToVertexDomain(const Domain_t &d) const - { - if (subFields_m.size() == 0) - return d; - else - return growRight(d, 1); - } - - - private: - - RefCountedBlockPtr subFields_m; - RefCountedPtr data_m; - Domain_t physicalCellDomain_m; - GuardLayers_t guards_m; - }; - - template - struct LeafFunctor, - ExpressionApply > - { - typedef FieldEngineBase Subject_t; - typedef typename Subject_t::Engine_t Engine_t; - typedef LeafFunctor > LeafFunctor_t; - typedef int Type_t; - - inline static - Type_t apply(const Subject_t &fieldEngineBase, - const ExpressionApply &tag) - { - int n = fieldEngineBase.numSubFields(); - - if (n == 0) - { - LeafFunctor_t::apply(fieldEngineBase.engine(), tag); - } - else - { - int i; - for (i = 0; i < n; ++i) - { - apply(fieldEngineBase.subField(i), tag); - } - } - return 0; - } - }; - - // This function applies a generic thing to all the FieldEngineBase - // objects that contain an engine. - - template - void - applyThingToFieldEngineBase(FieldEngineBase &fieldEngineBase, - const Thing &thing) - { - int n = fieldEngineBase.numSubFields(); - - if (n == 0) - { - thing(fieldEngineBase); - } - else - { - int i; - for (i = 0; i < n; ++i) - { - applyThingToFieldEngineBase(fieldEngineBase.subField(i), thing); - } - } - } - - #endif // POOMA_FIELD_FIELDENGINE_FIELDENGINEBASE_H - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: FieldEngineBase.h,v $ $Author: oldham $ - // $Revision: 1.1 $ $Date: 2001/08/30 01:15:11 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- From oldham at cs.stanford.edu Thu Sep 20 22:28:31 2001 From: oldham at cs.stanford.edu (Jeffrey D. Oldham) Date: Thu, 20 Sep 2001 15:28:31 -0700 (PDT) Subject: Field/Updater Tests? Message-ID: <200109202228.PAA00869@theory-lab2.Stanford.EDU> Are there any src/Field/tests tests that test the Updater code? Thanks, Jeffrey D. Oldham oldham at cs.stanford.edu From wdn at lanl.gov Thu Sep 20 23:19:09 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Thu, 20 Sep 2001 17:19:09 -0600 Subject: KCC compile problem with pack (3/3) Message-ID: <200109202319.f8KNJA701386@saltydog.lanl.gov> Command exited with non-zero status 2 real 100.02 user 0.31 sys 0.04 mv: cannot stat `/scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/libphysicsbeta.so': No such file or directory make: *** [/scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/libphysicsbeta.so] Error 1 Command exited with non-zero status 2 real 113.45 user 3.87 sys 0.44 Compilation exited abnormally with code 2 at Thu Sep 20 16:59:17 From wdn at lanl.gov Thu Sep 20 23:19:09 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Thu, 20 Sep 2001 17:19:09 -0600 Subject: KCC compile problem with pack (1/3) Message-ID: <200109202319.f8KNJAP01382@saltydog.lanl.gov> Hi Guys, I'm having problems compiling the following code. Below is the build log with the KCC error message. John does not understand what is going wrong either. Do you see what the problem is? // Gather Density data Density.update(); Field D( Density, Pooma::Updaters::DontCopyUpdaters() ); D.makeOwnCopy(); D *= densityScalingRatio; uncompress(D); RefCountedBlockPtr spD = pack(D); double *cD64 = &(*spD); Dave Nystrom email: wdn at lanl.gov LANL X-3 phone: 505-667-7913 fax: 505-665-3046 -------------------------------------------------------build-log---------------------------------------------------------------- cd /usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/PhysicsBeta/ date; /usr/bin/time -p make RECURSE=1 PASS=MPI1 app Thu Sep 20 16:57:23 MDT 2001 ARCHIVING DSO... See /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/libphysicsbeta.so_MPI1.info KCC -o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/libphysicsbeta.so --COMPO_ln -Wl,-noinhibit-exec --no_exceptions --parallel_build 1 /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBetaVersion.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/PhysicsBetaGroup.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/SymmetryRelations2D.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/Commands/LagRadialVelocity.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/Commands/RadialOverlay.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/Commands/SetBrickCoordinates.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/Commands/SetVertexPoints.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/! Geometry/CylindricalRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/Geometry/PlanarRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/Geometry/RZRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/Geometry/SphericalRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/Geometry/XYRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/Geometry/XYZRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMDiffusion/IMDiffusion.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMDiffusion/IMDiffTimestepRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMDiffusion/IMDiffusionRelations1D.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMDiffusion/IMDiff! usionRelations2D.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMDiffusion/IMDiffusionRelations3D.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMDiffusion/testProblems/Gauss/GaussTestProbRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMHydro/AntiHourGlassRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMHydro/IMHydro1D.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMHydro/IMHydro2D.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMHydro/IMHydro3D.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMHydro/IMHydroRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMHydro/IMCourantRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMHydro/IMDivVelo! cityRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMHydro/QRelations1D.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMHydro/QRelations2D.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/IntegralMethods/IMHydro/QRelations3D.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/ConservationChecks/IOEnergyCheck.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/ConservationChecks/IORemapMassCheck.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/ConservationChecks/IOMassCheck.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/Edits/IODeltaEnergy.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/Edits/IOIsoMass.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/EOS/GammaLaw.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/EOS/VoidEos.o /scratch/wdn/! obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/EOS/JWLRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/EOS/ModOsborneRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/EOS/TemperatureRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/EOS/Sesame.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/HE/LineOfSight.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/HE/CJBurnRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/HE/ProgBurnRelations.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/HE/SphericalSurfaceDet.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/Opacity/AnalyticOpacity.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/Mate! rialProperties/Opacity/VoidOpacity.o /scratch/wdn/obj_4.0/PHYSICSBETA/LINUX_KCC_MPI/PhysicsBeta_src/MaterialProperties/Opacity/SesameOpacity.o /scratch/wdn/obj_4.0/PHYSICSSUPPORTBETA/LINUX_KCC_MPI/libphysicssupportbeta.so /scratch/wdn/obj_4.0/PHYSICSBASECLASSES/LINUX_KCC_MPI/libphysicsbaseclasses.so /scratch/wdn/obj_4.0/POOMA2INTEGRATION/LINUX_KCC_MPI/libpooma2integration.so /usr/projects/blanca/packages/TecFramework/TecFramework/lib/TECFRAMEWORK/LINUX_KCC_SHARED_NOEX_DEBUG/libtecframework.so /usr/projects/blanca/packages/BlancaInstantiations/Pooma2Instantiations/lib/POOMA2INSTANTIATIONS/LINUX_KCC_SHARED_CHEETAH_NOEX_DEBUG/libpooma2instantiations.so /usr/projects/blanca/packages/BlancaInstantiations/STLInstantiations/lib/STLINSTANTIATIONS/LINUX_KCC_SHARED_NOEX_DEBUG/libstlinstantiations.so /usr/projects/blanca/packages/Pooma2/r2/lib/LINUX_KCC_SHARED_CHEETAH_NOEX_DEBUG/libpooma.so cd "/home/wdn/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/PhysicsBeta" "/usr/projects/blanca/packages/Pooma2/r2/src/Functions/PackUnpack.h", line 153: error #304: no instance of overloaded function "LoopApplyEvaluator::evaluate" matches the argument list argument types are: ( PackLocalPatches>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t>::Type_t>, Field>::MeshTag, poomalote::Real, Engine<1, poomalote::Real, CompressibleBrick>::Tag_t>::Domain_t) LoopApplyEvaluator::evaluate(PackLocalPatches(patch, current), ^ detected during: instantiation of "RefCountedBlockPtr> pack(const InputField &) [with InputField=Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>]" at line 222 of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer /PhysicsBeta/PhysicsBeta_src/MaterialProperties/Opacity/S esameOpacity.t.hh" instantiation of "void PhysicsBeta::SesameOpacity::calcKappa(const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &) [with Traits=poomalote::OneDF]" "/usr/projects/blanca/packages/Pooma2/r2/src/Engine/EnginePatch.h", line 95: error #135: class "PoomaCTAssert" has no member "test" CTAssert(!(Eng::multiPatch)); ^ detected during: instantiation of "const EngineFunctorDefault::Type_t &EngineFunctorDefault::apply(const Eng &, const EnginePatch &) [with Eng=Patch>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t>::This_t>::OldEngine_t]" at line 131 of "/usr/projects/blanca/packages/Pooma2/r2/src/Engine/Engin eFunctor.h" instantiation of "EngineFunctor::Type_t EngineFunctor::apply(const Eng &, const Tag &) [with Eng=Patch>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t>::This_t>::OldEngine_t, Tag=EnginePatch]" at line 149 of "/usr/projects/blanca/packages/Pooma2/r2/src/Engine/Engin eFunctor.h" instantiation of "EngineFunctor::Type_t engineFunctor(const Eng &, const Tag &) [with Eng=Engine<1, poomalote::Real, MultiPatchView, 1>>, Tag=EnginePatch]" at line 313 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ldEngine/FieldEngineBase.h" instantiation of "void FieldEngineBase::initialize(FieldEngineBase::This_t &, const FieldEngineBase &, const FieldEnginePatch &) [with Dim=1, T=AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation> ::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, EngineTag2=AltView1Implementation >::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t]" at line 204 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ldEngine/FieldEngineBase.h" instantiation of "FieldEngineBase::FieldEngineBase(const FieldEngineBase &, const Initializer &) [with Dim=1, T=AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation> ::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, Dim2=1, T2=AltView1Implementation>::MeshT ag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag2=AltView1Implementation >::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, Initializer=FieldEnginePatch<1>]" at line 245 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ldEngine/FieldEngine.UR.h" instantiation of "FieldEngine, T, EngineTag>::FieldEngine(const FieldEngine, T, ET2> &, const FieldEnginePatch &) [with Dim=1, TM=poomalote::Real, CoordinateSystem=Cartesian<1>, T=AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation> ::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, ET2=AltView1Implementation>::Mesh Tag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t]" at line 1050 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ld.h" instantiation of "Field::Field(const Field &, const Initializer &) [with GeometryTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, T=AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation> ::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, GT2=AltView1Implementation>::Mesh Tag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, T2=AltView1Implementation>::MeshT ag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, ET2=AltView1Implementation>::Mesh Tag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, Initializer=FieldEnginePatch<1>]" at line 860 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ld.h" instantiation of "Patch>::Type_t Patch>::make(const Patch>::Subject_t &, int) [with GeometryTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, T=AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation> ::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t]" at line 1276 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ld.h" instantiation of "Patch>::Type_t Field::patchLocal(EnginePatch::PatchID_t) const [with GeometryTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, T=AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation> ::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t]" at line 169 of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/TecIntegrati onLayer/Pooma2Integration/Pooma2Integration_src/include/S pecialFields.hh" instantiation of "size_t poomalote::localPatchSize(const T &, int) [with T=AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Type_t]" at line 240 of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer /PhysicsBeta/PhysicsBeta_src/MaterialProperties/Opacity/S esameOpacity.t.hh" instantiation of "void PhysicsBeta::SesameOpacity::calcKappa(const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &) [with Traits=poomalote::OneDF]" "/usr/projects/blanca/packages/Pooma2/r2/src/Functions/PackUnpack.h", line 218: error #304: no instance of overloaded function "LoopApplyEvaluator::evaluate" matches the argument list argument types are: ( UnPackLocalPatches>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t>::Type_t>, Field>::MeshTag, poomalote::Real, Engine<1, poomalote::Real, CompressibleBrick>::Tag_t>::Domain_t) LoopApplyEvaluator::evaluate(UnPackLocalPatches(patch, current), ^ detected during: instantiation of "void unpack(const InputField &, RefCountedBlockPtr>) [with InputField=Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>, T=double]" at line 293 of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer /PhysicsBeta/PhysicsBeta_src/MaterialProperties/Opacity/S esameOpacity.t.hh" instantiation of "void PhysicsBeta::SesameOpacity::calcKappa(const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &) [with Traits=poomalote::OneDF]" "/usr/projects/blanca/packages/Pooma2/r2/src/Functions/PackUnpack.h", line 153: error #304: no instance of overloaded function "LoopApplyEvaluator::evaluate" matches the argument list argument types are: ( PackLocalPatches>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t>::Type_t>, Field>::MeshTag, poomalote::Real, Engine<2, poomalote::Real, CompressibleBrick>::Tag_t>::Domain_t) LoopApplyEvaluator::evaluate(PackLocalPatches(patch, current), ^ detected during: instantiation of "RefCountedBlockPtr> pack(const InputField &) [with InputField=Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>]" at line 222 of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer /PhysicsBeta/PhysicsBeta_src/MaterialProperties/Opacity/S esameOpacity.t.hh" instantiation of "void PhysicsBeta::SesameOpacity::calcKappa(const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &) [with Traits=poomalote::TwoDF]" "/usr/projects/blanca/packages/Pooma2/r2/src/Engine/EnginePatch.h", line 95: error #135: class "PoomaCTAssert" has no member "test" CTAssert(!(Eng::multiPatch)); ^ detected during: instantiation of "const EngineFunctorDefault::Type_t &EngineFunctorDefault::apply(const Eng &, const EnginePatch &) [with Eng=Patch>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t>::This_t>::OldEngine_t]" at line 131 of "/usr/projects/blanca/packages/Pooma2/r2/src/Engine/Engin eFunctor.h" instantiation of "EngineFunctor::Type_t EngineFunctor::apply(const Eng &, const Tag &) [with Eng=Patch>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t>::This_t>::OldEngine_t, Tag=EnginePatch]" at line 149 of "/usr/projects/blanca/packages/Pooma2/r2/src/Engine/Engin eFunctor.h" instantiation of "EngineFunctor::Type_t engineFunctor(const Eng &, const Tag &) [with Eng=Engine<2, poomalote::Real, MultiPatchView, 2>>, Tag=EnginePatch]" at line 313 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ldEngine/FieldEngineBase.h" instantiation of "void FieldEngineBase::initialize(FieldEngineBase::This_t &, const FieldEngineBase &, const FieldEnginePatch &) [with Dim=2, T=AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation> ::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, EngineTag2=AltView1Implementation >::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t]" at line 204 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ldEngine/FieldEngineBase.h" instantiation of "FieldEngineBase::FieldEngineBase(const FieldEngineBase &, const Initializer &) [with Dim=2, T=AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation> ::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, Dim2=2, T2=AltView1Implementation>::MeshT ag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag2=AltView1Implementation >::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, Initializer=FieldEnginePatch<2>]" at line 245 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ldEngine/FieldEngine.UR.h" instantiation of "FieldEngine, T, EngineTag>::FieldEngine(const FieldEngine "/usr/projects/blanca/packages/Pooma2/r2/src/Functions/PackUnpack.h", line 218: error #304: no instance of overloaded function "LoopApplyEvaluator::evaluate" matches the argument list argument types are: ( UnPackLocalPatches>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t>::Type_t>, Field>::MeshTag, poomalote::Real, Engine<2, poomalote::Real, CompressibleBrick>::Tag_t>::Domain_t) LoopApplyEvaluator::evaluate(UnPackLocalPatches(patch, current), ^ detected during: instantiation of "void unpack(const InputField &, RefCountedBlockPtr>) [with InputField=Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>, T=double]" at line 293 of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer /PhysicsBeta/PhysicsBeta_src/MaterialProperties/Opacity/S esameOpacity.t.hh" instantiation of "void PhysicsBeta::SesameOpacity::calcKappa(const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &) [with Traits=poomalote::TwoDF]" "/usr/projects/blanca/packages/Pooma2/r2/src/Functions/PackUnpack.h", line 153: error #304: no instance of overloaded function "LoopApplyEvaluator::evaluate" matches the argument list argument types are: ( PackLocalPatches>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t>::Type_t>, Field>::MeshTag, poomalote::Real, Engine<3, poomalote::Real, CompressibleBrick>::Tag_t>::Domain_t) LoopApplyEvaluator::evaluate(PackLocalPatches(patch, current), ^ detected during: instantiation of "RefCountedBlockPtr> pack(const InputField &) [with InputField=Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>]" at line 222 of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer /PhysicsBeta/PhysicsBeta_src/MaterialProperties/Opacity/S esameOpacity.t.hh" instantiation of "void PhysicsBeta::SesameOpacity::calcKappa(const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &) [with Traits=poomalote::ThreeDF]" "/usr/projects/blanca/packages/Pooma2/r2/src/Engine/EnginePatch.h", line 95: error #135: class "PoomaCTAssert" has no member "test" CTAssert(!(Eng::multiPatch)); ^ detected during: instantiation of "const EngineFunctorDefault::Type_t &EngineFunctorDefault::apply(const Eng &, const EnginePatch &) [with Eng=Patch>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t>::This_t>::OldEngine_t]" at line 131 of "/usr/projects/blanca/packages/Pooma2/r2/src/Engine/Engin eFunctor.h" instantiation of "EngineFunctor::Type_t EngineFunctor::apply(const Eng &, const Tag &) [with Eng=Patch>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, AltView1Implementation>::MeshTa g, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t>::This_t>::OldEngine_t, Tag=EnginePatch]" at line 149 of "/usr/projects/blanca/packages/Pooma2/r2/src/Engine/Engin eFunctor.h" instantiation of "EngineFunctor::Type_t engineFunctor(const Eng &, const Tag &) [with Eng=Engine<3, poomalote::Real, MultiPatchView, 3>>, Tag=EnginePatch]" at line 313 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ldEngine/FieldEngineBase.h" instantiation of "void FieldEngineBase::initialize(FieldEngineBase::This_t &, const FieldEngineBase &, const FieldEnginePatch &) [with Dim=3, T=AltView1Implementation>::Mesh Tag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, EngineTag2=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t]" at line 204 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ldEngine/FieldEngineBase.h" instantiation of "FieldEngineBase::FieldEngineBase(const FieldEngineBase &, const Initializer &) [with Dim=3, T=AltView1Implementation>::Mesh Tag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, Dim2=3, T2=AltView1Implementation>::Mes hTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag2=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, Initializer=FieldEnginePatch<3>]" at line 245 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ldEngine/FieldEngine.UR.h" instantiation of "FieldEngine, T, EngineTag>::FieldEngine(const FieldEngine, T, ET2> &, const FieldEnginePatch &) [with Dim=3, TM=poomalote::Real, CoordinateSystem=Cartesian<3>, T=AltView1Implementation>::Mesh Tag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, ET2=AltView1Implementation>::Me shTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t]" at line 1050 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ld.h" instantiation of "Field::Field(const Field &, const Initializer &) [with GeometryTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, T=AltView1Implementation>::Mesh Tag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, GT2=AltView1Implementation>::Me shTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, T2=AltView1Implementation>::Mes hTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, ET2=AltView1Implementation>::Me shTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t, Initializer=FieldEnginePatch<3>]" at line 860 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ld.h" instantiation of "Patch>::Type_t Patch>::make(const Patch>::Subject_t &, int) [with GeometryTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, T=AltView1Implementation>::Mesh Tag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t]" at line 1276 of "/usr/projects/blanca/packages/Pooma2/r2/src/NewField/Fie ld.h" instantiation of "Patch>::Type_t Field::patchLocal(EnginePatch::PatchID_t) const [with GeometryTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewGeometryTag_t, T=AltView1Implementation>::Mesh Tag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewT_t, EngineTag=AltView1Implementation>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Subject_t, AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::SDomain_t, false>::NewEngineTag_t]" at line 169 of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/TecIntegrati onLayer/Pooma2Integration/Pooma2Integration_src/include/S pecialFields.hh" instantiation of "size_t poomalote::localPatchSize(const T &, int) [with T=AltView1>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t, Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::Domain_t>::Type_t]" at line 240 of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer /PhysicsBeta/PhysicsBeta_src/MaterialProperties/Opacity/S esameOpacity.t.hh" instantiation of "void PhysicsBeta::SesameOpacity::calcKappa(const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &) [with Traits=poomalote::ThreeDF]" "/usr/projects/blanca/packages/Pooma2/r2/src/Functions/PackUnpack.h", line 218: error #304: no instance of overloaded function "LoopApplyEvaluator::evaluate" matches the argument list argument types are: ( UnPackLocalPatches>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>::This_t>::Type_t>, Field>::MeshTag, poomalote::Real, Engine<3, poomalote::Real, CompressibleBrick>::Tag_t>::Domain_t) LoopApplyEvaluator::evaluate(UnPackLocalPatches(patch, current), ^ detected during: instantiation of "void unpack(const InputField &, RefCountedBlockPtr>) [with InputField=Field>::MeshTag, poomalote::Real, poomalote::ModelTraits>::EngineTag>, T=double]" at line 293 of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer /PhysicsBeta/PhysicsBeta_src/MaterialProperties/Opacity/S esameOpacity.t.hh" instantiation of "void PhysicsBeta::SesameOpacity::calcKappa(const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &, const PhysicsBeta::SesameOpacity::ScalarField &) [with Traits=poomalote::ThreeDF]" 9 errors detected in the compilation of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/PhysicsBeta/PhysicsBeta_src/MaterialProperties/Opacity/SesameOpacity.cc". driver: Compilation failed. From gdr at codesourcery.com Thu Sep 20 23:44:35 2001 From: gdr at codesourcery.com (Gabriel Dos Reis) Date: 21 Sep 2001 01:44:35 +0200 Subject: Build trouble with KCC on Linux Message-ID: Hi, With a fresh tree checked out (a minute ago), I'm having troubles in configuring POOMA for build with KCC on Linux (I have no problem with GCC on the same plateform). I think that is from the configury machinery. Does it sound familiar to someone? merlin% ./configure --prefix /codesourcery --arch LINUXKCC --suite LINUXKCC --opt --oneper ------------------------------------------------------------------------------ *** POOMA configuration utility *** Command: configure --prefix /codesourcery --arch LINUXKCC --suite LINUXKCC --opt --oneper ------------------------------------------------------------------------------ Reading architecture information from config/arch/LINUXKCC.conf ... Writing suite file config/LINUXKCC.suite.mk ... Making directories for suite=LINUXKCC... Writing version info header file lib/LINUXKCC/PoomaConfiguration.h ... Writing makefile stub lib/LINUXKCC/Makefile.pooma-kcc ... Making Dependencies for suite=LINUXKCC. Appending dependencies to /home/gdr/work/pooma/lib/LINUXKCC/depend.mk ------------------------------------------------------------------------------ Configuration complete. To build POOMA: 1. Set environment variable POOMASUITE to the suite name 'LINUXKCC'. 2. Type 'make'. ------------------------------------------------------------------------------ merlin% export POOMASUITE=LINUXKCC ~/work/pooma merlin% make -j 3 ~/work/pooma make: *** No rule to make target `', needed by `/home/gdr/work/pooma/src/Connect/Lux/LINUXKCC/LuxAppPointer.cmpl.o'. Stop. -- Gaby CodeSourcery, LLC http://www.codesourcery.com From scotth at proximation.com Fri Sep 21 14:22:20 2001 From: scotth at proximation.com (Scott Haney) Date: Fri, 21 Sep 2001 08:22:20 -0600 Subject: Blanca branch in CVS repository messed up Message-ID: cvs server: cannot open /home/pooma/Repository/r2/src/NewField/FieldEngine/Attic/FieldEngineBase.h, v: Permission denied cvs server: cannot open /home/pooma/Repository/r2/src/NewField/Updater/Attic/UpdaterList.h,v: Permission denied Scott From oldham at codesourcery.com Fri Sep 21 15:39:08 2001 From: oldham at codesourcery.com (Jeffrey D. Oldham) Date: 21 Sep 2001 09:39:08 -0600 Subject: Pop Test! Message-ID: <20010921153908.4050541.qmail@n02.acl.lanl.gov> -- Jeffrey D. Oldham joldham at acl.lanl.gov From scotth at proximation.com Fri Sep 21 19:03:48 2001 From: scotth at proximation.com (Scott Haney) Date: Fri, 21 Sep 2001 13:03:48 -0600 Subject: Added support for broadcasting STL vectors. Message-ID: Tested under Linux with KCC and reviewed by Stephen Smith. Scott -------------- next part -------------- Tested under Linux with KCC and reviewed by Stephen Smith. Scott -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep212001.1.patch Type: application/applefile Size: 499 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep212001.1.patch Type: application/octet-stream Size: 4486 bytes Desc: not available URL: From qmtrack at ns1.codesourcery.com Fri Sep 21 19:12:41 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 21 Sep 2001 19:12:41 -0000 Subject: [QMTrack] new issue fieldstencilsimple_with_expressionengines Message-ID: <20010921191241.15579.qmail@mail.codesourcery.com> The issue fieldstencilsimple_with_expressionengines was created by oldham on 2001-09-21 13:12 MDT. Issue ID: fieldstencilsimple_with_expressionengines Modification Time: 2001-09-21 13:12 MDT Modifying User: oldham State: submitted Summary: FieldStencilSimple and Expression Engines Do Not Cooperate Categories: correctness Discussion: None Description: Applying sum(field, NearestNeighbors, centering) to a field with an expression engine fails. The cause is the engine assignment in src/Field/DiffOps/FieldStencil.h:FieldStencilSimple::make(), lines 484 and496. Assignee: smith From stephens at proximation.com Fri Sep 21 21:17:47 2001 From: stephens at proximation.com (Stephen Smith) Date: Fri, 21 Sep 2001 15:17:47 -0600 Subject: patch: Remote support for patchLocal Message-ID: This patch just adds a missing specializatoin for the EnginePatch functor. Tested on linux. Reviewed by Scott Haney. Stephen <> -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: remote.patch Type: application/octet-stream Size: 1426 bytes Desc: not available URL: From jcm at lanl.gov Fri Sep 21 22:29:01 2001 From: jcm at lanl.gov (Jean Marshall) Date: Fri, 21 Sep 2001 16:29:01 -0600 Subject: UpdaterList.h In-Reply-To: <21310000.1001011496@warlock.codesourcery.com> References: Message-ID: <5.1.0.14.2.20010921162006.00a79648@x-mail.lanl.gov> Mark: The file "NewField/Updater/UpdaterList.h" is no longer coming through when we do an anoncvs checkout of the "blanca_2001Oct01" branch. Stephen Smith is getting it however through the other type of checkout. Also, Steve Nolen is not able to check the head version out and compile it using Metrowerks using the anoncvs checkout path. I actually don't know if the head is being kept current with Metrowerks or not, although I would assume Scott would try to ensure that it is. The most likely case is that he (Steve Nolen) is also missing some files due to permission problems. John Hall From jcrotinger at mac.com Sat Sep 22 00:31:38 2001 From: jcrotinger at mac.com (James Crotinger) Date: Fri, 21 Sep 2001 18:31:38 -0600 Subject: DiscField Message-ID: Hi John. Just wanted to update you on our DiscField replacement. It consists of two classes, FileSetWriter and FileSetReader (there are supporting classes, but these are the two that the user will deal with). The interfaces are simple - once you've initialized the appropriate class and opened a file set, you either invoke "read" or "write" with an Array or Field argument. There is no support to random access within a record (is this desireable?) nor is there currently support for reading views. Oh, and currently these only deal with single file sets, which are read/written via context 0. Today Scott moved FileSetWriter to the blanca branch, along with a bunch of supporting changes. I have not tested these in parallel, nor have I finished testing FileSetReader (which is still just on the CVS trunk). FileSetReader works in serial on the PC and nirvana, and probably Linux, although I haven't tried writing a linux file set to test with. My immediate plans are to test in parallel and move FileSetReader to the blanca branch. That'll give you the ability to read whole Fields from a single fileset on nirvana. Once that is working, I have three improvements in mind: 1. Multiple filesets - we think this is straight-forward, and in fact the only code that is not in there is the communication of the layout information so that all contexts know the complete layout (this is for reading - writers know the full layout). Scott has already added some supporting changes for doing this and I just need to add the communication code to FileSetReader (or DiskLayout) and it should work. 2. Views - this also should be straight forward. We're using Arrays with remote engines to write the patches and it shouldn't be too hard to mask the assignments and only read data that is going to cause elements to be written. 3. Machine independence - Currently, FileSetReader detects byte-reversal and fixes it (the heuristic is that it looks at the domains in the .layout file and examines the stride to see if the 1 is in the first or last byte - this does rely on saved Fields always having stride 1). I want to go further and standardize on the layout of the OffsetData field in the .offset file as being that stored on nirvana with "long long" offsets. We can write the code to always write this arrangement of bytes to disk. That plus detecting byte-ordering should make the files almost machine independent. The main problems will be files written by r1 on machines other than SGI/IRIX 6.5. We could deal with these via some new keywords in the .meta file. Anyway, that's where things are at. I'll try to get some work done on these this weekend. Could you please forward this to Lee and Peter if they're not on the pooma-dev list. Jim From mark at codesourcery.com Sat Sep 22 02:12:48 2001 From: mark at codesourcery.com (Mark Mitchell) Date: Fri, 21 Sep 2001 19:12:48 -0700 Subject: UpdaterList.h In-Reply-To: <5.1.0.14.2.20010921162006.00a79648@x-mail.lanl.gov> Message-ID: <8520000.1001124768@warlock.codesourcery.com> --On Friday, September 21, 2001 04:29:01 PM -0600 Jean Marshall wrote: > Mark: > The file "NewField/Updater/UpdaterList.h" is no longer coming through > when we do an anoncvs checkout of the "blanca_2001Oct01" branch. Stephen > Smith is getting it however through the other type of checkout. I'm sorry about that; I think it's fixed now. > Also, Steve Nolen is not able to check the head version out and compile > it using Metrowerks using the anoncvs checkout path. I actually don't > know if the head is being kept current with Metrowerks or not, although I > would assume Scott would try to ensure that it is. The most likely case > is that he (Steve Nolen) is also missing some files due to permission > problems. I've fixed this problem in the most general way possible, so I think if it is the permission problem, it should be fixed now. Thanks, -- Mark Mitchell mark at codesourcery.com CodeSourcery, LLC http://www.codesourcery.com From gdr at codesourcery.com Sun Sep 23 16:58:06 2001 From: gdr at codesourcery.com (Gabriel Dos Reis) Date: 23 Sep 2001 18:58:06 +0200 Subject: [pooma-dev] Build trouble with KCC on Linux In-Reply-To: Gabriel Dos Reis's message of "21 Sep 2001 01:44:35 +0200" References: Message-ID: Gabriel Dos Reis writes: | Hi, | | With a fresh tree checked out (a minute ago), I'm having troubles in | configuring POOMA for build with KCC on Linux (I have no problem with | GCC on the same plateform). I think that is from the configury | machinery. Does it sound familiar to someone? Hi, I finally tracked that problem down to a bug present in the preprocessor of GCC-3.1 (current CVS) -- that bug is not present in GCC-3.0.x. Under some circumstances `make depend', which uses gcc to generate the dependencies, outputs nonsense like: /path/to/source/code.o: /path/to/source/code.o: Hi All, I raised a question when I sent a message out about the particle tests I have fixed thus far, but I guess no one noticed it or bothered to respond, so I am repeating it here. In order to do a particle-->field scatter, it is necessary to first clear the internal and external guard layers. I believe that the function to zero out the internal guard layers remains intact in the existing MultiPatchEngine code. The way we used to zero out the external guard layers was by attaching a constant face boundary condition with constant value zero to the field, applying the boundary condition, and then deleting the boundary condition. I'd like to know how to do something similar in the context of Pooma Updaters. Is there an easy way to create and destroy temporary boundary conditions? Is there a better way of accessing and clearing the external guard layers with the new Fields? If someone already knows the answer, this will save me a lot of time. Thanks, Julian C. -- Dr. Julian C. Cummings E-mail: cummings at cacr.caltech.edu California Institute of Technology Phone: 626-395-2543 1200 E. California Blvd., Mail Code 158-79 Fax: 626-584-5917 Pasadena, CA 91125 From oldham at codesourcery.com Wed Sep 26 00:17:26 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Tue, 25 Sep 2001 17:17:26 -0700 Subject: PATCH: Add layout() to Engine Specializations Message-ID: <20010925171726.A32353@codesourcery.com> 2001-09-25 Jeffrey D. Oldham * ConstantFunctionEngine.h (Engine<... ConstantFunction>::layout): Add Engine function missing from this specialization. * ExpressionEngine.h (Engine<... ExpressionTag...>::layout): Likewise. Tested on sequential Linux using gcc 3.1 by compiling Pooma library and Engine regression tests Approved by Stephen Smith Applied to mainline Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- Index: ConstantFunctionEngine.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Engine/ConstantFunctionEngine.h,v retrieving revision 1.18 diff -c -p -r1.18 ConstantFunctionEngine.h *** ConstantFunctionEngine.h 2001/08/30 01:15:04 1.18 --- ConstantFunctionEngine.h 2001/09/25 22:29:03 *************** public: *** 237,242 **** --- 237,246 ---- const Domain_t &domain() const { return domain_m; } //--------------------------------------------------------------------------- + // Return a layout. + + inline Layout_t layout() const { return Layout_t(domain_m); } + // Return the first value for the specified direction. inline int first(int i) const Index: ExpressionEngine.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Engine/ExpressionEngine.h,v retrieving revision 1.75 diff -c -p -r1.75 ExpressionEngine.h *** ExpressionEngine.h 2001/08/30 01:15:04 1.75 --- ExpressionEngine.h 2001/09/25 22:29:04 *************** public: *** 605,610 **** --- 605,614 ---- return forEach(expr_m, DomainFunctorTag(), DomainFunctorTag()); } + //--------------------------------------------------------------------------- // Return a layout. + + inline Layout_t layout() const { return Layout_t(domain()); } + //--------------------------------------------------------------------------- // Return the first value for the specified direction (always zero since this // engine is zero-based). From stephens at proximation.com Wed Sep 26 18:01:38 2001 From: stephens at proximation.com (Stephen Smith) Date: Wed, 26 Sep 2001 12:01:38 -0600 Subject: patch Fix Doof2dField benchmarks Message-ID: This patch converts doof 2d benchmarks to use the new field syntax. Field.h - added initialize functions to model constructors Doof2dField.h - converted initialize of field to construct mesh etc. Tested on linux with KCC. Reviewed by Oldham. Stephen <> -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: doofField.patch Type: application/octet-stream Size: 5115 bytes Desc: not available URL: From oldham at codesourcery.com Wed Sep 26 21:55:12 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Wed, 26 Sep 2001 14:55:12 -0700 Subject: Pooma Regressions Message-ID: <20010926145512.A24958@codesourcery.com> Using QMTest, I tested the Pooma regression (unit) tests, benchmarks, and examples. 35 out of 210 of these, or 14%, failed to either compile or run correctly. In your spare time, free feel to try to knock off an error or two. Sep26.sum lists all the failures Sep26.xml gives more details about the successes and failures Thanks, Jeffrey D. Oldham oldham at codesourcery.com P.S. If you know of any unit tests that do not return the correct status, the unit test may be recorded as a success when it actually failed. -------------- next part -------------- --- TEST RUN STATISTICS ------------------------------------------------------ 245 tests total 210 ( 86%) tests PASS 35 ( 14%) tests FAIL --- TESTS THAT DID NOT PASS -------------------------------------------------- benchmarks.doof2dfield.doof2dfield : FAIL Unexpected exit code, err. regressions.field.nearestneighbors : FAIL Unexpected exit code. examples.solvers.blockdecomposed.fivepoint.fivepointsolve : FAIL Unexpected exit code, err. examples.particles.pic2d.pic2d : FAIL Unexpected exit code, err. regressions.particles.particle_bench4 : FAIL Unexpected exit code, err. regressions.particles.particle_bench2 : FAIL Unexpected exit code, err. regressions.particles.particle_bench3 : FAIL Unexpected exit code, err. examples.field.scalaradvection.scalaradvection : FAIL Unexpected exit code, err. regressions.particles.particle_bench1 : FAIL Unexpected exit code, err. examples.field.laplace2.laplace2 : FAIL Unexpected exit code, err. examples.lattice.coordinate : FAIL Unexpected exit code, err. examples.solvers.blockdecomposed.ninepoint.ninepointsolve : FAIL Unexpected exit code, err. examples.field.scalaradvection1d.scalaradvection1d : FAIL Unexpected exit code, err. examples.particles.oscillation.oscillation : FAIL Unexpected exit code, err. regressions.particles.particle_test3 : FAIL Unexpected exit code, err. regressions.connect.lux.lux_test2 : FAIL Unexpected exit code, err. examples.field.caramana.caramana : FAIL Unexpected exit code, err. regressions.databrowser.testdatabrowser : FAIL Unexpected exit code, err. regressions.field.localpatch : FAIL Unexpected exit code, err. regressions.dynamicarray.dynamic_array_test5 : FAIL Unexpected exit code, err. regressions.connect.lux.bytefield : FAIL Unexpected exit code, err. regressions.io.filesetreadertest1 : FAIL Unexpected exit code, err. examples.particles.bounce.bounce : FAIL Unexpected exit code, err. regressions.io.filesetreadertest2 : FAIL Unexpected exit code, err. regressions.connect.lux.lux_test1 : FAIL Unexpected exit code, err. examples.field.laplace.laplace : FAIL Unexpected exit code, err. regressions.array.scalaradvection : FAIL Unexpected exit code, err. regressions.array.scalaradvectionxb : FAIL Unexpected exit code, err. regressions.particles.particle_test1 : FAIL Unexpected exit code, err. examples.field.statigraphicflow.statigraphicflow : FAIL Unexpected exit code, err. regressions.particles.particle_test2 : FAIL Unexpected exit code, err. regressions.particles.interpolate : FAIL Unexpected exit code, err. regressions.particles.particle_test4 : FAIL Unexpected exit code, err. regressions.field.positions : FAIL Unexpected exit code, err. regressions.field.crossbox : FAIL Unexpected exit code, err. -------------- next part -------------- A non-text attachment was scrubbed... Name: Sep26.xml Type: text/xml Size: 41124 bytes Desc: not available URL: From qmtrack at ns1.codesourcery.com Wed Sep 26 22:38:46 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 26 Sep 2001 22:38:46 -0000 Subject: [QMTrack] new issue centering_comparison Message-ID: <20010926223846.3337.qmail@mail.codesourcery.com> The issue centering_comparison was created by haney on 2001-09-26 16:38 MDT. Issue ID: centering_comparison Modification Time: 2001-09-26 16:38 MDT Modifying User: haney State: submitted Summary: Need operator==,!= for Centering Categories: correctness Discussion: None Description: We want to be able to compare centerings. This capability is currently missing. Assignee: oldham From gdr at codesourcery.com Thu Sep 27 01:57:13 2001 From: gdr at codesourcery.com (Gabriel Dos Reis) Date: 27 Sep 2001 03:57:13 +0200 Subject: [pooma-dev] Pooma Regressions In-Reply-To: Jeffrey Oldham's message of "Wed, 26 Sep 2001 14:55:12 -0700" References: <20010926145512.A24958@codesourcery.com> Message-ID: Jeffrey Oldham writes: | Using QMTest, I tested the Pooma regression (unit) tests, benchmarks, | and examples. 35 out of 210 of these, or 14%, failed to either | compile or run correctly. In your spare time, free feel to try to | knock off an error or two. Hi Jeffrey, Which compiler did you use on which plateform? Thanks, -- Gaby CodeSourcery, LLC http://www.codesourcery.com From oldham at codesourcery.com Thu Sep 27 02:22:41 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Wed, 26 Sep 2001 19:22:41 -0700 Subject: [pooma-dev] Pooma Regressions In-Reply-To: ; from gdr@codesourcery.com on Thu, Sep 27, 2001 at 03:57:13AM +0200 References: <20010926145512.A24958@codesourcery.com> Message-ID: <20010926192241.A1919@codesourcery.com> On Thu, Sep 27, 2001 at 03:57:13AM +0200, Gabriel Dos Reis wrote: > Jeffrey Oldham writes: > > | Using QMTest, I tested the Pooma regression (unit) tests, benchmarks, > | and examples. 35 out of 210 of these, or 14%, failed to either > | compile or run correctly. In your spare time, free feel to try to > | knock off an error or two. > > Hi Jeffrey, > > Which compiler did you use on which platform? I used gcc 3.1 and Linux. Some of the failures may be caused by gcc 3.1. Jeffrey D. Oldham oldham at codesourcery.com From Riedel.Christian at mayo.edu Thu Sep 27 15:55:54 2001 From: Riedel.Christian at mayo.edu (Riedel, Christian H., M.D.) Date: Thu, 27 Sep 2001 10:55:54 -0500 Subject: IO question Message-ID: <3BB305BA.29873.E168101@localhost> Dear sirs, I am currently working on a simulation project in which I especially need the Field and Particle classes in POOMA. I would like to import a 3-dimensional array of short integer values from a file into an instance of the Field class. Which would be the best way to get this done ? Thank you very much in advance, Christian Riedel From qmtrack at ns1.codesourcery.com Thu Sep 27 20:06:43 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 27 Sep 2001 20:06:43 -0000 Subject: [QMTrack] new issue costimes_failure_mode Message-ID: <20010927200643.10731.qmail@mail.codesourcery.com> The issue costimes_failure_mode was created by oldham on 2001-09-27 14:06 MDT. Issue ID: costimes_failure_mode Modification Time: 2001-09-27 14:06 MDT Modifying User: oldham State: submitted Summary: CosTimes's Failure is Not Indicated by Status Categories: correctness Discussion: None Description: Change the program's status to indicate whether the program was successful. Check other analogous examples for the same erroneous behavior. Assignee: oldham From qmtrack at ns1.codesourcery.com Thu Sep 27 22:43:01 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 27 Sep 2001 22:43:01 -0000 Subject: [QMTrack] new issue kcc_auto_oneper Message-ID: <20010927224301.11757.qmail@mail.codesourcery.com> The issue kcc_auto_oneper was created by oldham on 2001-09-27 16:43 MDT. Issue ID: kcc_auto_oneper Modification Time: 2001-09-27 16:43 MDT Modifying User: oldham State: submitted Summary: When Using KCC, --oneper Should Be Default Categories: correctness Discussion: None Description: KCC needs the --one_per flag to avoid multiple template instantiations. The --oneper Pooma configuration flag causes --one_per to be passed to KCC. This should be the deafault for KCC: both Stephen and I regularly trip over this. Assignee: oldham From stephens at proximation.com Fri Sep 28 03:40:53 2001 From: stephens at proximation.com (Stephen Smith) Date: Thu, 27 Sep 2001 21:40:53 -0600 Subject: patch doof2d Message-ID: This patch attempts to rationalize all the doof2d benchmarks, so we can perform direct performance comparisons for the new field. All the UMP versions etc. are no longer necessary. Tested on linux, with and without --messaging. Approved by Oldham. Stephen Smith <> -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: doof2d.patch Type: application/octet-stream Size: 55829 bytes Desc: not available URL: From oldham at codesourcery.com Fri Sep 28 14:22:36 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Fri, 28 Sep 2001 07:22:36 -0700 Subject: Supported Compilers? Message-ID: <200109281422.f8SEMam06143@localhost.localdomain> For Pooma, what compilers are we supporting? In particular, are we supporting any compilers did not recognize the standard '.h'-less header filenames? Right now, the code uses both deprecated and standard header filenames. Thanks, Jeffrey D. Oldham oldham at codesourcery.com From jcrotinger at proximation.com Fri Sep 28 15:56:50 2001 From: jcrotinger at proximation.com (James Crotinger) Date: Fri, 28 Sep 2001 09:56:50 -0600 Subject: [pooma-dev] Supported Compilers? Message-ID: We do use compilers that don't put C functions in std::. I think both SGI CC and VC++ have .h-less C headers, but don't put the C functions in std::. The .h-less C header files are standard conforming and at least prior to the 2.4 project our rule was to use these since they were more portable. > -----Original Message----- > From: Jeffrey Oldham [mailto:oldham at codesourcery.com] > Sent: Friday, September 28, 2001 8:23 AM > To: pooma-dev at pooma.codesourcery.com > Subject: [pooma-dev] Supported Compilers? > > > > For Pooma, what compilers are we supporting? In particular, > are we supporting any compilers did not recognize the standard > '.h'-less header filenames? > > Right now, the code uses both deprecated and standard header > filenames. > > Thanks, > Jeffrey D. Oldham > oldham at codesourcery.com > -------------- next part -------------- An HTML attachment was scrubbed... URL: From qmtrack at ns1.codesourcery.com Fri Sep 28 16:07:14 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 28 Sep 2001 16:07:14 -0000 Subject: [QMTrack] new issue pooma_program_templates Message-ID: <20010928160714.18297.qmail@mail.codesourcery.com> The issue pooma_program_templates was created by oldham on 2001-09-28 10:07 MDT. Issue ID: pooma_program_templates Modification Time: 2001-09-28 10:07 MDT Modifying User: oldham State: submitted Summary: Pooma Program Templates to Ease Starting Programming Categories: other Discussion: None Description: Are there sample template files to use when starting to write a Pooma program? For example, is there a short file that has the proper includes and a main() containing an array declaration and a sample use? Another useful file would create a field for use with cross-box communication. Assignee: none From oldham at codesourcery.com Fri Sep 28 16:14:51 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Fri, 28 Sep 2001 09:14:51 -0700 Subject: PATCH: Remove Doof2dUMP Message-ID: <20010928091451.C8632@codesourcery.com> Stephen Smith's Doof2d merger eliminates the need for the Doof2dUMP files. Use 'cvs update -P' to remove empty directories. Applied to mainline Nothing to test Approved by Stephen Smith. Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- ? Doof2dUMP.28Sep.08.5.patch Index: Doof2dUMP.cpp =================================================================== RCS file: Doof2dUMP.cpp diff -N Doof2dUMP.cpp *** /tmp/cvsH4EtKU Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,67 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - //----------------------------------------------------------------------------- - // Doof2d Benchmark (UMP version) - //----------------------------------------------------------------------------- - - // Include files - - #include "Pooma/Pooma.h" - #include "Doof2dUMP.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - int main(int argc, char* argv[]) - { - Pooma::initialize(argc, argv); - - Benchmark doof2d(argc, argv); - - cpptran1(doof2d); - cpptran2(doof2d); - pooma1(doof2d); - pooma1c(doof2d); - pooma2(doof2d); - pooma3(doof2d); - - doof2d.setSamplingParameters(100,0,1); - doof2d.run(); - - Pooma::finalize(); - - return 0; - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: Doof2dUMP.cpp,v $ $Author: julianc $ - // $Revision: 1.9 $ $Date: 2000/04/13 19:56:39 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: Doof2dUMP.h =================================================================== RCS file: Doof2dUMP.h diff -N Doof2dUMP.h *** /tmp/cvsXySgml Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,602 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - //----------------------------------------------------------------------------- - // Classes Doof2dUMPBase, Doof2dUMPCppTran, Doof2dUMPP2. - //----------------------------------------------------------------------------- - - #ifndef POOMA_BENCHMARKS_DOOF2DUMP_DOOF2DUMP_H - #define POOMA_BENCHMARKS_DOOF2DUMP_DOOF2DUMP_H - - // Include files - - #include "Pooma/Arrays.h" - - #include "Utilities/Benchmark.h" - - #include - #include - - //----------------------------------------------------------------------------- - // Doof2dBase class definitions. We define this as a partially specialized - // class so it is easy to make subclasses work for UMP or not. - //----------------------------------------------------------------------------- - - // General version. - - template - class Doof2dBase { }; - - // Non-UMP version. - - template - class Doof2dBase - : public Implementation - { - public: - - // Dummy constructor. - - Doof2dBase(int = 1, int = 0) { } - - // Typedefs for the Array types we'll be using here. - - typedef Array<2,double,EngineTag> Array2D; - - // Initialize function gets the size and adjusts the arrays. - - void initialize(int n) - { - // Save the problem size. - - n_m = n; - - // Get new array domain, including "guards". - - Interval<1> N(1, n_m); - Interval<2> newDomain(N, N); - - // Resize the arrays. - - a_m.initialize(newDomain); - b_m.initialize(newDomain); - - // Set up domains for the internal cells. - - I = Interval<1>(2,n_m-1); - J = Interval<1>(2,n_m-1); - - // Intialize Array element values. - - setInitialConditions(); - } - - // Return value for checking result of benchmark run. - - double resultCheck() const { return check_m; } - - // Return number of flops in this kernel. - - double opCount() const { return ( 90 * (n_m - 2) * (n_m - 2) ); } - - protected: - - // 2D data arrays. - - Array2D a_m, b_m; - - // Problem check value. - - double check_m; - - // Problem size. - - int n_m; - - // Domains for stencil. - - Interval<1> I, J; - - private: - - void setInitialConditions() - { - // Initialize arrays. - - a_m = 0.0; - b_m = 0.0; - - Pooma::blockAndEvaluate(); - } - }; - - // UMP version. - - template - class Doof2dBase : public Implementation { - public: - - // Typedefs for the Array types we'll be using here. - - typedef Array<2,double, MultiPatch > Array2D; - - // Constructor allows us to specify the number of patches in each direction - // and the number of guard cells. - - Doof2dBase(int np = 1, int ng = 0) - : np_m(np), ng_m(ng), layout_m(NULL) - { } - - // Destructor deletes pointers. - - ~Doof2dBase() - { - delete layout_m; - } - - // Initialize function gets the size and adjusts the arrays. - - void initialize(int n) - { - // Save the problem size. We need to make sure we have evenly sized blocks. - - n_m = (n / np_m) * np_m; - - // int ntot = ( (n+2) / np_m ) * np_m; - - // n_m = ntot - 2; - - // Delete old pointers. - - delete layout_m; - - // Get new array domain. - - Interval<1> N(1, n_m); - Interval<2> newDomain(N, N); - - // Create the block sizes. - - Loc<2> blocks(np_m, np_m); - - // Create the partitioner. - - UniformGridPartition<2> partition(blocks, GuardLayers<2>(ng_m), - GuardLayers<2>(ng_m)); - - // Use the local mapper, since this test uses bricks. - - LocalMapper<2> mapper; - - // Create the layout. - - layout_m = new UniformGridLayout<2>(newDomain, partition, mapper); - - // Create the arrays. - - a_m.initialize(*layout_m); - b_m.initialize(*layout_m); - - // Set up domains. - - I = Interval<1>(2,n_m-1); - J = Interval<1>(2,n_m-1); - - // Intialize Array element values. - - setInitialConditions(); - } - - // Return value for checking result of benchmark run. - - double resultCheck() const { return check_m; } - - // Return number of flops in this kernel. - - double opCount() const - { - return ( 90 * ((double)n_m - 2) * ((double)n_m - 2) ); - } - - protected: - - // 2D data arrays. - - Array2D a_m, b_m; - - // Problem check value. - - double check_m; - - // Problem size/number of patches. - - int n_m, np_m; - - // Guard layers. - - int ng_m; - - // Domains for stencil. - - Interval<1> I, J; - - // Layout. - - UniformGridLayout<2> *layout_m; - - private: - - void setInitialConditions() - { - // Initialize arrays. - - a_m = 0.0; - b_m = 0.0; - - Pooma::blockAndEvaluate(); - } - }; - - - //----------------------------------------------------------------------------- - // Doof2dUMPCppTran class definition. - //----------------------------------------------------------------------------- - - template - class Doof2dCppTran : public Doof2dBase { - public: - - typedef typename Doof2dBase::Array2D Array2D; - - // Constructor allows us to specify the number of patches in each direction. - - Doof2dCppTran(int np = 1) - : Doof2dBase(np) - { } - - // This is a C++Tran benchmark, perhaps using UMP. - - const char* type() const { return CppTranType(); } - const char* qualification() const - { - if (UMP) - { - if (typeid(PatchTag) == typeid(Brick)) - return "BrickUMP"; - else - return "CompBrickUMP"; - } - else - { - if (typeid(PatchTag) == typeid(Brick)) - return "Brick"; - else - return "CompBrick"; - } - } - - void run() - { - const double fact = 1.0 / 9.0; - - int i, j, k; - - // Run setup. - - for (j = 1; j <= n_m; j++) - { - for (i = 1; i <= n_m; i++) - { - b_m(i,j) = 0.0; - } - } - b_m(n_m/2,n_m/2) = 1000.0; - - // Run kernel. - - for (k = 0; k < 10; ++k) - { - for (j = 1; j <= n_m; j++) - { - for (i = 1; i <= n_m; i++) - { - a_m(i,j) = b_m(i,j); - } - } - for (j = 2; j <= n_m-1; j++) - { - for (i = 2; i <= n_m-1; i++) - { - b_m(i,j) = fact * - (a_m(i+1,j+1) + a_m(i+1,j ) + a_m(i+1,j-1) + - a_m(i ,j+1) + a_m(i ,j ) + a_m(i ,j-1) + - a_m(i-1,j+1) + a_m(i-1,j ) + a_m(i-1,j-1)); - } - } - } - - // Save result for checking. - - check_m = b_m(n_m / 2, n_m / 2); - } - - void runSetup() - { - // Run setup. - - for (int j = 1; j <= n_m; j++) - { - for (int i = 1; i <= n_m; i++) - { - b_m(i,j) = 0.0; - } - } - b_m(n_m/2,n_m/2) = 1000.0; - } - }; - - - //----------------------------------------------------------------------------- - // Doof2dUMPP2 class definition. - //----------------------------------------------------------------------------- - - template - class Doof2dP2 - : public Doof2dBase - { - public: - - typedef typename Doof2dBase::Array2D Array2D; - - // Constructor allows us to specify the number of patches in each direction. - - Doof2dP2(int np = 1, int ng = 0) - : Doof2dBase(np,ng), - guarded_m(ng > 0) - { } - - // This is a P2 benchmark, perhaps using UMP. - - const char* type() const { return P2Type(); } - const char* qualification() const - { - if (guarded_m) - { - // we're using guard cells, so return a cryptic sounding - // 12 letter description - PAssert(UMP); - if (typeid(PatchTag) == typeid(Brick)) - return "GCBrickUMP"; - else - return "GCCmpBrckUMP"; - } - else - { - if (UMP) - { - if (typeid(PatchTag) == typeid(Brick)) - return "BrickUMP"; - else - return "CompBrickUMP"; - } - else - { - if (typeid(PatchTag) == typeid(Brick)) - return "Brick"; - else - return "CompBrick"; - } - } - } - - void run() - { - const double fact = 1.0 / 9.0; - - int k; - - // Run setup. - - b_m = 0.0; - Pooma::blockAndEvaluate(); - b_m(n_m/2,n_m/2) = 1000.0; - - // Run kernel. - - for (k = 0; k < 10; ++k) - { - a_m = b_m; - b_m(I,J) = fact * - (a_m(I+1,J+1) + a_m(I+1,J ) + a_m(I+1,J-1) + - a_m(I ,J+1) + a_m(I ,J ) + a_m(I ,J-1) + - a_m(I-1,J+1) + a_m(I-1,J ) + a_m(I-1,J-1)); - } - - Pooma::blockAndEvaluate(); - - // Save result for checking. - - check_m = b_m(n_m / 2, n_m / 2); - } - - void runSetup() - { - // Run setup. - - b_m = 0.0; - Pooma::blockAndEvaluate(); - b_m(n_m/2,n_m/2) = 1000.0; - } - - private: - bool guarded_m; - }; - - //----------------------------------------------------------------------------- - // Stencil DoofNinePt - //----------------------------------------------------------------------------- - - class DoofNinePt - { - public: - DoofNinePt() {} - DoofNinePt(const DoofNinePt &) {} - - template - inline - typename A::Element_t - operator()(const A& x, int i, int j) const - { - return ( (1.0/9.0) * - ( x(i+1,j+1) + x(i+1,j ) + x(i+1,j-1) + - x(i ,j+1) + x(i ,j ) + x(i ,j-1) + - x(i-1,j+1) + x(i-1,j ) + x(i-1,j-1) ) ); - } - - inline int lowerExtent(int) const { return 1; } - inline int upperExtent(int) const { return 1; } - - private: - }; - - //----------------------------------------------------------------------------- - // Doof2dUMPP2Opt class definition. - //----------------------------------------------------------------------------- - - template - class Doof2dP2Opt - : public Doof2dBase - { - public: - - typedef typename Doof2dBase::Array2D Array2D; - - // Constructor allows us to specify the number of patches in each direction. - - Doof2dP2Opt(int np = 1, int ng = 0) - : Doof2dBase(np,ng), - guarded_m(ng > 0) - { } - - // This is a P2 benchmark, perhaps using UMP. - - const char* type() const { return "P2Opt"; } - const char* qualification() const - { - if (guarded_m) - { - // we're using guard cells, so return a cryptic sounding - // 12 letter description - PAssert(UMP); - if (typeid(PatchTag) == typeid(Brick)) - return "GCBrickUMP"; - else - return "GCCmpBrckUMP"; - } - else - { - if (UMP) - { - if (typeid(PatchTag) == typeid(Brick)) - return "BrickUMP"; - else - return "CompBrickUMP"; - } - else - { - if (typeid(PatchTag) == typeid(Brick)) - return "Brick"; - else - return "CompBrick"; - } - } - } - - void run() - { - int k; - Interval<2> IJ(I,J); - - // Run setup. - - b_m = 0.0; - Pooma::blockAndEvaluate(); - b_m(n_m/2,n_m/2) = 1000.0; - - // Run kernel. - - for (k = 0; k < 10; ++k) - { - a_m = b_m; - - // Note we use this form of the stencil since adding guard cells can - // add external guard cells, so the domain of a might be bigger than - // we expect, in which case stencil_m(a) would be bigger than IJ. - - b_m(IJ) = stencil_m(a_m,IJ); - } - - Pooma::blockAndEvaluate(); - - // Save result for checking. - - check_m = b_m(n_m / 2, n_m / 2); - } - - void runSetup() - { - // Run setup. - - b_m = 0.0; - Pooma::blockAndEvaluate(); - b_m(n_m/2,n_m/2) = 1000.0; - - } - - private: - bool guarded_m; - Stencil stencil_m; - }; - - - - void cpptran1(Benchmark&); - void cpptran2(Benchmark&); - void pooma1(Benchmark&); - void pooma1c(Benchmark&); - void pooma2(Benchmark&); - void pooma3(Benchmark&); - - #endif // POOMA_BENCHMARKS_DOOF2DUMP_DOOF2DUMP_H - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: Doof2dUMP.h,v $ $Author: sa_smith $ - // $Revision: 1.34 $ $Date: 2000/07/04 05:06:36 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: Makefile.user =================================================================== RCS file: Makefile.user diff -N Makefile.user *** /tmp/cvsJjUsYL Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,67 **** - ################################################################## - # ACL:license - # ---------------------------------------------------------------------- - # This software and ancillary information (herein called "SOFTWARE") - # called POOMA (Parallel Object-Oriented Methods and Applications) is - # made available under the terms described here. The SOFTWARE has been - # approved for release with associated LA-CC Number LA-CC-98-65. - # - # Unless otherwise indicated, this SOFTWARE has been authored by an - # employee or employees of the University of California, operator of the - # Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - # the U.S. Department of Energy. The U.S. Government has rights to use, - # reproduce, and distribute this SOFTWARE. The public may copy, distribute, - # prepare derivative works and publicly display this SOFTWARE without - # charge, provided that this Notice and any statement of authorship are - # reproduced on all copies. Neither the Government nor the University - # makes any warranty, express or implied, or assumes any liability or - # responsibility for the use of this SOFTWARE. - # - # If SOFTWARE is modified to produce derivative works, such modified - # SOFTWARE should be clearly marked, so as not to confuse it with the - # version available from LANL. - # - # For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - # or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - # ---------------------------------------------------------------------- - # ACL:license - - - - # simple user-application Makefile using the version of POOMA - # installed in the 'POOMADIR' directory. - ################################################################## - - ### include the POOMA makefile stub, to get compiler flags and libraries - - include $(POOMADIR)/$(POOMAARCH)/lib/Makefile.pooma - - ### the name of this benchmark - - BENCHMARK = Doof2dUMP - - - ### the sources for this compile - - SRC = Doof2dUMP.cpp cpptran1.cpp cpptran2.cpp pooma1.cpp pooma1c.cpp pooma2.cpp pooma3.cpp - - - ### the main target for this makefile - - $(BENCHMARK): $(SRC) - $(POOMA_CXX) $(POOMA_CXX_OPT_ARGS) -o $(BENCHMARK) $(SRC) $(POOMA_INCLUDES) $(POOMA_DEFINES) $(POOMA_LIBS) - - - ### clean things up a bit - - clean: - rm -rf $(BENCHMARK) *.o *.ii ii_files ti_files - - - - # ACL:rcsinfo - # ---------------------------------------------------------------------- - # $RCSfile: Makefile.user,v $ $Author: swhaney $ - # $Revision: 1.5 $ $Date: 2000/03/07 13:14:53 $ - # ---------------------------------------------------------------------- - # ACL:rcsinfo --- 0 ---- Index: cpptran1.cpp =================================================================== RCS file: cpptran1.cpp diff -N cpptran1.cpp *** /tmp/cvstaDJAc Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,48 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dUMP.h" - #include "Pooma/Pooma.h" - - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void cpptran1(Benchmark& doof2d) - { - doof2d.addImplementation(new Doof2dCppTran); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: cpptran1.cpp,v $ $Author: swhaney $ - // $Revision: 1.4 $ $Date: 2000/03/07 13:14:53 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: cpptran2.cpp =================================================================== RCS file: cpptran2.cpp diff -N cpptran2.cpp *** /tmp/cvsje24cD Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,47 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dUMP.h" - #include "Pooma/Pooma.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void cpptran2(Benchmark& doof2d) - { - doof2d.addImplementation(new Doof2dCppTran(doof2d.numPatches())); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: cpptran2.cpp,v $ $Author: swhaney $ - // $Revision: 1.4 $ $Date: 2000/03/07 13:14:53 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: include.mk =================================================================== RCS file: include.mk diff -N include.mk *** /tmp/cvs7qvuP3 Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,59 **** - # Generated by mm.pl: Mon Mar 9 13:58:39 MST 1998 - # ACL:license - # ---------------------------------------------------------------------- - # This software and ancillary information (herein called "SOFTWARE") - # called POOMA (Parallel Object-Oriented Methods and Applications) is - # made available under the terms described here. The SOFTWARE has been - # approved for release with associated LA-CC Number LA-CC-98-65. - # - # Unless otherwise indicated, this SOFTWARE has been authored by an - # employee or employees of the University of California, operator of the - # Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - # the U.S. Department of Energy. The U.S. Government has rights to use, - # reproduce, and distribute this SOFTWARE. The public may copy, distribute, - # prepare derivative works and publicly display this SOFTWARE without - # charge, provided that this Notice and any statement of authorship are - # reproduced on all copies. Neither the Government nor the University - # makes any warranty, express or implied, or assumes any liability or - # responsibility for the use of this SOFTWARE. - # - # If SOFTWARE is modified to produce derivative works, such modified - # SOFTWARE should be clearly marked, so as not to confuse it with the - # version available from LANL. - # - # For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - # or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - # ---------------------------------------------------------------------- - # ACL:license - - - # Wrap make components from SHARED_ROOT and the current directory in the - # proper order so that variables like ODIR have the correct directory-specific - # value at the right moment. See the included files for details of what they - # are doing. This file should NOT be manually edited. - - # Set NEXTDIR, THISDIR and DIR_LIST - include $(SHARED_ROOT)/include1.mk - - # Include list of subdirectories to process - -include $(THISDIR)/subdir.mk - - # Set ODIR, PROJECT_INCLUDES, UNIQUE - include $(SHARED_ROOT)/include2.mk - - # Set list of object files, relative to ODIR - -include $(THISDIR)/objfile.mk - - # Set rules for the ODIR directory - include $(SHARED_ROOT)/compilerules.mk - - # Remove current dir from DIR_LIST - DIR_LIST :=$(filter-out $(firstword $(DIR_LIST)), $(DIR_LIST)) - - - # ACL:rcsinfo - # ---------------------------------------------------------------------- - # $RCSfile: include.mk,v $ $Author: swhaney $ - # $Revision: 1.3 $ $Date: 2000/03/07 13:14:53 $ - # ---------------------------------------------------------------------- - # ACL:rcsinfo --- 0 ---- Index: makefile =================================================================== RCS file: makefile diff -N makefile *** /tmp/cvs5ODYru Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,54 **** - # Generated by mm.pl: Mon Mar 9 13:58:39 MST 1998 - # ACL:license - # ---------------------------------------------------------------------- - # This software and ancillary information (herein called "SOFTWARE") - # called POOMA (Parallel Object-Oriented Methods and Applications) is - # made available under the terms described here. The SOFTWARE has been - # approved for release with associated LA-CC Number LA-CC-98-65. - # - # Unless otherwise indicated, this SOFTWARE has been authored by an - # employee or employees of the University of California, operator of the - # Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - # the U.S. Department of Energy. The U.S. Government has rights to use, - # reproduce, and distribute this SOFTWARE. The public may copy, distribute, - # prepare derivative works and publicly display this SOFTWARE without - # charge, provided that this Notice and any statement of authorship are - # reproduced on all copies. Neither the Government nor the University - # makes any warranty, express or implied, or assumes any liability or - # responsibility for the use of this SOFTWARE. - # - # If SOFTWARE is modified to produce derivative works, such modified - # SOFTWARE should be clearly marked, so as not to confuse it with the - # version available from LANL. - # - # For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - # or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - # ---------------------------------------------------------------------- - # ACL:license - - # This file is user-editable - - PROJECT_ROOT = $(shell cd ../..; pwd) - include $(PROJECT_ROOT)/config/head.mk - - PASS=APP - - default:: Doof2dUMP - - .PHONY: Doof2dUMP - - Doof2dUMP:: $(ODIR)/Doof2dUMP - - $(ODIR)/Doof2dUMP: $(ODIR)/Doof2dUMP.o $(ODIR)/cpptran1.o $(ODIR)/cpptran2.o \ - $(ODIR)/pooma1.o $(ODIR)/pooma2.o $(ODIR)/pooma3.o \ - $(ODIR)/pooma1c.o - $(LinkToSuite) - - include $(SHARED_ROOT)/tail.mk - - # ACL:rcsinfo - # ---------------------------------------------------------------------- - # $RCSfile: makefile,v $ $Author: julianc $ - # $Revision: 1.8 $ $Date: 2000/07/21 21:34:44 $ - # ---------------------------------------------------------------------- - # ACL:rcsinfo --- 0 ---- Index: pooma1.cpp =================================================================== RCS file: pooma1.cpp diff -N pooma1.cpp *** /tmp/cvsBeux4U Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,47 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dUMP.h" - #include "Pooma/Pooma.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void pooma1(Benchmark& doof2d) - { - doof2d.addImplementation(new Doof2dP2); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: pooma1.cpp,v $ $Author: swhaney $ - // $Revision: 1.4 $ $Date: 2000/03/07 13:14:54 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: pooma1c.cpp =================================================================== RCS file: pooma1c.cpp diff -N pooma1c.cpp *** /tmp/cvslt38Gl Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,47 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dUMP.h" - #include "Pooma/Pooma.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void pooma1c(Benchmark& doof2d) - { - doof2d.addImplementation(new Doof2dP2); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: pooma1c.cpp,v $ $Author: swhaney $ - // $Revision: 1.3 $ $Date: 2000/03/07 13:14:54 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: pooma2.cpp =================================================================== RCS file: pooma2.cpp diff -N pooma2.cpp *** /tmp/cvsR8rOjM Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,49 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dUMP.h" - #include "Pooma/Pooma.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void pooma2(Benchmark& doof2d) - { - doof2d.addImplementation(new Doof2dP2(doof2d.numPatches())); - doof2d.addImplementation(new Doof2dP2(doof2d.numPatches(),1)); - doof2d.addImplementation(new Doof2dP2Opt(doof2d.numPatches(),1)); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: pooma2.cpp,v $ $Author: swhaney $ - // $Revision: 1.5 $ $Date: 2000/03/07 13:14:54 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: pooma3.cpp =================================================================== RCS file: pooma3.cpp diff -N pooma3.cpp *** /tmp/cvspgAxWc Fri Sep 28 08:32:22 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,48 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dUMP.h" - #include "Pooma/Pooma.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void pooma3(Benchmark& doof2d) - { - doof2d.addImplementation( - new Doof2dP2(doof2d.numPatches())); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: pooma3.cpp,v $ $Author: swhaney $ - // $Revision: 1.4 $ $Date: 2000/03/07 13:14:54 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- From qmtrack at ns1.codesourcery.com Fri Sep 28 16:19:43 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 28 Sep 2001 16:19:43 -0000 Subject: [QMTrack] new issue doof2dgmp_missing Message-ID: <20010928161943.18456.qmail@mail.codesourcery.com> The issue doof2dgmp_missing was created by oldham on 2001-09-28 10:19 MDT. Issue ID: doof2dgmp_missing Modification Time: 2001-09-28 10:19 MDT Modifying User: oldham State: submitted Summary: Doof2dGMP Concepts Need to Be Merged Into Doof2d Categories: None Discussion: None Description: Stephen Smith recently merged together all the benchmarks/Doof2d codes except for Doof2dGMP, which was removed. The Doof2dGMP ideas need to be added to benchmarks/Doof2d. He said that the Dof2dGMP algorithm differs slightly from the Doof2d algorithm. The latter should be preferred. Assignee: none From oldham at codesourcery.com Fri Sep 28 16:27:49 2001 From: oldham at codesourcery.com (Jeffrey Oldham) Date: Fri, 28 Sep 2001 09:27:49 -0700 Subject: PATCH: Remove Doof2dGMP Message-ID: <20010928092749.A8728@codesourcery.com> Stephen Smith recently merged all of the Doof2d files except these. A QMTrack bug report has been filed, asking that the grid multipatch ideas be merged into the Doof2d code but using the Doof2d algorithm, not the slightly different Doof2dGMP algorithms. Use 'cvs update -P' to remove empty directories. Applied to mainline Nothing to test. Approved by Stephen Smith. Thanks, Jeffrey D. Oldham oldham at codesourcery.com -------------- next part -------------- ? Doof2dGMP.28Sep.10.3.patch ? Doof2dGMP.28Sep.10.3.ChangeLog Index: Doof2dGMP.cpp =================================================================== RCS file: Doof2dGMP.cpp diff -N Doof2dGMP.cpp *** /tmp/cvsq6Qc5U Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,68 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - //----------------------------------------------------------------------------- - // Doof2d Benchmark (GMP version) - //----------------------------------------------------------------------------- - - // Include files - - #include "Pooma/Pooma.h" - #include "Doof2dGMP.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - int main(int argc, char* argv[]) - { - Pooma::initialize(argc, argv); - - Benchmark doof2d(argc, argv); - - cpptran1(doof2d); - cpptran2(doof2d); - pooma1(doof2d); - pooma1c(doof2d); - pooma2(doof2d); - pooma3(doof2d); - - doof2d.setSamplingParameters(100,0,1); - doof2d.run(); - - Pooma::finalize(); - - return 0; - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: Doof2dGMP.cpp,v $ $Author: julianc $ - // $Revision: 1.3 $ $Date: 2000/04/13 19:56:39 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: Doof2dGMP.h =================================================================== RCS file: Doof2dGMP.h diff -N Doof2dGMP.h *** /tmp/cvsUgHoIw Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,582 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - #ifndef POOMA_BENCHMARKS_DOOF2DGMP_DOOF2DGMP_H - #define POOMA_BENCHMARKS_DOOF2DGMP_DOOF2DGMP_H - - //----------------------------------------------------------------------------- - // Classes Doof2dGMPBase, Doof2dGMPCppTran, Doof2dGMPP2. - //----------------------------------------------------------------------------- - - // Include files - - #include "Pooma/Arrays.h" - #include "Utilities/Benchmark.h" - - #include - #include - #include - - //----------------------------------------------------------------------------- - // Doof2dBase class definitions. We define this as a partially specialized - // class so it is easy to make subclasses work for GMP or not. - //----------------------------------------------------------------------------- - - // General version. - - template - class Doof2dBase { }; - - // Non-GMP version. - - template - class Doof2dBase - : public Implementation - { - public: - - // Dummy constructor. - - Doof2dBase(int = 1, int = 0) { } - - // Typedefs for the Array types we'll be using here. - - typedef Array<2,double,EngineTag> Array2D; - - // Initialize function gets the size and adjusts the arrays. - - void initialize(int n) - { - // Save the problem size. - - n_m = n; - - // Get new array domain. - - Interval<1> N(1, n_m); - Interval<2> newDomain(N, N); - - // Resize the arrays. - - a_m.initialize(newDomain); - b_m.initialize(newDomain); - - // Set up domains. - - I = Interval<1>(2,n_m-1); - J = Interval<1>(2,n_m-1); - - // Intialize Array element values. - - setInitialConditions(); - } - - // Return references to arrays. - - Array2D &aRef() { return a_m; } - Array2D &bRef() { return b_m; } - - // Return value for checking result of benchmark run. - - double resultCheck() const { return check_m; } - - // Return number of flops in this kernel. - - double opCount() const { return ( 90 * ((double)n_m - 2) * ((double)n_m - 2) ); } - - protected: - - // 2D data arrays. - - Array2D a_m, b_m; - - // Problem check value. - - double check_m; - - // Problem size. - - int n_m; - - // Domains for stencil. - - Interval<1> I, J; - - private: - - void setInitialConditions() - { - // Initialize arrays. - - aRef() = 0.0; - bRef() = 0.0; - Pooma::blockAndEvaluate(); - aRef()(n_m/2,n_m/2) = 1000.0; - } - }; - - // GMP version. - - template - class Doof2dBase : public Implementation { - public: - - // Typedefs for the Array types we'll be using here. - - typedef Array<2,double, MultiPatch > Array2D; - - // Constructor allows us to specify the number of patches in each direction - // and the number of guard cells. - - Doof2dBase(int np = 1, int ng = 0) - : np_m(np), ng_m(ng), layout_m(NULL), a_m(NULL), b_m(NULL) - { } - - // Destructor deletes pointers. - - ~Doof2dBase() - { - delete a_m; - delete b_m; - delete layout_m; - } - - // Return references to arrays. - - Array2D &aRef() { return *a_m; } - Array2D &bRef() { return *b_m; } - - // Initialize function gets the size and adjusts the arrays. - - void initialize(int n) - { - // Save the problem size. We need to make sure we have evenly sized blocks. - - n_m = (n / np_m) * np_m; - - // Delete old pointers. - - delete a_m; - delete b_m; - delete layout_m; - - // Get new array domain. - - Interval<1> N(1, n_m); - Interval<2> newDomain(N, N); - - // Create the block sizes. - - Loc<2> blocks(np_m, np_m); - - // Create the partitioner. - - // int gsize = np_m*.8; - // IndirectionList ax(gsize); - // // upper half of each axis is doubled; - // int j=0; - // ax(0)=N[0].first(); - // for(int i=1;i.4) ++j; - // ax(i)=(i+j)*(n/np_m); - // } - // ax(gsize-1)=N[0].last()+1; - - Range<1> ax(N[0].first(),N[0].last()+1,n/np_m); - - Grid<2> grd(ax,ax); - GridPartition<2> partition(grd, GuardLayers<2>(ng_m)); - - // Create the layout. - - layout_m = new GridLayout<2>(newDomain, partition,ReplicatedTag()); - - // Create the arrays. - - a_m = new Array2D(*layout_m); - b_m = new Array2D(*layout_m); - - // Set up domains. - - I = Interval<1>(2,n_m-1); - J = Interval<1>(2,n_m-1); - - // Intialize Array element values. - - setInitialConditions(); - } - - // Return value for checking result of benchmark run. - - double resultCheck() const { return check_m; } - - // Return number of flops in this kernel. - - double opCount() const { return ( 90 * ((double) n_m - 2) * ((double)n_m-2) ); } - - protected: - - // 2D data arrays. - - Array2D *a_m, *b_m; - - // Problem check value. - - double check_m; - - // Problem size/number of patches. - - int n_m, np_m; - - // Guard layers. - - int ng_m; - - // Domains for stencil. - - Interval<1> I, J; - - // Layout. - - GridLayout<2> *layout_m; - - private: - - void setInitialConditions() - { - // Initialize arrays. - - aRef() = 0.0; - bRef() = 0.0; - Pooma::blockAndEvaluate(); - aRef()(n_m/2,n_m/2) = 1000.0; - } - }; - - - //----------------------------------------------------------------------------- - // Doof2dGMPCppTran class definition. - //----------------------------------------------------------------------------- - - template - class Doof2dCppTran : public Doof2dBase { - public: - - typedef typename Doof2dBase::Array2D Array2D; - - // Constructor allows us to specify the number of patches in each direction. - - Doof2dCppTran(int np = 1) - : Doof2dBase(np) - { } - - // This is a C++Tran benchmark, perhaps using GMP. - - const char* type() const { return CppTranType(); } - const char* qualification() const - { - if (GMP) - { - if (typeid(PatchTag) == typeid(Brick)) - return "BrickGMP"; - else - return "CompBrickGMP"; - } - else - { - if (typeid(PatchTag) == typeid(Brick)) - return "Brick"; - else - return "CompBrick"; - } - } - - void run() - { - const double fact = 1.0 / 9.0; - Array2D &a = aRef(); - const Array2D &b = bRef(); - int i, j, k; - - // Run kernel. - - for (j = 1; j <= n_m; j++) - { - for (i = 1; i <= n_m; i++) - { - b(i,j) = 0.0; - } - } - b(n_m/2,n_m/2) = 1000.0; - for (k = 0; k < 10; ++k) - { - for (j = 1; j <= n_m; j++) - { - for (i = 1; i <= n_m; i++) - { - a(i,j) = b(i,j); - } - } - for (j = 2; j <= n_m-1; j++) - { - for (i = 2; i <= n_m-1; i++) - { - b(i,j) = fact * - (a(i+1,j+1) + a(i+1,j ) + a(i+1,j-1) + - a(i ,j+1) + a(i ,j ) + a(i ,j-1) + - a(i-1,j+1) + a(i-1,j ) + a(i-1,j-1)); - } - } - } - - // Save result for checking. - - check_m = b(n_m / 2, n_m / 2); - } - }; - - - //----------------------------------------------------------------------------- - // Doof2dGMPP2 class definition. - //----------------------------------------------------------------------------- - - template - class Doof2dP2 - : public Doof2dBase - { - public: - - typedef typename Doof2dBase::Array2D Array2D; - - // Constructor allows us to specify the number of patches in each direction. - - Doof2dP2(int np = 1, int ng = 0) - : Doof2dBase(np,ng), - guarded_m(ng > 0) - { } - - // This is a P2 benchmark, perhaps using GMP. - - const char* type() const { return P2Type(); } - const char* qualification() const - { - if (guarded_m) - { - // we're using guard cells, so return a cryptic sounding - // 12 letter description - PAssert(GMP); - if (typeid(PatchTag) == typeid(Brick)) - return "GCBrickGMP"; - else - return "GCCmpBrckGMP"; - } - else - { - if (GMP) - { - if (typeid(PatchTag) == typeid(Brick)) - return "BrickGMP"; - else - return "CompBrickGMP"; - } - else - { - if (typeid(PatchTag) == typeid(Brick)) - return "Brick"; - else - return "CompBrick"; - } - } - } - - void run() - { - const double fact = 1.0 / 9.0; - Array2D &a = aRef(); - const Array2D &b = bRef(); - int k; - - // Run kernel. - - b = 0.0; - Pooma::blockAndEvaluate(); - b(n_m/2,n_m/2) = 1000.0; - - for (k = 0; k < 10; ++k) - { - a = b; - b(I,J) = fact * - (a(I+1,J+1) + a(I+1,J ) + a(I+1,J-1) + - a(I ,J+1) + a(I ,J ) + a(I ,J-1) + - a(I-1,J+1) + a(I-1,J ) + a(I-1,J-1)); - } - - Pooma::blockAndEvaluate(); - - // Save result for checking. - - check_m = b(n_m / 2, n_m / 2); - } - - private: - bool guarded_m; - }; - - //----------------------------------------------------------------------------- - // Stencil DoofNinePt - //----------------------------------------------------------------------------- - - class DoofNinePt - { - public: - DoofNinePt() {} - - template - inline - typename A::Element_t - operator()(const A& x, int i, int j) const - { - return ( (1.0/9.0) * - ( x(i+1,j+1) + x(i+1,j ) + x(i+1,j-1) + - x(i ,j+1) + x(i ,j ) + x(i ,j-1) + - x(i-1,j+1) + x(i-1,j ) + x(i-1,j-1) ) ); - } - - inline int lowerExtent(int) const { return 1; } - inline int upperExtent(int) const { return 1; } - - private: - }; - - //----------------------------------------------------------------------------- - // Doof2dGMPP2Opt class definition. - //----------------------------------------------------------------------------- - - template - class Doof2dP2Opt - : public Doof2dBase - { - public: - - typedef typename Doof2dBase::Array2D Array2D; - - // Constructor allows us to specify the number of patches in each direction. - - Doof2dP2Opt(int np = 1, int ng = 0) - : Doof2dBase(np,ng), - guarded_m(ng > 0) - { } - - // This is a P2 benchmark, perhaps using GMP. - - const char* type() const { return "P2Opt"; } - const char* qualification() const - { - if (guarded_m) - { - // we're using guard cells, so return a cryptic sounding - // 12 letter description - PAssert(GMP); - if (typeid(PatchTag) == typeid(Brick)) - return "GCBrickGMP"; - else - return "GCCmpBrckGMP"; - } - else - { - if (GMP) - { - if (typeid(PatchTag) == typeid(Brick)) - return "BrickGMP"; - else - return "CompBrickGMP"; - } - else - { - if (typeid(PatchTag) == typeid(Brick)) - return "Brick"; - else - return "CompBrick"; - } - } - } - - void run() - { - Array2D &a = aRef(); - const Array2D &b = bRef(); - int k; - Interval<2> IJ(I,J); - - // Run kernel. - - b = 0.0; - Pooma::blockAndEvaluate(); - b(n_m/2,n_m/2) = 1000.0; - - for (k = 0; k < 10; ++k) - { - a = b; - - // Note we use this form of the stencil since adding guard cells can - // add external guard cells, so the domain of a might be bigger than - // we expect, in which case stencil_m(a) would be bigger than IJ. - - b(IJ) = stencil_m(a,IJ); - } - - Pooma::blockAndEvaluate(); - - // Save result for checking. - - check_m = b(n_m / 2, n_m / 2); - } - - private: - bool guarded_m; - Stencil stencil_m; - }; - - - - void cpptran1(Benchmark&); - void cpptran2(Benchmark&); - void pooma1(Benchmark&); - void pooma1c(Benchmark&); - void pooma2(Benchmark&); - void pooma3(Benchmark&); - - #endif // POOMA_BENCHMARKS_DOOF2DGMP_DOOF2DGMP_H - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: Doof2dGMP.h,v $ $Author: sa_smith $ - // $Revision: 1.20 $ $Date: 1999/05/20 12:24 - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: Makefile.user =================================================================== RCS file: Makefile.user diff -N Makefile.user *** /tmp/cvsYKwYl8 Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,67 **** - ################################################################## - # ACL:license - # ---------------------------------------------------------------------- - # This software and ancillary information (herein called "SOFTWARE") - # called POOMA (Parallel Object-Oriented Methods and Applications) is - # made available under the terms described here. The SOFTWARE has been - # approved for release with associated LA-CC Number LA-CC-98-65. - # - # Unless otherwise indicated, this SOFTWARE has been authored by an - # employee or employees of the University of California, operator of the - # Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - # the U.S. Department of Energy. The U.S. Government has rights to use, - # reproduce, and distribute this SOFTWARE. The public may copy, distribute, - # prepare derivative works and publicly display this SOFTWARE without - # charge, provided that this Notice and any statement of authorship are - # reproduced on all copies. Neither the Government nor the University - # makes any warranty, express or implied, or assumes any liability or - # responsibility for the use of this SOFTWARE. - # - # If SOFTWARE is modified to produce derivative works, such modified - # SOFTWARE should be clearly marked, so as not to confuse it with the - # version available from LANL. - # - # For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - # or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - # ---------------------------------------------------------------------- - # ACL:license - - - - # simple user-application Makefile using the version of POOMA - # installed in the 'POOMADIR' directory. - ################################################################## - - ### include the POOMA makefile stub, to get compiler flags and libraries - - include $(POOMADIR)/$(POOMAARCH)/lib/Makefile.pooma - - ### the name of this benchmark - - BENCHMARK = Doof2dUMP - - - ### the sources for this compile - - SRC = Doof2dUMP.cpp cpptran1.cpp cpptran2.cpp pooma1.cpp pooma1c.cpp pooma2.cpp pooma3.cpp - - - ### the main target for this makefile - - $(BENCHMARK): $(SRC) - $(POOMA_CXX) $(POOMA_CXX_OPT_ARGS) -o $(BENCHMARK) $(SRC) $(POOMA_INCLUDES) $(POOMA_DEFINES) $(POOMA_LIBS) - - - ### clean things up a bit - - clean: - rm -rf $(BENCHMARK) *.o *.ii ii_files ti_files - - - - # ACL:rcsinfo - # ---------------------------------------------------------------------- - # $RCSfile: Makefile.user,v $ $Author: swhaney $ - # $Revision: 1.2 $ $Date: 2000/03/07 13:14:50 $ - # ---------------------------------------------------------------------- - # ACL:rcsinfo --- 0 ---- Index: cpptran1.cpp =================================================================== RCS file: cpptran1.cpp diff -N cpptran1.cpp *** /tmp/cvsl2XCZJ Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,48 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dGMP.h" - #include "Pooma/Pooma.h" - - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void cpptran1(Benchmark& doof2d) - { - doof2d.addImplementation(new Doof2dCppTran); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: cpptran1.cpp,v $ $Author: swhaney $ - // $Revision: 1.2 $ $Date: 2000/03/07 13:14:51 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: cpptran2.cpp =================================================================== RCS file: cpptran2.cpp diff -N cpptran2.cpp *** /tmp/cvsiC3lDl Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,47 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dGMP.h" - #include "Pooma/Pooma.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void cpptran2(Benchmark& doof2d) - { - doof2d.addImplementation(new Doof2dCppTran(doof2d.numPatches())); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: cpptran2.cpp,v $ $Author: swhaney $ - // $Revision: 1.2 $ $Date: 2000/03/07 13:14:51 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: include.mk =================================================================== RCS file: include.mk diff -N include.mk *** /tmp/cvsbjK8gX Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,59 **** - # Generated by mm.pl: Mon Mar 9 13:58:39 MST 1998 - # ACL:license - # ---------------------------------------------------------------------- - # This software and ancillary information (herein called "SOFTWARE") - # called POOMA (Parallel Object-Oriented Methods and Applications) is - # made available under the terms described here. The SOFTWARE has been - # approved for release with associated LA-CC Number LA-CC-98-65. - # - # Unless otherwise indicated, this SOFTWARE has been authored by an - # employee or employees of the University of California, operator of the - # Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - # the U.S. Department of Energy. The U.S. Government has rights to use, - # reproduce, and distribute this SOFTWARE. The public may copy, distribute, - # prepare derivative works and publicly display this SOFTWARE without - # charge, provided that this Notice and any statement of authorship are - # reproduced on all copies. Neither the Government nor the University - # makes any warranty, express or implied, or assumes any liability or - # responsibility for the use of this SOFTWARE. - # - # If SOFTWARE is modified to produce derivative works, such modified - # SOFTWARE should be clearly marked, so as not to confuse it with the - # version available from LANL. - # - # For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - # or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - # ---------------------------------------------------------------------- - # ACL:license - - - # Wrap make components from SHARED_ROOT and the current directory in the - # proper order so that variables like ODIR have the correct directory-specific - # value at the right moment. See the included files for details of what they - # are doing. This file should NOT be manually edited. - - # Set NEXTDIR, THISDIR and DIR_LIST - include $(SHARED_ROOT)/include1.mk - - # Include list of subdirectories to process - -include $(THISDIR)/subdir.mk - - # Set ODIR, PROJECT_INCLUDES, UNIQUE - include $(SHARED_ROOT)/include2.mk - - # Set list of object files, relative to ODIR - -include $(THISDIR)/objfile.mk - - # Set rules for the ODIR directory - include $(SHARED_ROOT)/compilerules.mk - - # Remove current dir from DIR_LIST - DIR_LIST :=$(filter-out $(firstword $(DIR_LIST)), $(DIR_LIST)) - - - # ACL:rcsinfo - # ---------------------------------------------------------------------- - # $RCSfile: include.mk,v $ $Author: swhaney $ - # $Revision: 1.2 $ $Date: 2000/03/07 13:14:51 $ - # ---------------------------------------------------------------------- - # ACL:rcsinfo --- 0 ---- Index: makefile =================================================================== RCS file: makefile diff -N makefile *** /tmp/cvse99ZUy Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,54 **** - # Generated by mm.pl: Mon Mar 9 13:58:39 MST 1998 - # ACL:license - # ---------------------------------------------------------------------- - # This software and ancillary information (herein called "SOFTWARE") - # called POOMA (Parallel Object-Oriented Methods and Applications) is - # made available under the terms described here. The SOFTWARE has been - # approved for release with associated LA-CC Number LA-CC-98-65. - # - # Unless otherwise indicated, this SOFTWARE has been authored by an - # employee or employees of the University of California, operator of the - # Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - # the U.S. Department of Energy. The U.S. Government has rights to use, - # reproduce, and distribute this SOFTWARE. The public may copy, distribute, - # prepare derivative works and publicly display this SOFTWARE without - # charge, provided that this Notice and any statement of authorship are - # reproduced on all copies. Neither the Government nor the University - # makes any warranty, express or implied, or assumes any liability or - # responsibility for the use of this SOFTWARE. - # - # If SOFTWARE is modified to produce derivative works, such modified - # SOFTWARE should be clearly marked, so as not to confuse it with the - # version available from LANL. - # - # For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - # or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - # ---------------------------------------------------------------------- - # ACL:license - - # This file is user-editable - - PROJECT_ROOT = $(shell cd ../..; pwd) - include $(PROJECT_ROOT)/config/head.mk - - PASS=APP - - default:: Doof2dGMP - - .PHONY: Doof2dGMP - - Doof2dGMP:: $(ODIR)/Doof2dGMP - - $(ODIR)/Doof2dGMP: $(ODIR)/Doof2dGMP.o $(ODIR)/cpptran1.o $(ODIR)/cpptran2.o \ - $(ODIR)/pooma1.o $(ODIR)/pooma2.o $(ODIR)/pooma3.o \ - $(ODIR)/pooma1c.o - $(LinkToSuite) - - include $(SHARED_ROOT)/tail.mk - - # ACL:rcsinfo - # ---------------------------------------------------------------------- - # $RCSfile: makefile,v $ $Author: julianc $ - # $Revision: 1.3 $ $Date: 2000/07/21 21:34:44 $ - # ---------------------------------------------------------------------- - # ACL:rcsinfo --- 0 ---- Index: pooma1.cpp =================================================================== RCS file: pooma1.cpp diff -N pooma1.cpp *** /tmp/cvsJM2Vya Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,47 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dGMP.h" - #include "Pooma/Pooma.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void pooma1(Benchmark& doof2d) - { - doof2d.addImplementation(new Doof2dP2); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: pooma1.cpp,v $ $Author: swhaney $ - // $Revision: 1.2 $ $Date: 2000/03/07 13:14:51 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: pooma1c.cpp =================================================================== RCS file: pooma1c.cpp diff -N pooma1c.cpp *** /tmp/cvsUrCUcM Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,47 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dGMP.h" - #include "Pooma/Pooma.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void pooma1c(Benchmark& doof2d) - { - doof2d.addImplementation(new Doof2dP2); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: pooma1c.cpp,v $ $Author: swhaney $ - // $Revision: 1.2 $ $Date: 2000/03/07 13:14:52 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: pooma2.cpp =================================================================== RCS file: pooma2.cpp diff -N pooma2.cpp *** /tmp/cvsDvNWQn Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,49 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dGMP.h" - #include "Pooma/Pooma.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void pooma2(Benchmark& doof2d) - { - doof2d.addImplementation(new Doof2dP2(doof2d.numPatches())); - doof2d.addImplementation(new Doof2dP2(doof2d.numPatches(),1)); - doof2d.addImplementation(new Doof2dP2Opt(doof2d.numPatches(),1)); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: pooma2.cpp,v $ $Author: swhaney $ - // $Revision: 1.2 $ $Date: 2000/03/07 13:14:52 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- Index: pooma3.cpp =================================================================== RCS file: pooma3.cpp diff -N pooma3.cpp *** /tmp/cvsSvs2uZ Fri Sep 28 10:26:05 2001 --- /dev/null Fri Mar 23 21:37:44 2001 *************** *** 1,48 **** - // -*- C++ -*- - // ACL:license - // ---------------------------------------------------------------------- - // This software and ancillary information (herein called "SOFTWARE") - // called POOMA (Parallel Object-Oriented Methods and Applications) is - // made available under the terms described here. The SOFTWARE has been - // approved for release with associated LA-CC Number LA-CC-98-65. - // - // Unless otherwise indicated, this SOFTWARE has been authored by an - // employee or employees of the University of California, operator of the - // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with - // the U.S. Department of Energy. The U.S. Government has rights to use, - // reproduce, and distribute this SOFTWARE. The public may copy, distribute, - // prepare derivative works and publicly display this SOFTWARE without - // charge, provided that this Notice and any statement of authorship are - // reproduced on all copies. Neither the Government nor the University - // makes any warranty, express or implied, or assumes any liability or - // responsibility for the use of this SOFTWARE. - // - // If SOFTWARE is modified to produce derivative works, such modified - // SOFTWARE should be clearly marked, so as not to confuse it with the - // version available from LANL. - // - // For more information about POOMA, send e-mail to pooma at acl.lanl.gov, - // or visit the POOMA web page at http://www.acl.lanl.gov/pooma/. - // ---------------------------------------------------------------------- - // ACL:license - - // include files - #include "Doof2dGMP.h" - #include "Pooma/Pooma.h" - - //----------------------------------------------------------------------------- - // Main program. - //----------------------------------------------------------------------------- - - void pooma3(Benchmark& doof2d) - { - doof2d.addImplementation( - new Doof2dP2(doof2d.numPatches())); - } - - // ACL:rcsinfo - // ---------------------------------------------------------------------- - // $RCSfile: pooma3.cpp,v $ $Author: swhaney $ - // $Revision: 1.2 $ $Date: 2000/03/07 13:14:52 $ - // ---------------------------------------------------------------------- - // ACL:rcsinfo --- 0 ---- From qmtrack at ns1.codesourcery.com Fri Sep 28 16:46:29 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 28 Sep 2001 16:46:29 -0000 Subject: [QMTrack] new issue test_directory_updating Message-ID: <20010928164629.18702.qmail@mail.codesourcery.com> The issue test_directory_updating was created by oldham on 2001-09-28 10:46 MDT. Issue ID: test_directory_updating Modification Time: 2001-09-28 10:46 MDT Modifying User: oldham State: submitted Summary: Pooma's test Directory Needs Updating Categories: correctness Discussion: None Description: The "test" directory at the top of the Pooma source tree has files which may need removing xor updating. If revised, they probably should be moved somewhere else. Assignee: oldham From qmtrack at ns1.codesourcery.com Fri Sep 28 17:05:56 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 28 Sep 2001 17:05:56 -0000 Subject: [QMTrack] new issue nightly_irix_regression_tests Message-ID: <20010928170556.18857.qmail@mail.codesourcery.com> The issue nightly_irix_regression_tests was created by oldham on 2001-09-28 11:05 MDT. Issue ID: nightly_irix_regression_tests Modification Time: 2001-09-28 11:05 MDT Modifying User: oldham State: submitted Summary: Establish Nightly Pooma Regression Tests on Nirvana Categories: correctness Discussion: None Description: Set up nightly Pooma QMTest tests on nirvana. Assignee: oldham From cummings at linkline.com Fri Sep 28 18:35:49 2001 From: cummings at linkline.com (Julian C. Cummings) Date: Fri, 28 Sep 2001 11:35:49 -0700 Subject: [pooma-dev] Supported Compilers? In-Reply-To: Message-ID: RE: [pooma-dev] Supported Compilers?Jim, I addressed this issue for the SGI CC compiler some time ago by inserting into the src/arch/SGI area substitutes for the missing standard header files that include the old-style .h headers and then inject the stuff from the C standard library into the std namespace. So in fact, you should now be able to use the standard header file names and the std:: qualifier with C library functions under the SGI CC compiler. I thought I updated the src/arch/Intel area in a similar way, but I may have overlooked some things. In any event, there is a prescription for fixing this problem so that the standard names can be used. I was going to respond to your recent update of the FileSetWriter.h file and request that you try including instead of and use std::memset instead of memset. This should work under SGI CC using the substitute header in src/arch/SGI. If there is something missing or if we need a similar header for src/arch/Intel, let's fix the problem there and try to use standard include files and syntax in all the Pooma header files. It should be safe to do so at this point. Julian C. -----Original Message----- From: James Crotinger [mailto:jcrotinger at proximation.com] Sent: Friday, September 28, 2001 8:57 AM To: 'oldham at codesourcery.com'; pooma-dev at pooma.codesourcery.com Subject: RE: [pooma-dev] Supported Compilers? We do use compilers that don't put C functions in std::. I think both SGI CC and VC++ have .h-less C headers, but don't put the C functions in std::. The .h-less C header files are standard conforming and at least prior to the 2.4 project our rule was to use these since they were more portable. > -----Original Message----- > From: Jeffrey Oldham [mailto:oldham at codesourcery.com] > Sent: Friday, September 28, 2001 8:23 AM > To: pooma-dev at pooma.codesourcery.com > Subject: [pooma-dev] Supported Compilers? > > > > For Pooma, what compilers are we supporting? In particular, > are we supporting any compilers did not recognize the standard > '.h'-less header filenames? > > Right now, the code uses both deprecated and standard header > filenames. > > Thanks, > Jeffrey D. Oldham > oldham at codesourcery.com > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cummings at linkline.com Fri Sep 28 18:46:23 2001 From: cummings at linkline.com (Julian C. Cummings) Date: Fri, 28 Sep 2001 11:46:23 -0700 Subject: [pooma-dev] [QMTrack] new issue kcc_auto_oneper In-Reply-To: <20010927224301.11757.qmail@mail.codesourcery.com> Message-ID: I'm a little baffled by this because I always thought that the --oneper flag in KCC was a convenience meant to slim down executable sizes, not a necessity to avoid multiple definition errors. We have not set the --oneper flag as the default in the past because it makes KCC builds painfully slow. Could you please cite an example or two of things that don't build correctly in Pooma without the --oneper flag? Maybe someone with access to the KCC compiler could have a look and see if we are doing something fundamentally wrong when building Pooma codes under KCC. For example, multiple definition errors usually come from not properly resolving object files against one another at prelinking time before the actual link step. Julian C. > -----Original Message----- > From: qmtrack at ns1.codesourcery.com [mailto:qmtrack at ns1.codesourcery.com] > Sent: Thursday, September 27, 2001 3:43 PM > To: pooma-dev at pooma.codesourcery.com > Subject: [pooma-dev] [QMTrack] new issue kcc_auto_oneper > > > The issue kcc_auto_oneper was created by oldham on 2001-09-27 16:43 MDT. > > Issue ID: kcc_auto_oneper > Modification Time: 2001-09-27 16:43 MDT > Modifying User: oldham > State: submitted > Summary: When Using KCC, --oneper Should Be Default > Categories: correctness > Discussion: None > Description: > KCC needs the --one_per flag to avoid multiple template > instantiations. The --oneper Pooma configuration flag causes > --one_per to be passed to KCC. This should be the deafault for > KCC: both Stephen and I regularly trip over this. > > > Assignee: oldham > From qmtrack at ns1.codesourcery.com Fri Sep 28 19:15:46 2001 From: qmtrack at ns1.codesourcery.com (qmtrack at ns1.codesourcery.com) Date: 28 Sep 2001 19:15:46 -0000 Subject: [QMTrack] new issue multimaterial_benchmark_needed Message-ID: <20010928191546.19912.qmail@mail.codesourcery.com> The issue multimaterial_benchmark_needed was created by oldham on 2001-09-28 13:15 MDT. Issue ID: multimaterial_benchmark_needed Modification Time: 2001-09-28 13:15 MDT Modifying User: oldham State: submitted Summary: Multimaterial Benchmark Needed to Stress Code Categories: other Discussion: None Description: Currently, we do not have any benchmarks demonstrating multi-material fields. Stephen suggested adding an ABCTest using Fields and multimaterial fields. OpCount will also need to be modified. Assignee: oldham From wdn at lanl.gov Fri Sep 28 21:10:26 2001 From: wdn at lanl.gov (Dave Nystrom) Date: Fri, 28 Sep 2001 15:10:26 -0600 Subject: [pooma-dev] [QMTrack] new issue kcc_auto_oneper In-Reply-To: References: <20010927224301.11757.qmail@mail.codesourcery.com> Message-ID: <15284.59202.984932.711356@saltydog.lanl.gov> I think the --one_per option for EDG based compilers is able to both prevent multiple symbol definition warnings and reduce code bloat in the final executable. In terms of the multiple symbol definition warnings, a simple example could be that you have two libraries which each have a .o in them that among other things includes some templates from say vector. If the executable references symbols in each of these .o files, then the loader will pull them both in if static linking is being used and you will get a multiple symbol definition warning. However, if you use the --one_per option then each of the vector templates will be in a separate .o file and the linker only has to pull one in. In a similar fashion, the executable can be smaller if you have a lot of template code because it does not have to pull in a bunch of functions it does not need just to get one it does need. Using library closure also prevents multiple symbol definitions in many cases but it is not usually practical to close libraries against all the lower level C++ libraries that you might need to link against. Having said all that, I have an interesting story to share:-). We just recently tried compiling our Pooma 2 based code using static libraries and --one_per in an effort to get around the problem of the SGI C compiler's quadratic scaling with the size of the C file when doing unoptimized debug builds. We also decided not to use our explicit instantiation libraries mainly because they were so big that they made the SGI loader croak. The result of all this was that we built what may very well be the world's first multi-gigabyte library. The size of our libphysicsbeta.a library was a hefty 2.4 gigabytes:-). In our work, we have discovered that at least with KCC, static libraries are bigger than shared libraries and using the --one_per option more than doubles the size of the library. Well, the SGI loader can't handle a 2.4 GB library either. So, I don't think we will be using --one_per until SGI fixes the problem with their loader. Dave Nystrom email: wdn at lanl.gov LANL X-3 phone: 505-667-7913 fax: 505-665-3046 Julian C. Cummings writes: > I'm a little baffled by this because I always > thought that the --oneper flag in KCC was a > convenience meant to slim down executable sizes, > not a necessity to avoid multiple definition > errors. We have not set the --oneper flag as > the default in the past because it makes KCC > builds painfully slow. Could you please cite > an example or two of things that don't build > correctly in Pooma without the --oneper flag? > Maybe someone with access to the KCC compiler > could have a look and see if we are doing > something fundamentally wrong when building > Pooma codes under KCC. For example, multiple > definition errors usually come from not properly > resolving object files against one another at > prelinking time before the actual link step. > > Julian C. > > > > -----Original Message----- > > From: qmtrack at ns1.codesourcery.com [mailto:qmtrack at ns1.codesourcery.com] > > Sent: Thursday, September 27, 2001 3:43 PM > > To: pooma-dev at pooma.codesourcery.com > > Subject: [pooma-dev] [QMTrack] new issue kcc_auto_oneper > > > > > > The issue kcc_auto_oneper was created by oldham on 2001-09-27 16:43 MDT. > > > > Issue ID: kcc_auto_oneper > > Modification Time: 2001-09-27 16:43 MDT > > Modifying User: oldham > > State: submitted > > Summary: When Using KCC, --oneper Should Be Default > > Categories: correctness > > Discussion: None > > Description: > > KCC needs the --one_per flag to avoid multiple template > > instantiations. The --oneper Pooma configuration flag causes > > --one_per to be passed to KCC. This should be the deafault for > > KCC: both Stephen and I regularly trip over this. > > > > > > Assignee: oldham > > > From mark at codesourcery.com Sat Sep 29 20:25:23 2001 From: mark at codesourcery.com (Mark Mitchell) Date: Sat, 29 Sep 2001 20:25:23 -0000 Subject: [pooma-dev] Supported Compilers? In-Reply-To: Message-ID: <1067743564.1001795123@[192.168.0.164]> --On Friday, September 28, 2001 9:56 AM -0600 James Crotinger wrote: > > We do use compilers that don't put C functions in std::. I think both SGI > CC and VC++ have .h-less C headers, but don't put the C functions in > std::. The .h-less C header files are standard conforming and at least > prior to the 2.4 project our rule was to use these since they were more > portable. I think that's a good policy: do not assume `std', but do assume that .h-less headers exist. -- Mark From jhall at swcp.com Sun Sep 30 19:51:44 2001 From: jhall at swcp.com (John Hall) Date: Sun, 30 Sep 2001 13:51:44 -0600 Subject: Patch to DomainLayout for Blanca branch Message-ID: Index: DomainLayout.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Layout/DomainLayout.h,v retrieving revision 1.24.4.1 diff -c -2 -r1.24.4.1 DomainLayout.h *** DomainLayout.h 2001/09/21 19:42:25 1.24.4.1 --- DomainLayout.h 2001/09/30 19:50:34 *************** *** 340,343 **** --- 340,366 ---- } + // Return begin and end iterators for the list of all global subdomains (compatibility) + + inline iterator beginGlobal() + { + return begin(); + } + inline iterator endGlobal() + { + return end(); + } + inline const_iterator beginGlobal() const + { + return begin(); + } + inline const_iterator endGlobal() const + { + return end(); + } + inline long sizeGlobal() const + { + return size(); + } + // Return begin and end iterators for the list of all remote subdomains -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1033 bytes Desc: not available URL: From johnharveyhall at qwest.net Sun Sep 30 19:55:21 2001 From: johnharveyhall at qwest.net (John Hall) Date: Sun, 30 Sep 2001 13:55:21 -0600 Subject: Patch to PackUnpack.h for Blanca branch Message-ID: Index: PackUnpack.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Functions/PackUnpack.h,v retrieving revision 1.1.2.2 diff -c -2 -r1.1.2.2 PackUnpack.h *** PackUnpack.h 2001/09/11 16:25:06 1.1.2.2 --- PackUnpack.h 2001/09/30 19:54:10 *************** *** 151,156 **** typedef typename Patch::Type_t PatchField_t; PatchField_t patch = field.patchLocal(i); ! LoopApplyEvaluator::evaluate(PackLocalPatches(patch, current), ! patch.domain()); current += patch.domain().size(); } --- 151,156 ---- typedef typename Patch::Type_t PatchField_t; PatchField_t patch = field.patchLocal(i); ! PackLocalPatches plp(patch, current); ! LoopApplyEvaluator::evaluate(plp, patch.domain()); current += patch.domain().size(); } *************** *** 216,221 **** typedef typename Patch::Type_t PatchField_t; PatchField_t patch = field.patchLocal(i); ! LoopApplyEvaluator::evaluate(UnPackLocalPatches(patch, current), ! patch.physicalDomain()); current += patch.physicalDomain().size(); } --- 216,221 ---- typedef typename Patch::Type_t PatchField_t; PatchField_t patch = field.patchLocal(i); ! UnPackLocalPatches uplp(patch, current); ! LoopApplyEvaluator::evaluate(uplp, patch.physicalDomain()); current += patch.physicalDomain().size(); } -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 1668 bytes Desc: not available URL: