<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>86421</bug_id>
          
          <creation_ts>2012-05-14 17:59:02 -0700</creation_ts>
          <short_desc>[chromium] Add unit testing to WebTransformationMatrix.cpp</short_desc>
          <delta_ts>2012-05-21 18:29:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>vangelis</cc>
    
    <cc>vollick</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>623520</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-14 17:59:02 -0700</bug_when>
    <thetext>WebTransformationMatrix is going to become the compositor&apos;s data type for transforms.  It currently wraps WebCore::TransformationMatrix, and in the future there will be additional implementation of the same interface. However, transformation math is a high profile, high risk black hole for errors... there is a lot of &quot;almost-redundant&quot; code that can have tiny mistakes that are very difficult to find.

So it is probably a good idea to be very aggressive with testing here, going for very tight, specific, and complete test coverage.

This patch will provide all of those tests, except for the mapRect/mapQuad/projectQuad routines that will eventually be removed.  The new mapRect/mapQuad/projectQuad functionality would be in CCMathUtil, and testing does need to be added to that code soon.  Then, after the dust settles from GTFO, WebTransformationMatrix and CCMathUtil could probably be merged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623569</commentid>
    <comment_count>1</comment_count>
      <attachid>141843</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-14 19:13:36 -0700</bug_when>
    <thetext>Created attachment 141843
Patch

Note: I also skipped the blend() function for now. Will talk to vollick@ about what coverge he feels exists or is needed before spending time on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624164</commentid>
    <comment_count>2</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-15 09:11:50 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=141843) [details]
&gt; Patch
&gt; 
&gt; Note: I also skipped the blend() function for now. Will talk to vollick@ about what coverge he feels exists or is needed before spending time on that.

Spoke with him, and we will need to add test coverage for blend(), I would like to do it in a separate patch.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624391</commentid>
    <comment_count>3</comment_count>
      <attachid>141843</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-05-15 12:25:58 -0700</bug_when>
    <thetext>Comment on attachment 141843
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=141843&amp;action=review

&gt; Source/WebKit/chromium/tests/WebTransformationMatrixTest.cpp:234
&gt; +    WebTransformationMatrix B = A;

This isn&apos;t assignment, it&apos;s copy-initialization via the copy constructor.  The assignment needs to be in a separate statement.

Also, maybe you should test the return value from the assignment operator, e.g. A = B = C.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624533</commentid>
    <comment_count>4</comment_count>
      <attachid>142048</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-15 14:02:32 -0700</bug_when>
    <thetext>Created attachment 142048
Addressed reviewer comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624543</commentid>
    <comment_count>5</comment_count>
      <attachid>142048</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-05-15 14:13:05 -0700</bug_when>
    <thetext>Comment on attachment 142048
Addressed reviewer comment

R=me.  I don&apos;t quite follow why blend needs to be in a separate patch, but this set of tests looks fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624752</commentid>
    <comment_count>6</comment_count>
      <attachid>142048</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-15 17:14:39 -0700</bug_when>
    <thetext>Comment on attachment 142048
Addressed reviewer comment

There was no strong reason, please feel free to cancel the cq if you want them to be together for any reason.

blend() will add another 7-8 tests.  I&apos;m running into challenges trying to figure out why the blending is not as &quot;linear&quot; as I expect for skewY; and testing rotation blending will not be ideal either since they use quaternions; I&apos;ll probably just resort to testing the status quo in a few different configurations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624814</commentid>
    <comment_count>7</comment_count>
      <attachid>142048</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-15 18:23:15 -0700</bug_when>
    <thetext>Comment on attachment 142048
Addressed reviewer comment

Clearing flags on attachment: 142048

Committed r117199: &lt;http://trac.webkit.org/changeset/117199&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624815</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-15 18:23:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629819</commentid>
    <comment_count>9</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-05-21 18:29:08 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 142048 [details])
&gt; There was no strong reason, please feel free to cancel the cq if you want them to be together for any reason.
&gt; 
&gt; blend() will add another 7-8 tests.  I&apos;m running into challenges trying to figure out why the blending is not as &quot;linear&quot; as I expect for skewY; and testing rotation blending will not be ideal either since they use quaternions; I&apos;ll probably just resort to testing the status quo in a few different configurations.

https://bugs.webkit.org/show_bug.cgi?id=87066 will add unit tests for blend().</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141843</attachid>
            <date>2012-05-14 19:13:36 -0700</date>
            <delta_ts>2012-05-15 14:02:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86421-20120514191335.patch</filename>
            <type>text/plain</type>
            <size>30733</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGY4YTUwYmM1MDMzNjlkY2IzODlmOWM4OTdmMWFiZmViM2M4MDgxYmIuLjU5MDdlNjJjYmQxNDVh
MDI5MDFhZDFiODMwYzFmNzRlZjdkYWI1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTItMDUtMTQgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgdW5pdCB0ZXN0aW5nIHRvIFdlYlRy
YW5zZm9ybWF0aW9uTWF0cml4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NjQyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogdGVzdHMvV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXhUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpwcmludFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUZXN0TWF0
cml4KToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZVRlc3RNYXRyaXgyKToKKyAgICAgICAg
KFdlYktpdDo6VEVTVCk6CisKIDIwMTItMDUtMTIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmll
dy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTY4
MTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCBiYjJlM2JkMzJjOGE1ZDI2ZmEz
ZDRiMmZhNWVmNzZiNGU3YzYyOTNkLi5jZmIxZDdiNGUyNWI5ZTk4MTQyNjM1YjA3YjNkNjA5YThm
MDI2ZWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTE0Nyw2ICsxNDcsNyBA
QAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VTZXJpYWxpemVyVGVzdC5jcHAnLAogICAgICAg
ICAgICAgJ3Rlc3RzL1dlYlNvY2tldERlZmxhdGVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rl
c3RzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXJUZXN0LmNwcCcsCisgICAgICAgICAgICAn
dGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVz
dHMvV2ViVVJMUmVxdWVzdFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJVUkxSZXNw
b25zZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJWaWV3VGVzdC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1h
dHJpeFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlZTMyYzNiN2FjMDFjYzkzM2Y4OTgxYWRm
YThiNGY3MzNjYWI4ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdC5jcHAKQEAgLTAsMCArMSw5NDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIi4uLy4uLy4u
Ly4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgor
CisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2RlZmluZSBFWFBFQ1RfUk9XMV9FUShhLCBi
LCBjLCBkLCBtYXRyaXgpICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoYSksIChtYXRyaXgp
Lm0xMSgpKTsgICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoYiksIChtYXRyaXgpLm0yMSgp
KTsgICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoYyksIChtYXRyaXgpLm0zMSgpKTsgICAg
ICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoZCksIChtYXRyaXgpLm00MSgpKTsKKworI2RlZmlu
ZSBFWFBFQ1RfUk9XMl9FUShhLCBiLCBjLCBkLCBtYXRyaXgpICAgICAgXAorICAgIEVYUEVDVF9G
TE9BVF9FUSgoYSksIChtYXRyaXgpLm0xMigpKTsgICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9F
USgoYiksIChtYXRyaXgpLm0yMigpKTsgICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoYyks
IChtYXRyaXgpLm0zMigpKTsgICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoZCksIChtYXRy
aXgpLm00MigpKTsKKworI2RlZmluZSBFWFBFQ1RfUk9XM19FUShhLCBiLCBjLCBkLCBtYXRyaXgp
ICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoYSksIChtYXRyaXgpLm0xMygpKTsgICAgICAg
XAorICAgIEVYUEVDVF9GTE9BVF9FUSgoYiksIChtYXRyaXgpLm0yMygpKTsgICAgICAgXAorICAg
IEVYUEVDVF9GTE9BVF9FUSgoYyksIChtYXRyaXgpLm0zMygpKTsgICAgICAgXAorICAgIEVYUEVD
VF9GTE9BVF9FUSgoZCksIChtYXRyaXgpLm00MygpKTsKKworI2RlZmluZSBFWFBFQ1RfUk9XNF9F
UShhLCBiLCBjLCBkLCBtYXRyaXgpICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoYSksICht
YXRyaXgpLm0xNCgpKTsgICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoYiksIChtYXRyaXgp
Lm0yNCgpKTsgICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoYyksIChtYXRyaXgpLm0zNCgp
KTsgICAgICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoZCksIChtYXRyaXgpLm00NCgpKTsgICAg
ICAgXAorCisvLyBDaGVja2luZyBmbG9hdCB2YWx1ZXMgZm9yIGVxdWFsaXR5IGNsb3NlIHRvIHpl
cm8gaXMgbm90IHJvYnVzdCB1c2luZyBFWFBFQ1RfRkxPQVRfRVEKKy8vIChzZWUgZ3Rlc3QgZG9j
dW1lbnRhdGlvbikuIFNvLCB0byB2ZXJpZnkgcm90YXRpb24gbWF0cmljZXMsIHdlIG11c3QgdXNl
IGEgbG9vc2VyCisvLyBhYnNvbHV0ZSBlcnJvciB0aHJlc2hvbGQgaW4gc29tZSBwbGFjZXMuCisj
ZGVmaW5lIEVYUEVDVF9ST1cxX05FQVIoYSwgYiwgYywgZCwgbWF0cml4LCBlcnJvclRocmVzaG9s
ZCkgICAgICBcCisgICAgRVhQRUNUX05FQVIoKGEpLCAobWF0cml4KS5tMTEoKSwgKGVycm9yVGhy
ZXNob2xkKSk7ICAgICAgICAgICBcCisgICAgRVhQRUNUX05FQVIoKGIpLCAobWF0cml4KS5tMjEo
KSwgKGVycm9yVGhyZXNob2xkKSk7ICAgICAgICAgICBcCisgICAgRVhQRUNUX05FQVIoKGMpLCAo
bWF0cml4KS5tMzEoKSwgKGVycm9yVGhyZXNob2xkKSk7ICAgICAgICAgICBcCisgICAgRVhQRUNU
X05FQVIoKGQpLCAobWF0cml4KS5tNDEoKSwgKGVycm9yVGhyZXNob2xkKSk7CisKKyNkZWZpbmUg
RVhQRUNUX1JPVzJfTkVBUihhLCBiLCBjLCBkLCBtYXRyaXgsIGVycm9yVGhyZXNob2xkKSAgICAg
IFwKKyAgICBFWFBFQ1RfTkVBUigoYSksIChtYXRyaXgpLm0xMigpLCAoZXJyb3JUaHJlc2hvbGQp
KTsgICAgICAgICAgIFwKKyAgICBFWFBFQ1RfTkVBUigoYiksIChtYXRyaXgpLm0yMigpLCAoZXJy
b3JUaHJlc2hvbGQpKTsgICAgICAgICAgIFwKKyAgICBFWFBFQ1RfTkVBUigoYyksIChtYXRyaXgp
Lm0zMigpLCAoZXJyb3JUaHJlc2hvbGQpKTsgICAgICAgICAgIFwKKyAgICBFWFBFQ1RfTkVBUigo
ZCksIChtYXRyaXgpLm00MigpLCAoZXJyb3JUaHJlc2hvbGQpKTsKKworI2RlZmluZSBFWFBFQ1Rf
Uk9XM19ORUFSKGEsIGIsIGMsIGQsIG1hdHJpeCwgZXJyb3JUaHJlc2hvbGQpICAgICAgXAorICAg
IEVYUEVDVF9ORUFSKChhKSwgKG1hdHJpeCkubTEzKCksIChlcnJvclRocmVzaG9sZCkpOyAgICAg
ICAgICAgXAorICAgIEVYUEVDVF9ORUFSKChiKSwgKG1hdHJpeCkubTIzKCksIChlcnJvclRocmVz
aG9sZCkpOyAgICAgICAgICAgXAorICAgIEVYUEVDVF9ORUFSKChjKSwgKG1hdHJpeCkubTMzKCks
IChlcnJvclRocmVzaG9sZCkpOyAgICAgICAgICAgXAorICAgIEVYUEVDVF9ORUFSKChkKSwgKG1h
dHJpeCkubTQzKCksIChlcnJvclRocmVzaG9sZCkpOworCisjZGVmaW5lIEVSUk9SX1RIUkVTSE9M
RCAxZS0xNAorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgeworCitzdGF0
aWMgdm9pZCBpbml0aWFsaXplVGVzdE1hdHJpeChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJh
bnNmb3JtKQoreworICAgIHRyYW5zZm9ybS5zZXRNMTEoMTApOworICAgIHRyYW5zZm9ybS5zZXRN
MTIoMTEpOworICAgIHRyYW5zZm9ybS5zZXRNMTMoMTIpOworICAgIHRyYW5zZm9ybS5zZXRNMTQo
MTMpOworICAgIHRyYW5zZm9ybS5zZXRNMjEoMTQpOworICAgIHRyYW5zZm9ybS5zZXRNMjIoMTUp
OworICAgIHRyYW5zZm9ybS5zZXRNMjMoMTYpOworICAgIHRyYW5zZm9ybS5zZXRNMjQoMTcpOwor
ICAgIHRyYW5zZm9ybS5zZXRNMzEoMTgpOworICAgIHRyYW5zZm9ybS5zZXRNMzIoMTkpOworICAg
IHRyYW5zZm9ybS5zZXRNMzMoMjApOworICAgIHRyYW5zZm9ybS5zZXRNMzQoMjEpOworICAgIHRy
YW5zZm9ybS5zZXRNNDEoMjIpOworICAgIHRyYW5zZm9ybS5zZXRNNDIoMjMpOworICAgIHRyYW5z
Zm9ybS5zZXRNNDMoMjQpOworICAgIHRyYW5zZm9ybS5zZXRNNDQoMjUpOworCisgICAgLy8gU2Fu
aXR5IGNoZWNrCisgICAgRVhQRUNUX1JPVzFfRVEoMTAsIDE0LCAxOCwgMjIsIHRyYW5zZm9ybSk7
CisgICAgRVhQRUNUX1JPVzJfRVEoMTEsIDE1LCAxOSwgMjMsIHRyYW5zZm9ybSk7CisgICAgRVhQ
RUNUX1JPVzNfRVEoMTIsIDE2LCAyMCwgMjQsIHRyYW5zZm9ybSk7CisgICAgRVhQRUNUX1JPVzRf
RVEoMTMsIDE3LCAyMSwgMjUsIHRyYW5zZm9ybSk7Cit9CisKK3N0YXRpYyB2b2lkIGluaXRpYWxp
emVUZXN0TWF0cml4MihXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKQoreworICAg
IHRyYW5zZm9ybS5zZXRNMTEoMzApOworICAgIHRyYW5zZm9ybS5zZXRNMTIoMzEpOworICAgIHRy
YW5zZm9ybS5zZXRNMTMoMzIpOworICAgIHRyYW5zZm9ybS5zZXRNMTQoMzMpOworICAgIHRyYW5z
Zm9ybS5zZXRNMjEoMzQpOworICAgIHRyYW5zZm9ybS5zZXRNMjIoMzUpOworICAgIHRyYW5zZm9y
bS5zZXRNMjMoMzYpOworICAgIHRyYW5zZm9ybS5zZXRNMjQoMzcpOworICAgIHRyYW5zZm9ybS5z
ZXRNMzEoMzgpOworICAgIHRyYW5zZm9ybS5zZXRNMzIoMzkpOworICAgIHRyYW5zZm9ybS5zZXRN
MzMoNDApOworICAgIHRyYW5zZm9ybS5zZXRNMzQoNDEpOworICAgIHRyYW5zZm9ybS5zZXRNNDEo
NDIpOworICAgIHRyYW5zZm9ybS5zZXRNNDIoNDMpOworICAgIHRyYW5zZm9ybS5zZXRNNDMoNDQp
OworICAgIHRyYW5zZm9ybS5zZXRNNDQoNDUpOworCisgICAgLy8gU2FuaXR5IGNoZWNrCisgICAg
RVhQRUNUX1JPVzFfRVEoMzAsIDM0LCAzOCwgNDIsIHRyYW5zZm9ybSk7CisgICAgRVhQRUNUX1JP
VzJfRVEoMzEsIDM1LCAzOSwgNDMsIHRyYW5zZm9ybSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMzIs
IDM2LCA0MCwgNDQsIHRyYW5zZm9ybSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMzMsIDM3LCA0MSwg
NDUsIHRyYW5zZm9ybSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2
ZXJpZnlEZWZhdWx0Q29uc3RydWN0b3JDcmVhdGVzSWRlbnRpdHlNYXRyaXgpCit7CisgICAgV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXggQTsKKyAgICBFWFBFQ1RfUk9XMV9FUSgxLCAwLCAwLCAwLCBB
KTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgwLCAxLCAwLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XM19F
USgwLCAwLCAxLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBBKTsKKyAg
ICBFWFBFQ1RfVFJVRShBLmlzSWRlbnRpdHkoKSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXhUZXN0LCB2ZXJpZnlDb25zdHJ1Y3RvckZvcjJkRWxlbWVudHMpCit7CisgICAgV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXggQSgxLCAyLCAzLCA0LCA1LCA2KTsKKyAgICBFWFBFQ1RfUk9X
MV9FUSgxLCAzLCAwLCA1LCBBKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgyLCA0LCAwLCA2LCBBKTsK
KyAgICBFWFBFQ1RfUk9XM19FUSgwLCAwLCAxLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgw
LCAwLCAwLCAxLCBBKTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZl
cmlmeUNvcHlDb25zdHJ1Y3RvcikKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOwor
ICAgIGluaXRpYWxpemVUZXN0TWF0cml4KEEpOworCisgICAgLy8gQ29weSBjb25zdHJ1Y3RvciBz
aG91bGQgcHJvZHVjZSBleGFjdCBzYW1lIGVsZW1lbnRzIGFzIG1hdHJpeCBBLgorICAgIFdlYlRy
YW5zZm9ybWF0aW9uTWF0cml4IEIoQSk7CisgICAgRVhQRUNUX1JPVzFfRVEoMTAsIDE0LCAxOCwg
MjIsIEIpOworICAgIEVYUEVDVF9ST1cyX0VRKDExLCAxNSwgMTksIDIzLCBCKTsKKyAgICBFWFBF
Q1RfUk9XM19FUSgxMiwgMTYsIDIwLCAyNCwgQik7CisgICAgRVhQRUNUX1JPVzRfRVEoMTMsIDE3
LCAyMSwgMjUsIEIpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVy
aWZ5TWF0cml4SW52ZXJzaW9uKQoreworICAgIC8vIEludmVydCBhIHRyYW5zbGF0aW9uCisgICAg
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNsYXRpb247CisgICAgdHJhbnNsYXRpb24udHJh
bnNsYXRlM2QoMiwgMywgNCk7CisgICAgRVhQRUNUX1RSVUUodHJhbnNsYXRpb24uaXNJbnZlcnRp
YmxlKCkpOworCisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggaW52ZXJzZVRyYW5zbGF0aW9u
ID0gdHJhbnNsYXRpb24uaW52ZXJzZSgpOworICAgIEVYUEVDVF9ST1cxX0VRKDEsIDAsIDAsIC0y
LCBpbnZlcnNlVHJhbnNsYXRpb24pOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDEsIDAsIC0zLCBp
bnZlcnNlVHJhbnNsYXRpb24pOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIC00LCBpbnZl
cnNlVHJhbnNsYXRpb24pOworICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsICAxLCBpbnZlcnNl
VHJhbnNsYXRpb24pOworCisgICAgLy8gTm90ZSB0aGF0IGludmVyc2lvbiBzaG91bGQgbm90IGhh
dmUgY2hhbmdlZCB0aGUgb3JpZ2luYWwgbWF0cml4LgorICAgIEVYUEVDVF9ST1cxX0VRKDEsIDAs
IDAsIDIsIHRyYW5zbGF0aW9uKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgwLCAxLCAwLCAzLCB0cmFu
c2xhdGlvbik7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgNCwgdHJhbnNsYXRpb24pOwor
ICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsIHRyYW5zbGF0aW9uKTsKKworICAgIC8vIElu
dmVydCBhIG5vbi11bmlmb3JtIHNjYWxlCisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggc2Nh
bGU7CisgICAgc2NhbGUuc2NhbGUzZCg0LCAxMCwgMTAwKTsKKyAgICBFWFBFQ1RfVFJVRShzY2Fs
ZS5pc0ludmVydGlibGUoKSk7CisKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbnZlcnNl
U2NhbGUgPSBzY2FsZS5pbnZlcnNlKCk7CisgICAgRVhQRUNUX1JPVzFfRVEoMC4yNSwgIDAsICAg
IDAsICAgIDAsIGludmVyc2VTY2FsZSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwgICAgMC4xLCAg
IDAsICAgIDAsIGludmVyc2VTY2FsZSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgICAgIDAsICAg
MC4wMSwgIDAsIGludmVyc2VTY2FsZSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgICAgIDAsICAg
IDAsICAgIDEsIGludmVyc2VTY2FsZSk7CisKKyAgICAvLyBUcnkgdG8gaW52ZXJ0IGEgbWF0cml4
IHRoYXQgaXMgbm90IGludmVydGlibGUuCisgICAgLy8gVGhlIGludmVyc2UoKSBmdW5jdGlvbiBz
aG91bGQgc2ltcGx5IHJldHVybiBhbiBpZGVudGl0eSBtYXRyaXguCisgICAgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXggbm90SW52ZXJ0aWJsZTsKKyAgICBub3RJbnZlcnRpYmxlLnNldE0xMSgwKTsK
KyAgICBub3RJbnZlcnRpYmxlLnNldE0yMigwKTsKKyAgICBub3RJbnZlcnRpYmxlLnNldE0zMygw
KTsKKyAgICBub3RJbnZlcnRpYmxlLnNldE00NCgwKTsKKyAgICBFWFBFQ1RfRkFMU0Uobm90SW52
ZXJ0aWJsZS5pc0ludmVydGlibGUoKSk7CisKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBp
bnZlcnNlT2ZOb3RJbnZlcnRpYmxlOworICAgIGludmVyc2VPZk5vdEludmVydGlibGUudHJhbnNs
YXRlM2QoMSwgMiwgMyk7IC8vIGluaXRpYWxpemUgdGhpcyB0byBzb21ldGhpbmcgbm9uLWlkZW50
aXR5LCB0byBtYWtlIHN1cmUgdGhhdCBhc3NpZ25tZW50IGJlbG93IGFjdHVhbGx5IHRvb2sgcGxh
Y2UuCisgICAgaW52ZXJzZU9mTm90SW52ZXJ0aWJsZSA9IG5vdEludmVydGlibGUuaW52ZXJzZSgp
OworICAgIEVYUEVDVF9UUlVFKGludmVyc2VPZk5vdEludmVydGlibGUuaXNJZGVudGl0eSgpKTsK
K30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeVRvMkRUcmFuc2Zv
cm0pCit7CisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQTsKKyAgICBpbml0aWFsaXplVGVz
dE1hdHJpeChBKTsKKworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEIgPSBBLnRvMmRUcmFu
c2Zvcm0oKTsKKworICAgIEVYUEVDVF9ST1cxX0VRKDEwLCAxNCwgMCwgMjIsIEIpOworICAgIEVY
UEVDVF9ST1cyX0VRKDExLCAxNSwgMCwgMjMsIEIpOworICAgIEVYUEVDVF9ST1czX0VRKDAsICAw
LCAgMSwgMCwgIEIpOworICAgIEVYUEVDVF9ST1c0X0VRKDEzLCAxNywgMCwgMjUsIEIpOworCisg
ICAgLy8gTm90ZSB0aGF0IHRvMkRUcmFuc2Zvcm0gc2hvdWxkIG5vdCBoYXZlIGNoYW5nZWQgdGhl
IG9yaWdpbmFsIG1hdHJpeC4KKyAgICBFWFBFQ1RfUk9XMV9FUSgxMCwgMTQsIDE4LCAyMiwgQSk7
CisgICAgRVhQRUNUX1JPVzJfRVEoMTEsIDE1LCAxOSwgMjMsIEEpOworICAgIEVYUEVDVF9ST1cz
X0VRKDEyLCAxNiwgMjAsIDI0LCBBKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgxMywgMTcsIDIxLCAy
NSwgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlBc3Np
Z25tZW50T3BlcmF0b3IpCit7CisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQTsKKyAgICBp
bml0aWFsaXplVGVzdE1hdHJpeChBKTsKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBCID0g
QTsKKworICAgIEVYUEVDVF9ST1cxX0VRKDEwLCAxNCwgMTgsIDIyLCBCKTsKKyAgICBFWFBFQ1Rf
Uk9XMl9FUSgxMSwgMTUsIDE5LCAyMywgQik7CisgICAgRVhQRUNUX1JPVzNfRVEoMTIsIDE2LCAy
MCwgMjQsIEIpOworICAgIEVYUEVDVF9ST1c0X0VRKDEzLCAxNywgMjEsIDI1LCBCKTsKK30KKwor
VEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUVxdWFsc0Jvb2xlYW5PcGVy
YXRvcikKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOworICAgIGluaXRpYWxpemVU
ZXN0TWF0cml4KEEpOworCisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQjsKKyAgICBpbml0
aWFsaXplVGVzdE1hdHJpeChCKTsKKyAgICBFWFBFQ1RfVFJVRShBID09IEIpOworCisgICAgLy8g
TW9kaWZ5aW5nIG11bHRpcGxlIGVsZW1lbnRzIHNob3VsZCBjYXVzZSBlcXVhbHMgb3BlcmF0b3Ig
dG8gcmV0dXJuIGZhbHNlLgorICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEM7CisgICAgaW5p
dGlhbGl6ZVRlc3RNYXRyaXgyKEMpOworICAgIEVYUEVDVF9GQUxTRShBID09IEMpOworCisgICAg
Ly8gTW9kaWZ5aW5nIGFueSBvbmUgaW5kaXZpZHVhbCBlbGVtZW50IHNob3VsZCBjYXVzZSBlcXVh
bHMgb3BlcmF0b3IgdG8gcmV0dXJuIGZhbHNlLgorICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4
IEQ7CisgICAgRCA9IEE7CisgICAgRC5zZXRNMTEoMCk7CisgICAgRVhQRUNUX0ZBTFNFKEEgPT0g
RCk7CisKKyAgICBEID0gQTsKKyAgICBELnNldE0xMigwKTsKKyAgICBFWFBFQ1RfRkFMU0UoQSA9
PSBEKTsKKworICAgIEQgPSBBOworICAgIEQuc2V0TTEzKDApOworICAgIEVYUEVDVF9GQUxTRShB
ID09IEQpOworCisgICAgRCA9IEE7CisgICAgRC5zZXRNMTQoMCk7CisgICAgRVhQRUNUX0ZBTFNF
KEEgPT0gRCk7CisKKyAgICBEID0gQTsKKyAgICBELnNldE0yMSgwKTsKKyAgICBFWFBFQ1RfRkFM
U0UoQSA9PSBEKTsKKworICAgIEQgPSBBOworICAgIEQuc2V0TTIyKDApOworICAgIEVYUEVDVF9G
QUxTRShBID09IEQpOworCisgICAgRCA9IEE7CisgICAgRC5zZXRNMjMoMCk7CisgICAgRVhQRUNU
X0ZBTFNFKEEgPT0gRCk7CisKKyAgICBEID0gQTsKKyAgICBELnNldE0yNCgwKTsKKyAgICBFWFBF
Q1RfRkFMU0UoQSA9PSBEKTsKKworICAgIEQgPSBBOworICAgIEQuc2V0TTMxKDApOworICAgIEVY
UEVDVF9GQUxTRShBID09IEQpOworCisgICAgRCA9IEE7CisgICAgRC5zZXRNMzIoMCk7CisgICAg
RVhQRUNUX0ZBTFNFKEEgPT0gRCk7CisKKyAgICBEID0gQTsKKyAgICBELnNldE0zMygwKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoQSA9PSBEKTsKKworICAgIEQgPSBBOworICAgIEQuc2V0TTM0KDApOwor
ICAgIEVYUEVDVF9GQUxTRShBID09IEQpOworCisgICAgRCA9IEE7CisgICAgRC5zZXRNNDEoMCk7
CisgICAgRVhQRUNUX0ZBTFNFKEEgPT0gRCk7CisKKyAgICBEID0gQTsKKyAgICBELnNldE00Migw
KTsKKyAgICBFWFBFQ1RfRkFMU0UoQSA9PSBEKTsKKworICAgIEQgPSBBOworICAgIEQuc2V0TTQz
KDApOworICAgIEVYUEVDVF9GQUxTRShBID09IEQpOworCisgICAgRCA9IEE7CisgICAgRC5zZXRN
NDQoMCk7CisgICAgRVhQRUNUX0ZBTFNFKEEgPT0gRCk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlNdWx0aXBseU9wZXJhdG9yKQoreworICAgIFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4IEE7CisgICAgaW5pdGlhbGl6ZVRlc3RNYXRyaXgoQSk7CisKKyAgICBX
ZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBCOworICAgIGluaXRpYWxpemVUZXN0TWF0cml4MihCKTsK
KworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEMgPSBBICogQjsKKyAgICBFWFBFQ1RfUk9X
MV9FUSgyMDM2LCAyMjkyLCAyNTQ4LCAyODA0LCBDKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgyMTYy
LCAyNDM0LCAyNzA2LCAyOTc4LCBDKTsKKyAgICBFWFBFQ1RfUk9XM19FUSgyMjg4LCAyNTc2LCAy
ODY0LCAzMTUyLCBDKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgyNDE0LCAyNzE4LCAzMDIyLCAzMzI2
LCBDKTsKKworICAgIC8vIEp1c3QgYW4gYWRkaXRpb25hbCBzYW5pdHkgY2hlY2s7IG1hdHJpeCBt
dWx0aXBsaWNhdGlvbiBpcyBub3QgY29tbXV0YXRpdmUuCisgICAgRVhQRUNUX0ZBTFNFKEEgKiBC
ID09IEIgKiBBKTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlm
eU1hdHJpeE11bHRpcGxpY2F0aW9uKQoreworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7
CisgICAgaW5pdGlhbGl6ZVRlc3RNYXRyaXgoQSk7CisKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBCOworICAgIGluaXRpYWxpemVUZXN0TWF0cml4MihCKTsKKworICAgIEEubXVsdGlwbHko
Qik7CisgICAgRVhQRUNUX1JPVzFfRVEoMjAzNiwgMjI5MiwgMjU0OCwgMjgwNCwgQSk7CisgICAg
RVhQRUNUX1JPVzJfRVEoMjE2MiwgMjQzNCwgMjcwNiwgMjk3OCwgQSk7CisgICAgRVhQRUNUX1JP
VzNfRVEoMjI4OCwgMjU3NiwgMjg2NCwgMzE1MiwgQSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMjQx
NCwgMjcxOCwgMzAyMiwgMzMyNiwgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRy
aXhUZXN0LCB2ZXJpZnlNYWtlSWRlbnRpeSkKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBBOworICAgIGluaXRpYWxpemVUZXN0TWF0cml4KEEpOworICAgIEEubWFrZUlkZW50aXR5KCk7
CisgICAgRVhQRUNUX1JPVzFfRVEoMSwgMCwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEo
MCwgMSwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgMCwgQSk7CisgICAg
RVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7CisgICAgRVhQRUNUX1RSVUUoQS5pc0lkZW50
aXR5KCkpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5VHJh
bnNsYXRlKQoreworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisgICAgQS50cmFuc2xh
dGUoMiwgMyk7CisgICAgRVhQRUNUX1JPVzFfRVEoMSwgMCwgMCwgMiwgQSk7CisgICAgRVhQRUNU
X1JPVzJfRVEoMCwgMSwgMCwgMywgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgMCwg
QSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7CisKKyAgICAvLyBWZXJpZnkg
dGhhdCB0cmFuc2xhdGUoKSBwb3N0LW11bHRpcGxpZXMgdGhlIGV4aXN0aW5nIG1hdHJpeC4KKyAg
ICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2NhbGUoNSk7CisgICAgQS50cmFuc2xhdGUoMiwg
Myk7CisgICAgRVhQRUNUX1JPVzFfRVEoNSwgMCwgMCwgMTAsIEEpOworICAgIEVYUEVDVF9ST1cy
X0VRKDAsIDUsIDAsIDE1LCBBKTsKKyAgICBFWFBFQ1RfUk9XM19FUSgwLCAwLCAxLCAwLCAgQSk7
CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgIEEpOworfQorCitURVNUKFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5VHJhbnNsYXRlM2QpCit7CisgICAgV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXggQTsKKyAgICBBLnRyYW5zbGF0ZTNkKDIsIDMsIDQpOworICAgIEVYUEVD
VF9ST1cxX0VRKDEsIDAsIDAsIDIsIEEpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDEsIDAsIDMs
IEEpOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDQsIEEpOworICAgIEVYUEVDVF9ST1c0
X0VRKDAsIDAsIDAsIDEsIEEpOworCisgICAgLy8gVmVyaWZ5IHRoYXQgdHJhbnNsYXRlM2QoKSBw
b3N0LW11bHRpcGxpZXMgdGhlIGV4aXN0aW5nIG1hdHJpeC4KKyAgICBBLm1ha2VJZGVudGl0eSgp
OworICAgIEEuc2NhbGUzZCg2LCA3LCA4KTsKKyAgICBBLnRyYW5zbGF0ZTNkKDIsIDMsIDQpOwor
ICAgIEVYUEVDVF9ST1cxX0VRKDYsIDAsIDAsIDEyLCBBKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgw
LCA3LCAwLCAyMSwgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgOCwgMzIsIEEpOworICAg
IEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsICBBKTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeFRlc3QsIHZlcmlmeVRyYW5zbGF0ZVJpZ2h0M2QpCit7CisgICAgV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXggQTsKKyAgICBBLnRyYW5zbGF0ZVJpZ2h0M2QoMiwgMywgNCk7CisgICAg
RVhQRUNUX1JPVzFfRVEoMSwgMCwgMCwgMiwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwgMSwg
MCwgMywgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgNCwgQSk7CisgICAgRVhQRUNU
X1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7CisKKyAgICAvLyBOb3RlIGNhcmVmdWxseSwgYWxsIG90
aGVyIG9wZXJhdGlvbnMgZG8gcG9zdC1tdWx0aXBseSwgdGhpcyBvbmUgaXMgdW5pcXVlLgorICAg
IC8vIFZlcmlmeSB0aGF0IHRyYW5zbGF0ZVJpZ2h0M2QoKSBQUkUtbXVsdGlwbGllcyB0aGUgZXhp
c3RpbmcgbWF0cml4LgorICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zY2FsZTNkKDYsIDcs
IDgpOworICAgIEEudHJhbnNsYXRlUmlnaHQzZCgyLCAzLCA0KTsKKyAgICBFWFBFQ1RfUk9XMV9F
USg2LCAwLCAwLCAyLCBBKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgwLCA3LCAwLCAzLCBBKTsKKyAg
ICBFWFBFQ1RfUk9XM19FUSgwLCAwLCA4LCA0LCBBKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAw
LCAwLCAxLCBBKTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlm
eVNjYWxlKQoreworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisgICAgQS5zY2FsZSg1
KTsKKyAgICBFWFBFQ1RfUk9XMV9FUSg1LCAwLCAwLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XMl9F
USgwLCA1LCAwLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XM19FUSgwLCAwLCAxLCAwLCBBKTsKKyAg
ICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBBKTsKKworICAgIC8vIFZlcmlmeSB0aGF0IHNj
YWxlKCkgcG9zdC1tdWx0aXBsaWVzIHRoZSBleGlzdGluZyBtYXRyaXguCisgICAgQS5tYWtlSWRl
bnRpdHkoKTsKKyAgICBBLnRyYW5zbGF0ZTNkKDIsIDMsIDQpOworICAgIEEuc2NhbGUoNSk7Cisg
ICAgRVhQRUNUX1JPVzFfRVEoNSwgMCwgMCwgMiwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwg
NSwgMCwgMywgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgNCwgQSk7CisgICAgRVhQ
RUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgIEEpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4VGVzdCwgdmVyaWZ5Tm9uVW5pZm9ybVNjYWxlKQoreworICAgIFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4IEE7CisgICAgQS5zY2FsZU5vblVuaWZvcm0oNiwgNyk7CisgICAgRVhQRUNUX1JP
VzFfRVEoNiwgMCwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwgNywgMCwgMCwgQSk7
CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzRfRVEo
MCwgMCwgMCwgMSwgQSk7CisKKyAgICAvLyBWZXJpZnkgdGhhdCBzY2FsZU5vblVuaWZvcm0oKSBw
b3N0LW11bHRpcGxpZXMgdGhlIGV4aXN0aW5nIG1hdHJpeC4KKyAgICBBLm1ha2VJZGVudGl0eSgp
OworICAgIEEudHJhbnNsYXRlM2QoMiwgMywgNCk7CisgICAgQS5zY2FsZU5vblVuaWZvcm0oNiwg
Nyk7CisgICAgRVhQRUNUX1JPVzFfRVEoNiwgMCwgMCwgMiwgQSk7CisgICAgRVhQRUNUX1JPVzJf
RVEoMCwgNywgMCwgMywgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgNCwgQSk7Cisg
ICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlTY2FsZTNkKQoreworICAgIFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4IEE7CisgICAgQS5zY2FsZTNkKDYsIDcsIDgpOworICAgIEVYUEVDVF9ST1cxX0VRKDYs
IDAsIDAsIDAsIEEpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDcsIDAsIDAsIEEpOworICAgIEVY
UEVDVF9ST1czX0VRKDAsIDAsIDgsIDAsIEEpOworICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAs
IDEsIEEpOworCisgICAgLy8gVmVyaWZ5IHRoYXQgc2NhbGUzZCgpIHBvc3QtbXVsdGlwbGllcyB0
aGUgZXhpc3RpbmcgbWF0cml4LgorICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS50cmFuc2xh
dGUzZCgyLCAzLCA0KTsKKyAgICBBLnNjYWxlM2QoNiwgNywgOCk7CisgICAgRVhQRUNUX1JPVzFf
RVEoNiwgMCwgMCwgMiwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwgNywgMCwgMywgQSk7Cisg
ICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgOCwgNCwgQSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwg
MCwgMCwgMSwgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJp
ZnlSb3RhdGUpCit7CisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQTsKKyAgICBBLnJvdGF0
ZSg5MCk7CisgICAgRVhQRUNUX1JPVzFfTkVBUigwLCAtMSwgMCwgMCwgQSwgRVJST1JfVEhSRVNI
T0xEKTsKKyAgICBFWFBFQ1RfUk9XMl9ORUFSKDEsIDAsIDAsIDAsIEEsIEVSUk9SX1RIUkVTSE9M
RCk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzRf
RVEoMCwgMCwgMCwgMSwgQSk7CisKKyAgICAvLyBWZXJpZnkgdGhhdCByb3RhdGUoKSBwb3N0LW11
bHRpcGxpZXMgdGhlIGV4aXN0aW5nIG1hdHJpeC4KKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAg
IEEuc2NhbGUzZCg2LCA3LCA4KTsKKyAgICBBLnJvdGF0ZSg5MCk7CisgICAgRVhQRUNUX1JPVzFf
TkVBUigwLCAtNiwgMCwgMCwgQSwgRVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XMl9O
RUFSKDcsIDAsICAwLCAwLCBBLCBFUlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVDVF9ST1czX0VR
KDAsIDAsIDgsIDAsIEEpOworICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsIEEpOworfQor
CitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5Um90YXRlM2QpCit7Cisg
ICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQTsKKworICAgIC8vIENoZWNrIHJvdGF0aW9uIGFi
b3V0IHotYXhpcworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5yb3RhdGUzZCgwLCAwLCA5
MCk7CisgICAgRVhQRUNUX1JPVzFfTkVBUigwLCAtMSwgMCwgMCwgQSwgRVJST1JfVEhSRVNIT0xE
KTsKKyAgICBFWFBFQ1RfUk9XMl9ORUFSKDEsIDAsIDAsIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7
CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzRfRVEo
MCwgMCwgMCwgMSwgQSk7CisKKyAgICAvLyBDaGVjayByb3RhdGlvbiBhYm91dCB4LWF4aXMKKyAg
ICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEucm90YXRlM2QoOTAsIDAsIDApOworICAgIEVYUEVD
VF9ST1cxX0VRKDEsIDAsIDAsIDAsIEEpOworICAgIEVYUEVDVF9ST1cyX05FQVIoMCwgMCwgLTEs
IDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JPVzNfTkVBUigwLCAxLCAwLCAw
LCBBLCBFUlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsIEEp
OworCisgICAgLy8gQ2hlY2sgcm90YXRpb24gYWJvdXQgeS1heGlzLgorICAgIC8vIE5vdGUgY2Fy
ZWZ1bGx5LCB0aGUgZXhwZWN0ZWQgcGF0dGVybiBpcyBpbnZlcnRlZCBjb21wYXJlZCB0byByb3Rh
dGluZyBhYm91dCB4IGF4aXMgb3IgeiBheGlzLgorICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAg
QS5yb3RhdGUzZCgwLCA5MCwgMCk7CisgICAgRVhQRUNUX1JPVzFfTkVBUigwLCAwLCAxLCAwLCBB
LCBFUlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDEsIDAsIDAsIEEpOwor
ICAgIEVYUEVDVF9ST1czX05FQVIoLTEsIDAsIDAsIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7Cisg
ICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7CisKKyAgICAvLyBWZXJpZnkgdGhhdCBy
b3RhdGUzZChyeCwgcnksIHJ6KSBwb3N0LW11bHRpcGxpZXMgdGhlIGV4aXN0aW5nIG1hdHJpeC4K
KyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2NhbGUzZCg2LCA3LCA4KTsKKyAgICBBLnJv
dGF0ZTNkKDAsIDAsIDkwKTsKKyAgICBFWFBFQ1RfUk9XMV9ORUFSKDAsIC02LCAwLCAwLCBBLCBF
UlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVDVF9ST1cyX05FQVIoNywgMCwgIDAsIDAsIEEsIEVS
Uk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgOCwgMCwgQSk7CisgICAg
RVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXhUZXN0LCB2ZXJpZnlSb3RhdGUzZE9yZGVyT2ZDb21wb3NpdGVSb3RhdGlvbnMpCit7
CisgICAgLy8gUm90YXRlM2QoZGVncmVlc1gsIGRlZ3JlZXNZLCBkZWdyZWVzWikgaXMgYWN0dWFs
bHkgY29tcG9zaXRlIHRyYW5zZm9ybSBjb25zaXRpbmcgb2YKKyAgICAvLyB0aHJlZSBwcmltaXRp
dmUgcm90YXRpb25zLiBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgb3JkZXJpbmcgb2YgdGhv
c2UgdGhyZWUKKyAgICAvLyB0cmFuc2Zvcm1zIGlzIHRoZSBpbnRlbmRlZCBvcmRlcmluZy4KKyAg
ICAvLworICAgIC8vIFRoZSBjb3JyZWN0IG9yZGVyaW5nIGZvciB0aGlzIHRlc3QgY2FzZSBzaG91
bGQgYmU6CisgICAgLy8gICAxLiByb3RhdGUgYnkgMzAgZGVncmVlcyBhYm91dCB6LWF4aXMKKyAg
ICAvLyAgIDIuIHJvdGF0ZSBieSAyMCBkZWdyZWVzIGFib3V0IHktYXhpcworICAgIC8vICAgMy4g
cm90YXRlIGJ5IDEwIGRlZ3JlZXMgYWJvdXQgeC1heGlzCisgICAgLy8KKyAgICAvLyBOb3RlOiB0
aGVyZSBhcmUgNiBwb3NzaWJsZSBvcmRlcmluZ3Mgb2YgMyB0cmFuc2Zvcm1zLiBGb3IgdGhlIHNw
ZWNpZmljIHRyYW5zZm9ybXMKKyAgICAvLyB1c2VkIGluIHRoaXMgdGVzdCwgYWxsIDYgY29tYmlu
YXRpb25zIHByb2R1Y2UgYSB1bmlxdWUgbWF0cml4IHRoYXQgaXMgZGlmZmVyZW50CisgICAgLy8g
ZnJvbSB0aGUgb3RoZXIgb3JkZXJpbmdzLiBUaGF0IHdheSwgdGhpcyB0ZXN0IHZlcmlmaWVzIHRo
ZSBleGFjdCBvcmRlcmluZy4KKworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisgICAg
QS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnJvdGF0ZTNkKDEwLCAyMCwgMzApOworCisgICAgRVhQ
RUNUX1JPVzFfTkVBUigwLjgxMzc5NzY4MTM0OTM3MzgwMjYzOTQ5MDgsCisgICAgICAgICAgICAg
ICAgICAgICAtMC40NDA5Njk2MTA1Mjk4ODIzNzIwNjMwNzA4LAorICAgICAgICAgICAgICAgICAg
ICAgMC4zNzg1MjIzMDYzNjk3OTIzOTM5NzYzMjU3LAorICAgICAgICAgICAgICAgICAgICAgMCwg
QSwgRVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XMl9ORUFSKDAuNDY5ODQ2MzEwMzky
OTU0MTU4NDQxMzY5OCwKKyAgICAgICAgICAgICAgICAgICAgIDAuODgyNTY0MTE5MjU5Mzg1NjA0
MzY1Nzc1MiwKKyAgICAgICAgICAgICAgICAgICAgIDAuMDE4MDI4MzExMjM2Mjk3MjIzMDk2ODY5
NCwKKyAgICAgICAgICAgICAgICAgICAgIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7CisgICAgRVhQ
RUNUX1JPVzNfTkVBUigtMC4zNDIwMjAxNDMzMjU2Njg2NTczOTY5MzE4LAorICAgICAgICAgICAg
ICAgICAgICAgMC4xNjMxNzU5MTExNjY1MzQ4MjA1Mjg4OTUwLAorICAgICAgICAgICAgICAgICAg
ICAgMC45MjU0MTY1NzgzOTgzMjMzNjM5NjMxMjk0LAorICAgICAgICAgICAgICAgICAgICAgMCwg
QSwgRVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBBKTsK
K30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeVJvdGF0ZUF4aXNB
bmdsZTNkKQoreworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisKKyAgICAvLyBDaGVj
ayByb3RhdGlvbiBhYm91dCB6LWF4aXMKKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEucm90
YXRlM2QoMCwgMCwgMSwgOTApOworICAgIEVYUEVDVF9ST1cxX05FQVIoMCwgLTEsIDAsIDAsIEEs
IEVSUk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JPVzJfTkVBUigxLCAwLCAwLCAwLCBBLCBF
UlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDAsIEEpOworICAg
IEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsIEEpOworCisgICAgLy8gQ2hlY2sgcm90YXRpb24g
YWJvdXQgeC1heGlzCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnJvdGF0ZTNkKDEsIDAs
IDAsIDkwKTsKKyAgICBFWFBFQ1RfUk9XMV9FUSgxLCAwLCAwLCAwLCBBKTsKKyAgICBFWFBFQ1Rf
Uk9XMl9ORUFSKDAsIDAsIC0xLCAwLCBBLCBFUlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVDVF9S
T1czX05FQVIoMCwgMSwgMCwgMCwgQSwgRVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9X
NF9FUSgwLCAwLCAwLCAxLCBBKTsKKworICAgIC8vIENoZWNrIHJvdGF0aW9uIGFib3V0IHktYXhp
cy4KKyAgICAvLyBOb3RlIGNhcmVmdWxseSwgdGhlIGV4cGVjdGVkIHBhdHRlcm4gaXMgaW52ZXJ0
ZWQgY29tcGFyZWQgdG8gcm90YXRpbmcgYWJvdXQgeCBheGlzIG9yIHogYXhpcy4KKyAgICBBLm1h
a2VJZGVudGl0eSgpOworICAgIEEucm90YXRlM2QoMCwgMSwgMCwgOTApOworICAgIEVYUEVDVF9S
T1cxX05FQVIoMCwgMCwgMSwgMCwgQSwgRVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9X
Ml9FUSgwLCAxLCAwLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XM19ORUFSKC0xLCAwLCAwLCAwLCBB
LCBFUlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsIEEpOwor
CisgICAgLy8gVmVyaWZ5IHRoYXQgcm90YXRlM2QoYXhpcywgYW5nbGUpIHBvc3QtbXVsdGlwbGll
cyB0aGUgZXhpc3RpbmcgbWF0cml4LgorICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zY2Fs
ZTNkKDYsIDcsIDgpOworICAgIEEucm90YXRlM2QoMCwgMCwgMSwgOTApOworICAgIEVYUEVDVF9S
T1cxX05FQVIoMCwgLTYsIDAsIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JP
VzJfTkVBUig3LCAwLCAgMCwgMCwgQSwgRVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9X
M19FUSgwLCAwLCA4LCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBBKTsK
K30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeVNrZXdYKQorewor
ICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisgICAgQS5za2V3WCg0NSk7CisgICAgRVhQ
RUNUX1JPVzFfRVEoMSwgMSwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwgMSwgMCwg
MCwgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgMCwgQSk7CisgICAgRVhQRUNUX1JP
VzRfRVEoMCwgMCwgMCwgMSwgQSk7CisKKyAgICAvLyBWZXJpZnkgdGhhdCBza2V3WCgpIHBvc3Qt
bXVsdGlwbGllcyB0aGUgZXhpc3RpbmcgbWF0cml4LgorICAgIC8vIFJvdyAxLCBjb2x1bW4gMiwg
d291bGQgaW5jb3JyZWN0bHkgaGF2ZSB2YWx1ZSAiNyIgaWYgdGhlIG1hdHJpeCBpcyBwcmUtbXVs
dGlwbGllZCBpbnN0ZWFkIG9mIHBvc3QtbXVsdGlwbGllZC4KKyAgICBBLm1ha2VJZGVudGl0eSgp
OworICAgIEEuc2NhbGUzZCg2LCA3LCA4KTsKKyAgICBBLnNrZXdYKDQ1KTsKKyAgICBFWFBFQ1Rf
Uk9XMV9FUSg2LCA2LCAwLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgwLCA3LCAwLCAwLCBB
KTsKKyAgICBFWFBFQ1RfUk9XM19FUSgwLCAwLCA4LCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XNF9F
USgwLCAwLCAwLCAxLCBBKTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3Qs
IHZlcmlmeVNrZXdZKQoreworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisgICAgQS5z
a2V3WSg0NSk7CisgICAgRVhQRUNUX1JPVzFfRVEoMSwgMCwgMCwgMCwgQSk7CisgICAgRVhQRUNU
X1JPVzJfRVEoMSwgMSwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgMCwg
QSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7CisKKyAgICAvLyBWZXJpZnkg
dGhhdCBza2V3WSgpIHBvc3QtbXVsdGlwbGllcyB0aGUgZXhpc3RpbmcgbWF0cml4LgorICAgIC8v
IFJvdyAyLCBjb2x1bW4gMSwgd291bGQgaW5jb3JyZWN0bHkgaGF2ZSB2YWx1ZSAiNiIgaWYgdGhl
IG1hdHJpeCBpcyBwcmUtbXVsdGlwbGllZCBpbnN0ZWFkIG9mIHBvc3QtbXVsdGlwbGllZC4KKyAg
ICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2NhbGUzZCg2LCA3LCA4KTsKKyAgICBBLnNrZXdZ
KDQ1KTsKKyAgICBFWFBFQ1RfUk9XMV9FUSg2LCAwLCAwLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9X
Ml9FUSg3LCA3LCAwLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XM19FUSgwLCAwLCA4LCAwLCBBKTsK
KyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBBKTsKK30KKworVEVTVChXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUFwcGx5UGVyc3BlY3RpdmUpCit7CisgICAgV2ViVHJh
bnNmb3JtYXRpb25NYXRyaXggQTsKKyAgICBBLmFwcGx5UGVyc3BlY3RpdmUoMSk7CisgICAgRVhQ
RUNUX1JPVzFfRVEoMSwgMCwgIDAsIDAsIEEpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDEsICAw
LCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XM19FUSgwLCAwLCAgMSwgMCwgQSk7CisgICAgRVhQRUNU
X1JPVzRfRVEoMCwgMCwgLTEsIDEsIEEpOworCisgICAgLy8gVmVyaWZ5IHRoYXQgYXBwbHlQZXJz
cGVjdGl2ZSgpIHBvc3QtbXVsdGlwbGllcyB0aGUgZXhpc3RpbmcgbWF0cml4LgorICAgIEEubWFr
ZUlkZW50aXR5KCk7CisgICAgQS50cmFuc2xhdGUzZCgyLCAzLCA0KTsKKyAgICBBLmFwcGx5UGVy
c3BlY3RpdmUoMSk7CisgICAgRVhQRUNUX1JPVzFfRVEoMSwgMCwgLTIsIDIsIEEpOworICAgIEVY
UEVDVF9ST1cyX0VRKDAsIDEsIC0zLCAzLCBBKTsKKyAgICBFWFBFQ1RfUk9XM19FUSgwLCAwLCAt
MywgNCwgQSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwgLTEsIDEsIEEpOworfQorCitURVNU
KFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5SGFzUGVyc3BlY3RpdmUpCit7Cisg
ICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQTsKKyAgICBBLmFwcGx5UGVyc3BlY3RpdmUoMSk7
CisgICAgRVhQRUNUX1RSVUUoQS5oYXNQZXJzcGVjdGl2ZSgpKTsKKworICAgIEEubWFrZUlkZW50
aXR5KCk7CisgICAgQS5hcHBseVBlcnNwZWN0aXZlKDApOworICAgIEVYUEVDVF9GQUxTRShBLmhh
c1BlcnNwZWN0aXZlKCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0zNCgt
MC4zKTsKKyAgICBFWFBFQ1RfVFJVRShBLmhhc1BlcnNwZWN0aXZlKCkpOworCisgICAgLy8gRklY
TUU6IFdlYkNvcmUgb25seSBjaGVja2VzIG0zNCgpIGZvciBwZXJzcGVjdGl2ZSwgYnV0IHRoYXQg
aXMgcHJvYmFibHkKKyAgICAvLyAgICAgICAgd3JvbmcuIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MzA4OC4gRm9yIG5vdywgdGhpcyB0ZXN0CisgICAgLy8gICAgICAg
IGNhc2UgZXhwZWN0cyB0aGUgZXhhY3QgYmVoYXZpb3IgYXMgaW1wbGVtZW50ZWQgYnkgV2ViQ29y
ZSwgYnV0IHRoaXMgc2hvdWxkCisgICAgLy8gICAgICAgIHByb2JhYmx5IGJlIGNoYW5nZWQgc28g
dGhhdCBpZiB0aGUgZW50aXJlIGJvdHRvbSByb3cgaXMgbm90IGV4YWN0bHkKKyAgICAvLyAgICAg
ICAgKDAsIDAsIDAsIDEpLCB0aGVuIGhhc1BlcnNwZWN0aXZlIHNob3VsZCByZXR1cm4gdHJ1ZS4K
KworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMTQoLTEpOworICAgIEVYUEVDVF9G
QUxTRShBLmhhc1BlcnNwZWN0aXZlKCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBB
LnNldE0yNCgtMSk7CisgICAgRVhQRUNUX0ZBTFNFKEEuaGFzUGVyc3BlY3RpdmUoKSk7CisKKyAg
ICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2V0TTQ0KDAuNSk7CisgICAgRVhQRUNUX0ZBTFNF
KEEuaGFzUGVyc3BlY3RpdmUoKSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhU
ZXN0LCB2ZXJpZnlJc0ludmVydGlibGUpCit7CisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgg
QTsKKworICAgIC8vIFRyYW5zbGF0aW9ucywgcm90YXRpb25zLCBzY2FsZXMsIHNrZXdzIGFuZCBh
cmJpdHJhcnkgY29tYmluYXRpb25zIG9mIHRoZW0gYXJlIGludmVydGlibGUuCisgICAgQS5tYWtl
SWRlbnRpdHkoKTsKKyAgICBFWFBFQ1RfVFJVRShBLmlzSW52ZXJ0aWJsZSgpKTsKKworICAgIEEu
bWFrZUlkZW50aXR5KCk7CisgICAgQS50cmFuc2xhdGUzZCgyLCAzLCA0KTsKKyAgICBFWFBFQ1Rf
VFJVRShBLmlzSW52ZXJ0aWJsZSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5z
Y2FsZTNkKDYsIDcsIDgpOworICAgIEVYUEVDVF9UUlVFKEEuaXNJbnZlcnRpYmxlKCkpOworCisg
ICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnJvdGF0ZTNkKDEwLCAyMCwgMzApOworICAgIEVY
UEVDVF9UUlVFKEEuaXNJbnZlcnRpYmxlKCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAg
ICBBLnNrZXdYKDQ1KTsKKyAgICBFWFBFQ1RfVFJVRShBLmlzSW52ZXJ0aWJsZSgpKTsKKworICAg
IC8vIEEgcGVyc3BlY3RpdmUgbWF0cml4IChwcm9qZWN0aW9uIHBsYW5lIGF0IHo9MCkgaXMgaW52
ZXJ0aWJsZS4gVGhlIGludHVpdGl2ZQorICAgIC8vIGV4cGxhbmF0aW9uIGlzIHRoYXQgcGVyc3Bl
Y3RpdmUgaXMgZXFpdmFsZW50IHRvIGEgc2tldyBvZiB0aGUgdy1heGlzOyBza2V3cyBhcmUKKyAg
ICAvLyBpbnZlcnRpYmxlLgorICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5hcHBseVBlcnNw
ZWN0aXZlKDEpOworICAgIEVYUEVDVF9UUlVFKEEuaXNJbnZlcnRpYmxlKCkpOworCisgICAgLy8g
QSAicHVyZSIgcGVyc3BlY3RpdmUgbWF0cml4IGRlcml2ZWQgYnkgc2ltaWxhciB0cmlhbmdsZXMs
IHdpdGggbTQ0KCkgc2V0IHRvIHplcm8KKyAgICAvLyAoaS5lLiBjYW1lcmEgcG9zaXRpb25lZCBh
dCB0aGUgb3JpZ2luKSwgaXMgbm90IGludmVydGlibGUuCisgICAgQS5tYWtlSWRlbnRpdHkoKTsK
KyAgICBBLmFwcGx5UGVyc3BlY3RpdmUoMSk7CisgICAgQS5zZXRNNDQoMCk7CisgICAgRVhQRUNU
X0ZBTFNFKEEuaXNJbnZlcnRpYmxlKCkpOworCisgICAgLy8gQWRkaW5nIG1vcmUgdG8gYSBub24t
aW52ZXJ0aWJsZSBtYXRyaXggd2lsbCBub3QgbWFrZSBpdCBpbnZlcnRpYmxlIGluIHRoZSBnZW5l
cmFsIGNhc2UuCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLmFwcGx5UGVyc3BlY3RpdmUo
MSk7CisgICAgQS5zZXRNNDQoMCk7CisgICAgQS5zY2FsZTNkKDYsIDcsIDgpOworICAgIEEucm90
YXRlM2QoMTAsIDIwLCAzMCk7CisgICAgQS50cmFuc2xhdGUzZCg2LCA3LCA4KTsKKyAgICBFWFBF
Q1RfRkFMU0UoQS5pc0ludmVydGlibGUoKSk7CisKKyAgICAvLyBBIGRlZ2VuZXJhdGUgbWF0cml4
IG9mIGFsbCB6ZXJvcyBpcyBub3QgaW52ZXJ0aWJsZS4KKyAgICBBLm1ha2VJZGVudGl0eSgpOwor
ICAgIEEuc2V0TTExKDApOworICAgIEEuc2V0TTIyKDApOworICAgIEEuc2V0TTMzKDApOworICAg
IEEuc2V0TTQ0KDApOworICAgIEVYUEVDVF9GQUxTRShBLmlzSW52ZXJ0aWJsZSgpKTsKK30KKwor
VEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUlzSWRlbnRpdHkpCit7Cisg
ICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQTsKKworICAgIGluaXRpYWxpemVUZXN0TWF0cml4
KEEpOworICAgIEVYUEVDVF9GQUxTRShBLmlzSWRlbnRpdHkoKSk7CisKKyAgICBBLm1ha2VJZGVu
dGl0eSgpOworICAgIEVYUEVDVF9UUlVFKEEuaXNJZGVudGl0eSgpKTsKKworICAgIC8vIE1vZGlm
eWluZyBhbnkgb25lIGluZGl2aWR1YWwgZWxlbWVudCBzaG91bGQgY2F1c2UgdGhlIG1hdHJpeCB0
byBubyBsb25nZXIgYmUgaWRlbnRpdHkuCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNl
dE0xMSgyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOworCisgICAgQS5tYWtl
SWRlbnRpdHkoKTsKKyAgICBBLnNldE0xMigyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50
aXR5KCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0xMygyKTsKKyAgICBF
WFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAg
ICBBLnNldE0xNCgyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOworCisgICAg
QS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0yMSgyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5p
c0lkZW50aXR5KCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0yMigyKTsK
KyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOworCisgICAgQS5tYWtlSWRlbnRpdHko
KTsKKyAgICBBLnNldE0yMygyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOwor
CisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0yNCgyKTsKKyAgICBFWFBFQ1RfRkFM
U0UoQS5pc0lkZW50aXR5KCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0z
MSgyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOworCisgICAgQS5tYWtlSWRl
bnRpdHkoKTsKKyAgICBBLnNldE0zMigyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5
KCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0zMygyKTsKKyAgICBFWFBF
Q1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBB
LnNldE0zNCgyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOworCisgICAgQS5t
YWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE00MSgyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lk
ZW50aXR5KCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE00MigyKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsK
KyAgICBBLnNldE00MygyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOworCisg
ICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE00NCgyKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
QS5pc0lkZW50aXR5KCkpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwg
dmVyaWZ5SXNJZGVudGl0eU9yVHJhbnNsYXRpb24pCit7CisgICAgV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXggQTsKKworICAgIGluaXRpYWxpemVUZXN0TWF0cml4KEEpOworICAgIEVYUEVDVF9GQUxT
RShBLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsK
KyAgICBFWFBFQ1RfVFJVRShBLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpOworCisgICAgLy8g
TW9kaWZ5aW5nIGFueSBub24tdHJhbnNsYXRpb24gY29tcG9uZW50cyBzaG91bGQgY2F1c2UgaXNJ
ZGVudGl0eU9yVHJhbnNsYXRpb24oKSB0bworICAgIC8vIHJldHVybiBmYWxzZS4gTk9URTogbTQx
KCksIG00MigpLCBhbmQgbTQzKCkgYXJlIHRoZSB0cmFuc2xhdGlvbiBjb21wb25lbnRzLCBzbwor
ICAgIC8vIG1vZGlmeWluZyB0aGVtIHNob3VsZCBzdGlsbCByZXR1cm4gdHJ1ZSBmb3IgaXNJZGVu
dGl0eU9yVHJhbnNsYXRpb24oKS4KKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2V0TTEx
KDIpOworICAgIEVYUEVDVF9GQUxTRShBLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpOworCisg
ICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0xMigyKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
QS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbigpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7Cisg
ICAgQS5zZXRNMTMoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eU9yVHJhbnNsYXRp
b24oKSk7CisKKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2V0TTE0KDIpOworICAgIEVY
UEVDVF9GQUxTRShBLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpOworCisgICAgQS5tYWtlSWRl
bnRpdHkoKTsKKyAgICBBLnNldE0yMSgyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5
T3JUcmFuc2xhdGlvbigpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMjIo
Mik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSk7CisKKyAg
ICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2V0TTIzKDIpOworICAgIEVYUEVDVF9GQUxTRShB
LmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAg
ICBBLnNldE0yNCgyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5T3JUcmFuc2xhdGlv
bigpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMzEoMik7CisgICAgRVhQ
RUNUX0ZBTFNFKEEuaXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSk7CisKKyAgICBBLm1ha2VJZGVu
dGl0eSgpOworICAgIEEuc2V0TTMyKDIpOworICAgIEVYUEVDVF9GQUxTRShBLmlzSWRlbnRpdHlP
clRyYW5zbGF0aW9uKCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0zMygy
KTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbigpKTsKKworICAg
IEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMzQoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEu
aXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSk7CisKKyAgICAvLyBOb3RlIGNhcmVmdWxseSAtIGV4
cGVjdGluZyB0cnVlIGhlcmUuCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE00MSgy
KTsKKyAgICBFWFBFQ1RfVFJVRShBLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpOworCisgICAg
Ly8gTm90ZSBjYXJlZnVsbHkgLSBleHBlY3RpbmcgdHJ1ZSBoZXJlLgorICAgIEEubWFrZUlkZW50
aXR5KCk7CisgICAgQS5zZXRNNDIoMik7CisgICAgRVhQRUNUX1RSVUUoQS5pc0lkZW50aXR5T3JU
cmFuc2xhdGlvbigpKTsKKworICAgIC8vIE5vdGUgY2FyZWZ1bGx5IC0gZXhwZWN0aW5nIHRydWUg
aGVyZS4KKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2V0TTQzKDIpOworICAgIEVYUEVD
VF9UUlVFKEEuaXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSk7CisKKyAgICBBLm1ha2VJZGVudGl0
eSgpOworICAgIEEuc2V0TTQ0KDIpOworICAgIEVYUEVDVF9GQUxTRShBLmlzSWRlbnRpdHlPclRy
YW5zbGF0aW9uKCkpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgaXNJ
bnRlZ2VyVHJhbnNsYXRpb24pCit7CisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQTsKKwor
ICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS50cmFuc2xhdGUoMiwgMyk7CisgICAgRVhQRUNU
X1RSVUUoQS5pc0ludGVnZXJUcmFuc2xhdGlvbigpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7
CisgICAgQS50cmFuc2xhdGUoMi4wLCAzLjApOworICAgIEVYUEVDVF9UUlVFKEEuaXNJbnRlZ2Vy
VHJhbnNsYXRpb24oKSk7CisKKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEudHJhbnNsYXRl
KDIuMDAwMDEsIDMpOworICAgIEVYUEVDVF9GQUxTRShBLmlzSW50ZWdlclRyYW5zbGF0aW9uKCkp
OworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnRyYW5zbGF0ZSgyLCAyLjk5OTk5KTsK
KyAgICBFWFBFQ1RfRkFMU0UoQS5pc0ludGVnZXJUcmFuc2xhdGlvbigpKTsKKworICAgIC8vIFN0
YWNraW5nIG1hbnkgaW50ZWdlciB0cmFuc2xhdGlvbnMgc2hvdWxkIGlkZWFsbHkgbm90IGFjY3Vt
dWxhdGUgYW55IHByZWNpc2lvbiBlcnJvci4KKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgICAgIEEudHJhbnNsYXRlKDIsIDMp
OworICAgIEVYUEVDVF9UUlVFKEEuaXNJbnRlZ2VyVHJhbnNsYXRpb24oKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142048</attachid>
            <date>2012-05-15 14:02:32 -0700</date>
            <delta_ts>2012-05-15 18:23:15 -0700</delta_ts>
            <desc>Addressed reviewer comment</desc>
            <filename>bug-86421-20120515140231.patch</filename>
            <type>text/plain</type>
            <size>31070</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGIxZTU3YmVmYzE3ZTZlNjU2ODk5M2M4ZjFiMjg0MDk5MTUwMmI0MzIuLjY1MGMxZTQ2OGM0NTUx
NjliYTMyMDdkMGU0Zjg1NmVhMWFmYTM4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTItMDUtMTQgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgdW5pdCB0ZXN0aW5nIHRvIFdlYlRy
YW5zZm9ybWF0aW9uTWF0cml4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NjQyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogdGVzdHMvV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXhUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpwcmludFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUZXN0TWF0
cml4KToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZVRlc3RNYXRyaXgyKToKKyAgICAgICAg
KFdlYktpdDo6VEVTVCk6CisKIDIwMTItMDUtMTUgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE2ODExLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggYmIyZTNiZDMyYzhhNWQyNmZhM2Q0YjJm
YTVlZjc2YjRlN2M2MjkzZC4uY2ZiMWQ3YjRlMjViOWU5ODE0MjYzNWIwN2IzZDYwOWE4ZjAyNmVh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC0xNDcsNiArMTQ3LDcgQEAKICAg
ICAgICAgICAgICd0ZXN0cy9XZWJQYWdlU2VyaWFsaXplclRlc3QuY3BwJywKICAgICAgICAgICAg
ICd0ZXN0cy9XZWJTb2NrZXREZWZsYXRlclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9X
ZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyVGVzdC5jcHAnLAorICAgICAgICAgICAgJ3Rlc3Rz
L1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dl
YlVSTFJlcXVlc3RUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViVVJMUmVzcG9uc2VU
ZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViVmlld1Rlc3QuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXhUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjI5MTY5OGFhMDI3NTU0NzJhZDg2NmFmZWM3MTAx
MWFiYjE4OTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QuY3BwCkBAIC0wLDAgKzEsOTU2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICIuLi8uLi8uLi8uLi9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKworI2lu
Y2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNkZWZpbmUgRVhQRUNUX1JPVzFfRVEoYSwgYiwgYywg
ZCwgbWF0cml4KSAgICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGEpLCAobWF0cml4KS5tMTEo
KSk7ICAgICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGIpLCAobWF0cml4KS5tMjEoKSk7ICAg
ICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGMpLCAobWF0cml4KS5tMzEoKSk7ICAgICAgIFwK
KyAgICBFWFBFQ1RfRkxPQVRfRVEoKGQpLCAobWF0cml4KS5tNDEoKSk7CisKKyNkZWZpbmUgRVhQ
RUNUX1JPVzJfRVEoYSwgYiwgYywgZCwgbWF0cml4KSAgICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRf
RVEoKGEpLCAobWF0cml4KS5tMTIoKSk7ICAgICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGIp
LCAobWF0cml4KS5tMjIoKSk7ICAgICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGMpLCAobWF0
cml4KS5tMzIoKSk7ICAgICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGQpLCAobWF0cml4KS5t
NDIoKSk7CisKKyNkZWZpbmUgRVhQRUNUX1JPVzNfRVEoYSwgYiwgYywgZCwgbWF0cml4KSAgICAg
IFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGEpLCAobWF0cml4KS5tMTMoKSk7ICAgICAgIFwKKyAg
ICBFWFBFQ1RfRkxPQVRfRVEoKGIpLCAobWF0cml4KS5tMjMoKSk7ICAgICAgIFwKKyAgICBFWFBF
Q1RfRkxPQVRfRVEoKGMpLCAobWF0cml4KS5tMzMoKSk7ICAgICAgIFwKKyAgICBFWFBFQ1RfRkxP
QVRfRVEoKGQpLCAobWF0cml4KS5tNDMoKSk7CisKKyNkZWZpbmUgRVhQRUNUX1JPVzRfRVEoYSwg
YiwgYywgZCwgbWF0cml4KSAgICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGEpLCAobWF0cml4
KS5tMTQoKSk7ICAgICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGIpLCAobWF0cml4KS5tMjQo
KSk7ICAgICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGMpLCAobWF0cml4KS5tMzQoKSk7ICAg
ICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGQpLCAobWF0cml4KS5tNDQoKSk7ICAgICAgIFwK
KworLy8gQ2hlY2tpbmcgZmxvYXQgdmFsdWVzIGZvciBlcXVhbGl0eSBjbG9zZSB0byB6ZXJvIGlz
IG5vdCByb2J1c3QgdXNpbmcgRVhQRUNUX0ZMT0FUX0VRCisvLyAoc2VlIGd0ZXN0IGRvY3VtZW50
YXRpb24pLiBTbywgdG8gdmVyaWZ5IHJvdGF0aW9uIG1hdHJpY2VzLCB3ZSBtdXN0IHVzZSBhIGxv
b3NlcgorLy8gYWJzb2x1dGUgZXJyb3IgdGhyZXNob2xkIGluIHNvbWUgcGxhY2VzLgorI2RlZmlu
ZSBFWFBFQ1RfUk9XMV9ORUFSKGEsIGIsIGMsIGQsIG1hdHJpeCwgZXJyb3JUaHJlc2hvbGQpICAg
ICAgXAorICAgIEVYUEVDVF9ORUFSKChhKSwgKG1hdHJpeCkubTExKCksIChlcnJvclRocmVzaG9s
ZCkpOyAgICAgICAgICAgXAorICAgIEVYUEVDVF9ORUFSKChiKSwgKG1hdHJpeCkubTIxKCksIChl
cnJvclRocmVzaG9sZCkpOyAgICAgICAgICAgXAorICAgIEVYUEVDVF9ORUFSKChjKSwgKG1hdHJp
eCkubTMxKCksIChlcnJvclRocmVzaG9sZCkpOyAgICAgICAgICAgXAorICAgIEVYUEVDVF9ORUFS
KChkKSwgKG1hdHJpeCkubTQxKCksIChlcnJvclRocmVzaG9sZCkpOworCisjZGVmaW5lIEVYUEVD
VF9ST1cyX05FQVIoYSwgYiwgYywgZCwgbWF0cml4LCBlcnJvclRocmVzaG9sZCkgICAgICBcCisg
ICAgRVhQRUNUX05FQVIoKGEpLCAobWF0cml4KS5tMTIoKSwgKGVycm9yVGhyZXNob2xkKSk7ICAg
ICAgICAgICBcCisgICAgRVhQRUNUX05FQVIoKGIpLCAobWF0cml4KS5tMjIoKSwgKGVycm9yVGhy
ZXNob2xkKSk7ICAgICAgICAgICBcCisgICAgRVhQRUNUX05FQVIoKGMpLCAobWF0cml4KS5tMzIo
KSwgKGVycm9yVGhyZXNob2xkKSk7ICAgICAgICAgICBcCisgICAgRVhQRUNUX05FQVIoKGQpLCAo
bWF0cml4KS5tNDIoKSwgKGVycm9yVGhyZXNob2xkKSk7CisKKyNkZWZpbmUgRVhQRUNUX1JPVzNf
TkVBUihhLCBiLCBjLCBkLCBtYXRyaXgsIGVycm9yVGhyZXNob2xkKSAgICAgIFwKKyAgICBFWFBF
Q1RfTkVBUigoYSksIChtYXRyaXgpLm0xMygpLCAoZXJyb3JUaHJlc2hvbGQpKTsgICAgICAgICAg
IFwKKyAgICBFWFBFQ1RfTkVBUigoYiksIChtYXRyaXgpLm0yMygpLCAoZXJyb3JUaHJlc2hvbGQp
KTsgICAgICAgICAgIFwKKyAgICBFWFBFQ1RfTkVBUigoYyksIChtYXRyaXgpLm0zMygpLCAoZXJy
b3JUaHJlc2hvbGQpKTsgICAgICAgICAgIFwKKyAgICBFWFBFQ1RfTkVBUigoZCksIChtYXRyaXgp
Lm00MygpLCAoZXJyb3JUaHJlc2hvbGQpKTsKKworI2RlZmluZSBFUlJPUl9USFJFU0hPTEQgMWUt
MTQKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIHsKKworc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZVRlc3RNYXRyaXgoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSkKK3sKKyAgICB0cmFuc2Zvcm0uc2V0TTExKDEwKTsKKyAgICB0cmFuc2Zvcm0uc2V0TTEyKDEx
KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTEzKDEyKTsKKyAgICB0cmFuc2Zvcm0uc2V0TTE0KDEzKTsK
KyAgICB0cmFuc2Zvcm0uc2V0TTIxKDE0KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTIyKDE1KTsKKyAg
ICB0cmFuc2Zvcm0uc2V0TTIzKDE2KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTI0KDE3KTsKKyAgICB0
cmFuc2Zvcm0uc2V0TTMxKDE4KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTMyKDE5KTsKKyAgICB0cmFu
c2Zvcm0uc2V0TTMzKDIwKTsKKyAgICB0cmFuc2Zvcm0uc2V0TTM0KDIxKTsKKyAgICB0cmFuc2Zv
cm0uc2V0TTQxKDIyKTsKKyAgICB0cmFuc2Zvcm0uc2V0TTQyKDIzKTsKKyAgICB0cmFuc2Zvcm0u
c2V0TTQzKDI0KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTQ0KDI1KTsKKworICAgIC8vIFNhbml0eSBj
aGVjaworICAgIEVYUEVDVF9ST1cxX0VRKDEwLCAxNCwgMTgsIDIyLCB0cmFuc2Zvcm0pOworICAg
IEVYUEVDVF9ST1cyX0VRKDExLCAxNSwgMTksIDIzLCB0cmFuc2Zvcm0pOworICAgIEVYUEVDVF9S
T1czX0VRKDEyLCAxNiwgMjAsIDI0LCB0cmFuc2Zvcm0pOworICAgIEVYUEVDVF9ST1c0X0VRKDEz
LCAxNywgMjEsIDI1LCB0cmFuc2Zvcm0pOworfQorCitzdGF0aWMgdm9pZCBpbml0aWFsaXplVGVz
dE1hdHJpeDIoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSkKK3sKKyAgICB0cmFu
c2Zvcm0uc2V0TTExKDMwKTsKKyAgICB0cmFuc2Zvcm0uc2V0TTEyKDMxKTsKKyAgICB0cmFuc2Zv
cm0uc2V0TTEzKDMyKTsKKyAgICB0cmFuc2Zvcm0uc2V0TTE0KDMzKTsKKyAgICB0cmFuc2Zvcm0u
c2V0TTIxKDM0KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTIyKDM1KTsKKyAgICB0cmFuc2Zvcm0uc2V0
TTIzKDM2KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTI0KDM3KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTMx
KDM4KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTMyKDM5KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTMzKDQw
KTsKKyAgICB0cmFuc2Zvcm0uc2V0TTM0KDQxKTsKKyAgICB0cmFuc2Zvcm0uc2V0TTQxKDQyKTsK
KyAgICB0cmFuc2Zvcm0uc2V0TTQyKDQzKTsKKyAgICB0cmFuc2Zvcm0uc2V0TTQzKDQ0KTsKKyAg
ICB0cmFuc2Zvcm0uc2V0TTQ0KDQ1KTsKKworICAgIC8vIFNhbml0eSBjaGVjaworICAgIEVYUEVD
VF9ST1cxX0VRKDMwLCAzNCwgMzgsIDQyLCB0cmFuc2Zvcm0pOworICAgIEVYUEVDVF9ST1cyX0VR
KDMxLCAzNSwgMzksIDQzLCB0cmFuc2Zvcm0pOworICAgIEVYUEVDVF9ST1czX0VRKDMyLCAzNiwg
NDAsIDQ0LCB0cmFuc2Zvcm0pOworICAgIEVYUEVDVF9ST1c0X0VRKDMzLCAzNywgNDEsIDQ1LCB0
cmFuc2Zvcm0pOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5
RGVmYXVsdENvbnN0cnVjdG9yQ3JlYXRlc0lkZW50aXR5TWF0cml4KQoreworICAgIFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4IEE7CisgICAgRVhQRUNUX1JPVzFfRVEoMSwgMCwgMCwgMCwgQSk7Cisg
ICAgRVhQRUNUX1JPVzJfRVEoMCwgMSwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwg
MCwgMSwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7CisgICAgRVhQ
RUNUX1RSVUUoQS5pc0lkZW50aXR5KCkpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4VGVzdCwgdmVyaWZ5Q29uc3RydWN0b3JGb3IyZEVsZW1lbnRzKQoreworICAgIFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4IEEoMSwgMiwgMywgNCwgNSwgNik7CisgICAgRVhQRUNUX1JPVzFfRVEo
MSwgMywgMCwgNSwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMiwgNCwgMCwgNiwgQSk7CisgICAg
RVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwg
MCwgMSwgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlD
b3B5Q29uc3RydWN0b3IpCit7CisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQTsKKyAgICBp
bml0aWFsaXplVGVzdE1hdHJpeChBKTsKKworICAgIC8vIENvcHkgY29uc3RydWN0b3Igc2hvdWxk
IHByb2R1Y2UgZXhhY3Qgc2FtZSBlbGVtZW50cyBhcyBtYXRyaXggQS4KKyAgICBXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeCBCKEEpOworICAgIEVYUEVDVF9ST1cxX0VRKDEwLCAxNCwgMTgsIDIyLCBC
KTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgxMSwgMTUsIDE5LCAyMywgQik7CisgICAgRVhQRUNUX1JP
VzNfRVEoMTIsIDE2LCAyMCwgMjQsIEIpOworICAgIEVYUEVDVF9ST1c0X0VRKDEzLCAxNywgMjEs
IDI1LCBCKTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeU1h
dHJpeEludmVyc2lvbikKK3sKKyAgICAvLyBJbnZlcnQgYSB0cmFuc2xhdGlvbgorICAgIFdlYlRy
YW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zbGF0aW9uOworICAgIHRyYW5zbGF0aW9uLnRyYW5zbGF0
ZTNkKDIsIDMsIDQpOworICAgIEVYUEVDVF9UUlVFKHRyYW5zbGF0aW9uLmlzSW52ZXJ0aWJsZSgp
KTsKKworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGludmVyc2VUcmFuc2xhdGlvbiA9IHRy
YW5zbGF0aW9uLmludmVyc2UoKTsKKyAgICBFWFBFQ1RfUk9XMV9FUSgxLCAwLCAwLCAtMiwgaW52
ZXJzZVRyYW5zbGF0aW9uKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgwLCAxLCAwLCAtMywgaW52ZXJz
ZVRyYW5zbGF0aW9uKTsKKyAgICBFWFBFQ1RfUk9XM19FUSgwLCAwLCAxLCAtNCwgaW52ZXJzZVRy
YW5zbGF0aW9uKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAgMSwgaW52ZXJzZVRyYW5z
bGF0aW9uKTsKKworICAgIC8vIE5vdGUgdGhhdCBpbnZlcnNpb24gc2hvdWxkIG5vdCBoYXZlIGNo
YW5nZWQgdGhlIG9yaWdpbmFsIG1hdHJpeC4KKyAgICBFWFBFQ1RfUk9XMV9FUSgxLCAwLCAwLCAy
LCB0cmFuc2xhdGlvbik7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwgMSwgMCwgMywgdHJhbnNsYXRp
b24pOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDQsIHRyYW5zbGF0aW9uKTsKKyAgICBF
WFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCB0cmFuc2xhdGlvbik7CisKKyAgICAvLyBJbnZlcnQg
YSBub24tdW5pZm9ybSBzY2FsZQorICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHNjYWxlOwor
ICAgIHNjYWxlLnNjYWxlM2QoNCwgMTAsIDEwMCk7CisgICAgRVhQRUNUX1RSVUUoc2NhbGUuaXNJ
bnZlcnRpYmxlKCkpOworCisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggaW52ZXJzZVNjYWxl
ID0gc2NhbGUuaW52ZXJzZSgpOworICAgIEVYUEVDVF9ST1cxX0VRKDAuMjUsICAwLCAgICAwLCAg
ICAwLCBpbnZlcnNlU2NhbGUpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsICAgIDAuMSwgICAwLCAg
ICAwLCBpbnZlcnNlU2NhbGUpOworICAgIEVYUEVDVF9ST1czX0VRKDAsICAgICAwLCAgIDAuMDEs
ICAwLCBpbnZlcnNlU2NhbGUpOworICAgIEVYUEVDVF9ST1c0X0VRKDAsICAgICAwLCAgICAwLCAg
ICAxLCBpbnZlcnNlU2NhbGUpOworCisgICAgLy8gVHJ5IHRvIGludmVydCBhIG1hdHJpeCB0aGF0
IGlzIG5vdCBpbnZlcnRpYmxlLgorICAgIC8vIFRoZSBpbnZlcnNlKCkgZnVuY3Rpb24gc2hvdWxk
IHNpbXBseSByZXR1cm4gYW4gaWRlbnRpdHkgbWF0cml4LgorICAgIFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4IG5vdEludmVydGlibGU7CisgICAgbm90SW52ZXJ0aWJsZS5zZXRNMTEoMCk7CisgICAg
bm90SW52ZXJ0aWJsZS5zZXRNMjIoMCk7CisgICAgbm90SW52ZXJ0aWJsZS5zZXRNMzMoMCk7Cisg
ICAgbm90SW52ZXJ0aWJsZS5zZXRNNDQoMCk7CisgICAgRVhQRUNUX0ZBTFNFKG5vdEludmVydGli
bGUuaXNJbnZlcnRpYmxlKCkpOworCisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggaW52ZXJz
ZU9mTm90SW52ZXJ0aWJsZTsKKyAgICBpbml0aWFsaXplVGVzdE1hdHJpeChpbnZlcnNlT2ZOb3RJ
bnZlcnRpYmxlKTsgLy8gaW5pdGlhbGl6ZSB0aGlzIHRvIHNvbWV0aGluZyBub24taWRlbnRpdHks
IHRvIG1ha2Ugc3VyZSB0aGF0IGFzc2lnbm1lbnQgYmVsb3cgYWN0dWFsbHkgdG9vayBwbGFjZS4K
KyAgICBpbnZlcnNlT2ZOb3RJbnZlcnRpYmxlID0gbm90SW52ZXJ0aWJsZS5pbnZlcnNlKCk7Cisg
ICAgRVhQRUNUX1RSVUUoaW52ZXJzZU9mTm90SW52ZXJ0aWJsZS5pc0lkZW50aXR5KCkpOworfQor
CitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5VG8yRFRyYW5zZm9ybSkK
K3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOworICAgIGluaXRpYWxpemVUZXN0TWF0
cml4KEEpOworCisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQiA9IEEudG8yZFRyYW5zZm9y
bSgpOworCisgICAgRVhQRUNUX1JPVzFfRVEoMTAsIDE0LCAwLCAyMiwgQik7CisgICAgRVhQRUNU
X1JPVzJfRVEoMTEsIDE1LCAwLCAyMywgQik7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgIDAsICAx
LCAwLCAgQik7CisgICAgRVhQRUNUX1JPVzRfRVEoMTMsIDE3LCAwLCAyNSwgQik7CisKKyAgICAv
LyBOb3RlIHRoYXQgdG8yRFRyYW5zZm9ybSBzaG91bGQgbm90IGhhdmUgY2hhbmdlZCB0aGUgb3Jp
Z2luYWwgbWF0cml4LgorICAgIEVYUEVDVF9ST1cxX0VRKDEwLCAxNCwgMTgsIDIyLCBBKTsKKyAg
ICBFWFBFQ1RfUk9XMl9FUSgxMSwgMTUsIDE5LCAyMywgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEo
MTIsIDE2LCAyMCwgMjQsIEEpOworICAgIEVYUEVDVF9ST1c0X0VRKDEzLCAxNywgMjEsIDI1LCBB
KTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUFzc2lnbm1l
bnRPcGVyYXRvcikKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOworICAgIGluaXRp
YWxpemVUZXN0TWF0cml4KEEpOworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEI7CisgICAg
aW5pdGlhbGl6ZVRlc3RNYXRyaXgyKEIpOworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEM7
CisgICAgaW5pdGlhbGl6ZVRlc3RNYXRyaXgyKEMpOworICAgIEMgPSBCID0gQTsKKworICAgIC8v
IEJvdGggQiBhbmQgQyBzaG91bGQgbm93IGhhdmUgYmVlbiByZS1hc3NpZ25lZCB0byB0aGUgdmFs
dWUgb2YgQS4KKyAgICBFWFBFQ1RfUk9XMV9FUSgxMCwgMTQsIDE4LCAyMiwgQik7CisgICAgRVhQ
RUNUX1JPVzJfRVEoMTEsIDE1LCAxOSwgMjMsIEIpOworICAgIEVYUEVDVF9ST1czX0VRKDEyLCAx
NiwgMjAsIDI0LCBCKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgxMywgMTcsIDIxLCAyNSwgQik7CisK
KyAgICBFWFBFQ1RfUk9XMV9FUSgxMCwgMTQsIDE4LCAyMiwgQyk7CisgICAgRVhQRUNUX1JPVzJf
RVEoMTEsIDE1LCAxOSwgMjMsIEMpOworICAgIEVYUEVDVF9ST1czX0VRKDEyLCAxNiwgMjAsIDI0
LCBDKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgxMywgMTcsIDIxLCAyNSwgQyk7Cit9CisKK1RFU1Qo
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlFcXVhbHNCb29sZWFuT3BlcmF0b3Ip
Cit7CisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQTsKKyAgICBpbml0aWFsaXplVGVzdE1h
dHJpeChBKTsKKworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEI7CisgICAgaW5pdGlhbGl6
ZVRlc3RNYXRyaXgoQik7CisgICAgRVhQRUNUX1RSVUUoQSA9PSBCKTsKKworICAgIC8vIE1vZGlm
eWluZyBtdWx0aXBsZSBlbGVtZW50cyBzaG91bGQgY2F1c2UgZXF1YWxzIG9wZXJhdG9yIHRvIHJl
dHVybiBmYWxzZS4KKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBDOworICAgIGluaXRpYWxp
emVUZXN0TWF0cml4MihDKTsKKyAgICBFWFBFQ1RfRkFMU0UoQSA9PSBDKTsKKworICAgIC8vIE1v
ZGlmeWluZyBhbnkgb25lIGluZGl2aWR1YWwgZWxlbWVudCBzaG91bGQgY2F1c2UgZXF1YWxzIG9w
ZXJhdG9yIHRvIHJldHVybiBmYWxzZS4KKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBEOwor
ICAgIEQgPSBBOworICAgIEQuc2V0TTExKDApOworICAgIEVYUEVDVF9GQUxTRShBID09IEQpOwor
CisgICAgRCA9IEE7CisgICAgRC5zZXRNMTIoMCk7CisgICAgRVhQRUNUX0ZBTFNFKEEgPT0gRCk7
CisKKyAgICBEID0gQTsKKyAgICBELnNldE0xMygwKTsKKyAgICBFWFBFQ1RfRkFMU0UoQSA9PSBE
KTsKKworICAgIEQgPSBBOworICAgIEQuc2V0TTE0KDApOworICAgIEVYUEVDVF9GQUxTRShBID09
IEQpOworCisgICAgRCA9IEE7CisgICAgRC5zZXRNMjEoMCk7CisgICAgRVhQRUNUX0ZBTFNFKEEg
PT0gRCk7CisKKyAgICBEID0gQTsKKyAgICBELnNldE0yMigwKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
QSA9PSBEKTsKKworICAgIEQgPSBBOworICAgIEQuc2V0TTIzKDApOworICAgIEVYUEVDVF9GQUxT
RShBID09IEQpOworCisgICAgRCA9IEE7CisgICAgRC5zZXRNMjQoMCk7CisgICAgRVhQRUNUX0ZB
TFNFKEEgPT0gRCk7CisKKyAgICBEID0gQTsKKyAgICBELnNldE0zMSgwKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoQSA9PSBEKTsKKworICAgIEQgPSBBOworICAgIEQuc2V0TTMyKDApOworICAgIEVYUEVD
VF9GQUxTRShBID09IEQpOworCisgICAgRCA9IEE7CisgICAgRC5zZXRNMzMoMCk7CisgICAgRVhQ
RUNUX0ZBTFNFKEEgPT0gRCk7CisKKyAgICBEID0gQTsKKyAgICBELnNldE0zNCgwKTsKKyAgICBF
WFBFQ1RfRkFMU0UoQSA9PSBEKTsKKworICAgIEQgPSBBOworICAgIEQuc2V0TTQxKDApOworICAg
IEVYUEVDVF9GQUxTRShBID09IEQpOworCisgICAgRCA9IEE7CisgICAgRC5zZXRNNDIoMCk7Cisg
ICAgRVhQRUNUX0ZBTFNFKEEgPT0gRCk7CisKKyAgICBEID0gQTsKKyAgICBELnNldE00MygwKTsK
KyAgICBFWFBFQ1RfRkFMU0UoQSA9PSBEKTsKKworICAgIEQgPSBBOworICAgIEQuc2V0TTQ0KDAp
OworICAgIEVYUEVDVF9GQUxTRShBID09IEQpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4VGVzdCwgdmVyaWZ5TXVsdGlwbHlPcGVyYXRvcikKK3sKKyAgICBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBBOworICAgIGluaXRpYWxpemVUZXN0TWF0cml4KEEpOworCisgICAgV2ViVHJh
bnNmb3JtYXRpb25NYXRyaXggQjsKKyAgICBpbml0aWFsaXplVGVzdE1hdHJpeDIoQik7CisKKyAg
ICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBDID0gQSAqIEI7CisgICAgRVhQRUNUX1JPVzFfRVEo
MjAzNiwgMjI5MiwgMjU0OCwgMjgwNCwgQyk7CisgICAgRVhQRUNUX1JPVzJfRVEoMjE2MiwgMjQz
NCwgMjcwNiwgMjk3OCwgQyk7CisgICAgRVhQRUNUX1JPVzNfRVEoMjI4OCwgMjU3NiwgMjg2NCwg
MzE1MiwgQyk7CisgICAgRVhQRUNUX1JPVzRfRVEoMjQxNCwgMjcxOCwgMzAyMiwgMzMyNiwgQyk7
CisKKyAgICAvLyBKdXN0IGFuIGFkZGl0aW9uYWwgc2FuaXR5IGNoZWNrOyBtYXRyaXggbXVsdGlw
bGljYXRpb24gaXMgbm90IGNvbW11dGF0aXZlLgorICAgIEVYUEVDVF9GQUxTRShBICogQiA9PSBC
ICogQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlNYXRy
aXhNdWx0aXBsaWNhdGlvbikKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOworICAg
IGluaXRpYWxpemVUZXN0TWF0cml4KEEpOworCisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgg
QjsKKyAgICBpbml0aWFsaXplVGVzdE1hdHJpeDIoQik7CisKKyAgICBBLm11bHRpcGx5KEIpOwor
ICAgIEVYUEVDVF9ST1cxX0VRKDIwMzYsIDIyOTIsIDI1NDgsIDI4MDQsIEEpOworICAgIEVYUEVD
VF9ST1cyX0VRKDIxNjIsIDI0MzQsIDI3MDYsIDI5NzgsIEEpOworICAgIEVYUEVDVF9ST1czX0VR
KDIyODgsIDI1NzYsIDI4NjQsIDMxNTIsIEEpOworICAgIEVYUEVDVF9ST1c0X0VRKDI0MTQsIDI3
MTgsIDMwMjIsIDMzMjYsIEEpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVz
dCwgdmVyaWZ5TWFrZUlkZW50aXkpCit7CisgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggQTsK
KyAgICBpbml0aWFsaXplVGVzdE1hdHJpeChBKTsKKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAg
IEVYUEVDVF9ST1cxX0VRKDEsIDAsIDAsIDAsIEEpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDEs
IDAsIDAsIEEpOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDAsIEEpOworICAgIEVYUEVD
VF9ST1c0X0VRKDAsIDAsIDAsIDEsIEEpOworICAgIEVYUEVDVF9UUlVFKEEuaXNJZGVudGl0eSgp
KTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeVRyYW5zbGF0
ZSkKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOworICAgIEEudHJhbnNsYXRlKDIs
IDMpOworICAgIEVYUEVDVF9ST1cxX0VRKDEsIDAsIDAsIDIsIEEpOworICAgIEVYUEVDVF9ST1cy
X0VRKDAsIDEsIDAsIDMsIEEpOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDAsIEEpOwor
ICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsIEEpOworCisgICAgLy8gVmVyaWZ5IHRoYXQg
dHJhbnNsYXRlKCkgcG9zdC1tdWx0aXBsaWVzIHRoZSBleGlzdGluZyBtYXRyaXguCisgICAgQS5t
YWtlSWRlbnRpdHkoKTsKKyAgICBBLnNjYWxlKDUpOworICAgIEEudHJhbnNsYXRlKDIsIDMpOwor
ICAgIEVYUEVDVF9ST1cxX0VRKDUsIDAsIDAsIDEwLCBBKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgw
LCA1LCAwLCAxNSwgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgMCwgIEEpOworICAg
IEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsICBBKTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeFRlc3QsIHZlcmlmeVRyYW5zbGF0ZTNkKQoreworICAgIFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4IEE7CisgICAgQS50cmFuc2xhdGUzZCgyLCAzLCA0KTsKKyAgICBFWFBFQ1RfUk9X
MV9FUSgxLCAwLCAwLCAyLCBBKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgwLCAxLCAwLCAzLCBBKTsK
KyAgICBFWFBFQ1RfUk9XM19FUSgwLCAwLCAxLCA0LCBBKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgw
LCAwLCAwLCAxLCBBKTsKKworICAgIC8vIFZlcmlmeSB0aGF0IHRyYW5zbGF0ZTNkKCkgcG9zdC1t
dWx0aXBsaWVzIHRoZSBleGlzdGluZyBtYXRyaXguCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAg
ICBBLnNjYWxlM2QoNiwgNywgOCk7CisgICAgQS50cmFuc2xhdGUzZCgyLCAzLCA0KTsKKyAgICBF
WFBFQ1RfUk9XMV9FUSg2LCAwLCAwLCAxMiwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwgNywg
MCwgMjEsIEEpOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDgsIDMyLCBBKTsKKyAgICBFWFBF
Q1RfUk9XNF9FUSgwLCAwLCAwLCAxLCAgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXhUZXN0LCB2ZXJpZnlUcmFuc2xhdGVSaWdodDNkKQoreworICAgIFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4IEE7CisgICAgQS50cmFuc2xhdGVSaWdodDNkKDIsIDMsIDQpOworICAgIEVYUEVD
VF9ST1cxX0VRKDEsIDAsIDAsIDIsIEEpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDEsIDAsIDMs
IEEpOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDQsIEEpOworICAgIEVYUEVDVF9ST1c0
X0VRKDAsIDAsIDAsIDEsIEEpOworCisgICAgLy8gTm90ZSBjYXJlZnVsbHksIGFsbCBvdGhlciBv
cGVyYXRpb25zIGRvIHBvc3QtbXVsdGlwbHksIHRoaXMgb25lIGlzIHVuaXF1ZS4KKyAgICAvLyBW
ZXJpZnkgdGhhdCB0cmFuc2xhdGVSaWdodDNkKCkgUFJFLW11bHRpcGxpZXMgdGhlIGV4aXN0aW5n
IG1hdHJpeC4KKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2NhbGUzZCg2LCA3LCA4KTsK
KyAgICBBLnRyYW5zbGF0ZVJpZ2h0M2QoMiwgMywgNCk7CisgICAgRVhQRUNUX1JPVzFfRVEoNiwg
MCwgMCwgMiwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwgNywgMCwgMywgQSk7CisgICAgRVhQ
RUNUX1JPVzNfRVEoMCwgMCwgOCwgNCwgQSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwg
MSwgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlTY2Fs
ZSkKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOworICAgIEEuc2NhbGUoNSk7Cisg
ICAgRVhQRUNUX1JPVzFfRVEoNSwgMCwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwg
NSwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgMSwgMCwgQSk7CisgICAgRVhQ
RUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7CisKKyAgICAvLyBWZXJpZnkgdGhhdCBzY2FsZSgp
IHBvc3QtbXVsdGlwbGllcyB0aGUgZXhpc3RpbmcgbWF0cml4LgorICAgIEEubWFrZUlkZW50aXR5
KCk7CisgICAgQS50cmFuc2xhdGUzZCgyLCAzLCA0KTsKKyAgICBBLnNjYWxlKDUpOworICAgIEVY
UEVDVF9ST1cxX0VRKDUsIDAsIDAsIDIsIEEpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDUsIDAs
IDMsIEEpOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDQsIEEpOworICAgIEVYUEVDVF9S
T1c0X0VRKDAsIDAsIDAsIDEsICBBKTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eFRlc3QsIHZlcmlmeU5vblVuaWZvcm1TY2FsZSkKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBBOworICAgIEEuc2NhbGVOb25Vbmlmb3JtKDYsIDcpOworICAgIEVYUEVDVF9ST1cxX0VR
KDYsIDAsIDAsIDAsIEEpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDcsIDAsIDAsIEEpOworICAg
IEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDAsIEEpOworICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAs
IDAsIDEsIEEpOworCisgICAgLy8gVmVyaWZ5IHRoYXQgc2NhbGVOb25Vbmlmb3JtKCkgcG9zdC1t
dWx0aXBsaWVzIHRoZSBleGlzdGluZyBtYXRyaXguCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAg
ICBBLnRyYW5zbGF0ZTNkKDIsIDMsIDQpOworICAgIEEuc2NhbGVOb25Vbmlmb3JtKDYsIDcpOwor
ICAgIEVYUEVDVF9ST1cxX0VRKDYsIDAsIDAsIDIsIEEpOworICAgIEVYUEVDVF9ST1cyX0VRKDAs
IDcsIDAsIDMsIEEpOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDQsIEEpOworICAgIEVY
UEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsIEEpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4VGVzdCwgdmVyaWZ5U2NhbGUzZCkKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBBOworICAgIEEuc2NhbGUzZCg2LCA3LCA4KTsKKyAgICBFWFBFQ1RfUk9XMV9FUSg2LCAwLCAw
LCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgwLCA3LCAwLCAwLCBBKTsKKyAgICBFWFBFQ1Rf
Uk9XM19FUSgwLCAwLCA4LCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBB
KTsKKworICAgIC8vIFZlcmlmeSB0aGF0IHNjYWxlM2QoKSBwb3N0LW11bHRpcGxpZXMgdGhlIGV4
aXN0aW5nIG1hdHJpeC4KKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEudHJhbnNsYXRlM2Qo
MiwgMywgNCk7CisgICAgQS5zY2FsZTNkKDYsIDcsIDgpOworICAgIEVYUEVDVF9ST1cxX0VRKDYs
IDAsIDAsIDIsIEEpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDcsIDAsIDMsIEEpOworICAgIEVY
UEVDVF9ST1czX0VRKDAsIDAsIDgsIDQsIEEpOworICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAs
IDEsIEEpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5Um90
YXRlKQoreworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisgICAgQS5yb3RhdGUoOTAp
OworICAgIEVYUEVDVF9ST1cxX05FQVIoMCwgLTEsIDAsIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7
CisgICAgRVhQRUNUX1JPVzJfTkVBUigxLCAwLCAwLCAwLCBBLCBFUlJPUl9USFJFU0hPTEQpOwor
ICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDAsIEEpOworICAgIEVYUEVDVF9ST1c0X0VRKDAs
IDAsIDAsIDEsIEEpOworCisgICAgLy8gVmVyaWZ5IHRoYXQgcm90YXRlKCkgcG9zdC1tdWx0aXBs
aWVzIHRoZSBleGlzdGluZyBtYXRyaXguCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNj
YWxlM2QoNiwgNywgOCk7CisgICAgQS5yb3RhdGUoOTApOworICAgIEVYUEVDVF9ST1cxX05FQVIo
MCwgLTYsIDAsIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JPVzJfTkVBUig3
LCAwLCAgMCwgMCwgQSwgRVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XM19FUSgwLCAw
LCA4LCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBBKTsKK30KKworVEVT
VChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeVJvdGF0ZTNkKQoreworICAgIFdl
YlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisKKyAgICAvLyBDaGVjayByb3RhdGlvbiBhYm91dCB6
LWF4aXMKKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEucm90YXRlM2QoMCwgMCwgOTApOwor
ICAgIEVYUEVDVF9ST1cxX05FQVIoMCwgLTEsIDAsIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7Cisg
ICAgRVhQRUNUX1JPVzJfTkVBUigxLCAwLCAwLCAwLCBBLCBFUlJPUl9USFJFU0hPTEQpOworICAg
IEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDAsIEEpOworICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAs
IDAsIDEsIEEpOworCisgICAgLy8gQ2hlY2sgcm90YXRpb24gYWJvdXQgeC1heGlzCisgICAgQS5t
YWtlSWRlbnRpdHkoKTsKKyAgICBBLnJvdGF0ZTNkKDkwLCAwLCAwKTsKKyAgICBFWFBFQ1RfUk9X
MV9FUSgxLCAwLCAwLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XMl9ORUFSKDAsIDAsIC0xLCAwLCBB
LCBFUlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVDVF9ST1czX05FQVIoMCwgMSwgMCwgMCwgQSwg
RVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBBKTsKKwor
ICAgIC8vIENoZWNrIHJvdGF0aW9uIGFib3V0IHktYXhpcy4KKyAgICAvLyBOb3RlIGNhcmVmdWxs
eSwgdGhlIGV4cGVjdGVkIHBhdHRlcm4gaXMgaW52ZXJ0ZWQgY29tcGFyZWQgdG8gcm90YXRpbmcg
YWJvdXQgeCBheGlzIG9yIHogYXhpcy4KKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEucm90
YXRlM2QoMCwgOTAsIDApOworICAgIEVYUEVDVF9ST1cxX05FQVIoMCwgMCwgMSwgMCwgQSwgRVJS
T1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgwLCAxLCAwLCAwLCBBKTsKKyAgICBF
WFBFQ1RfUk9XM19ORUFSKC0xLCAwLCAwLCAwLCBBLCBFUlJPUl9USFJFU0hPTEQpOworICAgIEVY
UEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsIEEpOworCisgICAgLy8gVmVyaWZ5IHRoYXQgcm90YXRl
M2QocngsIHJ5LCByeikgcG9zdC1tdWx0aXBsaWVzIHRoZSBleGlzdGluZyBtYXRyaXguCisgICAg
QS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNjYWxlM2QoNiwgNywgOCk7CisgICAgQS5yb3RhdGUz
ZCgwLCAwLCA5MCk7CisgICAgRVhQRUNUX1JPVzFfTkVBUigwLCAtNiwgMCwgMCwgQSwgRVJST1Jf
VEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XMl9ORUFSKDcsIDAsICAwLCAwLCBBLCBFUlJPUl9U
SFJFU0hPTEQpOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDgsIDAsIEEpOworICAgIEVYUEVD
VF9ST1c0X0VRKDAsIDAsIDAsIDEsIEEpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4VGVzdCwgdmVyaWZ5Um90YXRlM2RPcmRlck9mQ29tcG9zaXRlUm90YXRpb25zKQoreworICAg
IC8vIFJvdGF0ZTNkKGRlZ3JlZXNYLCBkZWdyZWVzWSwgZGVncmVlc1opIGlzIGFjdHVhbGx5IGNv
bXBvc2l0ZSB0cmFuc2Zvcm0gY29uc2l0aW5nIG9mCisgICAgLy8gdGhyZWUgcHJpbWl0aXZlIHJv
dGF0aW9ucy4gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIG9yZGVyaW5nIG9mIHRob3NlIHRo
cmVlCisgICAgLy8gdHJhbnNmb3JtcyBpcyB0aGUgaW50ZW5kZWQgb3JkZXJpbmcuCisgICAgLy8K
KyAgICAvLyBUaGUgY29ycmVjdCBvcmRlcmluZyBmb3IgdGhpcyB0ZXN0IGNhc2Ugc2hvdWxkIGJl
OgorICAgIC8vICAgMS4gcm90YXRlIGJ5IDMwIGRlZ3JlZXMgYWJvdXQgei1heGlzCisgICAgLy8g
ICAyLiByb3RhdGUgYnkgMjAgZGVncmVlcyBhYm91dCB5LWF4aXMKKyAgICAvLyAgIDMuIHJvdGF0
ZSBieSAxMCBkZWdyZWVzIGFib3V0IHgtYXhpcworICAgIC8vCisgICAgLy8gTm90ZTogdGhlcmUg
YXJlIDYgcG9zc2libGUgb3JkZXJpbmdzIG9mIDMgdHJhbnNmb3Jtcy4gRm9yIHRoZSBzcGVjaWZp
YyB0cmFuc2Zvcm1zCisgICAgLy8gdXNlZCBpbiB0aGlzIHRlc3QsIGFsbCA2IGNvbWJpbmF0aW9u
cyBwcm9kdWNlIGEgdW5pcXVlIG1hdHJpeCB0aGF0IGlzIGRpZmZlcmVudAorICAgIC8vIGZyb20g
dGhlIG90aGVyIG9yZGVyaW5ncy4gVGhhdCB3YXksIHRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgZXhh
Y3Qgb3JkZXJpbmcuCisKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOworICAgIEEubWFr
ZUlkZW50aXR5KCk7CisgICAgQS5yb3RhdGUzZCgxMCwgMjAsIDMwKTsKKworICAgIEVYUEVDVF9S
T1cxX05FQVIoMC44MTM3OTc2ODEzNDkzNzM4MDI2Mzk0OTA4LAorICAgICAgICAgICAgICAgICAg
ICAgLTAuNDQwOTY5NjEwNTI5ODgyMzcyMDYzMDcwOCwKKyAgICAgICAgICAgICAgICAgICAgIDAu
Mzc4NTIyMzA2MzY5NzkyMzkzOTc2MzI1NywKKyAgICAgICAgICAgICAgICAgICAgIDAsIEEsIEVS
Uk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JPVzJfTkVBUigwLjQ2OTg0NjMxMDM5Mjk1NDE1
ODQ0MTM2OTgsCisgICAgICAgICAgICAgICAgICAgICAwLjg4MjU2NDExOTI1OTM4NTYwNDM2NTc3
NTIsCisgICAgICAgICAgICAgICAgICAgICAwLjAxODAyODMxMTIzNjI5NzIyMzA5Njg2OTQsCisg
ICAgICAgICAgICAgICAgICAgICAwLCBBLCBFUlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVDVF9S
T1czX05FQVIoLTAuMzQyMDIwMTQzMzI1NjY4NjU3Mzk2OTMxOCwKKyAgICAgICAgICAgICAgICAg
ICAgIDAuMTYzMTc1OTExMTY2NTM0ODIwNTI4ODk1MCwKKyAgICAgICAgICAgICAgICAgICAgIDAu
OTI1NDE2NTc4Mzk4MzIzMzYzOTYzMTI5NCwKKyAgICAgICAgICAgICAgICAgICAgIDAsIEEsIEVS
Uk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7Cit9CisK
K1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlSb3RhdGVBeGlzQW5nbGUz
ZCkKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOworCisgICAgLy8gQ2hlY2sgcm90
YXRpb24gYWJvdXQgei1heGlzCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnJvdGF0ZTNk
KDAsIDAsIDEsIDkwKTsKKyAgICBFWFBFQ1RfUk9XMV9ORUFSKDAsIC0xLCAwLCAwLCBBLCBFUlJP
Ul9USFJFU0hPTEQpOworICAgIEVYUEVDVF9ST1cyX05FQVIoMSwgMCwgMCwgMCwgQSwgRVJST1Jf
VEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XM19FUSgwLCAwLCAxLCAwLCBBKTsKKyAgICBFWFBF
Q1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBBKTsKKworICAgIC8vIENoZWNrIHJvdGF0aW9uIGFib3V0
IHgtYXhpcworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5yb3RhdGUzZCgxLCAwLCAwLCA5
MCk7CisgICAgRVhQRUNUX1JPVzFfRVEoMSwgMCwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzJf
TkVBUigwLCAwLCAtMSwgMCwgQSwgRVJST1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XM19O
RUFSKDAsIDEsIDAsIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JPVzRfRVEo
MCwgMCwgMCwgMSwgQSk7CisKKyAgICAvLyBDaGVjayByb3RhdGlvbiBhYm91dCB5LWF4aXMuCisg
ICAgLy8gTm90ZSBjYXJlZnVsbHksIHRoZSBleHBlY3RlZCBwYXR0ZXJuIGlzIGludmVydGVkIGNv
bXBhcmVkIHRvIHJvdGF0aW5nIGFib3V0IHggYXhpcyBvciB6IGF4aXMuCisgICAgQS5tYWtlSWRl
bnRpdHkoKTsKKyAgICBBLnJvdGF0ZTNkKDAsIDEsIDAsIDkwKTsKKyAgICBFWFBFQ1RfUk9XMV9O
RUFSKDAsIDAsIDEsIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JPVzJfRVEo
MCwgMSwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzNfTkVBUigtMSwgMCwgMCwgMCwgQSwgRVJS
T1JfVEhSRVNIT0xEKTsKKyAgICBFWFBFQ1RfUk9XNF9FUSgwLCAwLCAwLCAxLCBBKTsKKworICAg
IC8vIFZlcmlmeSB0aGF0IHJvdGF0ZTNkKGF4aXMsIGFuZ2xlKSBwb3N0LW11bHRpcGxpZXMgdGhl
IGV4aXN0aW5nIG1hdHJpeC4KKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2NhbGUzZCg2
LCA3LCA4KTsKKyAgICBBLnJvdGF0ZTNkKDAsIDAsIDEsIDkwKTsKKyAgICBFWFBFQ1RfUk9XMV9O
RUFSKDAsIC02LCAwLCAwLCBBLCBFUlJPUl9USFJFU0hPTEQpOworICAgIEVYUEVDVF9ST1cyX05F
QVIoNywgMCwgIDAsIDAsIEEsIEVSUk9SX1RIUkVTSE9MRCk7CisgICAgRVhQRUNUX1JPVzNfRVEo
MCwgMCwgOCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7Cit9CisK
K1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlTa2V3WCkKK3sKKyAgICBX
ZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOworICAgIEEuc2tld1goNDUpOworICAgIEVYUEVDVF9S
T1cxX0VRKDEsIDEsIDAsIDAsIEEpOworICAgIEVYUEVDVF9ST1cyX0VRKDAsIDEsIDAsIDAsIEEp
OworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDAsIEEpOworICAgIEVYUEVDVF9ST1c0X0VR
KDAsIDAsIDAsIDEsIEEpOworCisgICAgLy8gVmVyaWZ5IHRoYXQgc2tld1goKSBwb3N0LW11bHRp
cGxpZXMgdGhlIGV4aXN0aW5nIG1hdHJpeC4KKyAgICAvLyBSb3cgMSwgY29sdW1uIDIsIHdvdWxk
IGluY29ycmVjdGx5IGhhdmUgdmFsdWUgIjciIGlmIHRoZSBtYXRyaXggaXMgcHJlLW11bHRpcGxp
ZWQgaW5zdGVhZCBvZiBwb3N0LW11bHRpcGxpZWQuCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAg
ICBBLnNjYWxlM2QoNiwgNywgOCk7CisgICAgQS5za2V3WCg0NSk7CisgICAgRVhQRUNUX1JPVzFf
RVEoNiwgNiwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEoMCwgNywgMCwgMCwgQSk7Cisg
ICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgOCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzRfRVEoMCwg
MCwgMCwgMSwgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJp
ZnlTa2V3WSkKK3sKKyAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBBOworICAgIEEuc2tld1ko
NDUpOworICAgIEVYUEVDVF9ST1cxX0VRKDEsIDAsIDAsIDAsIEEpOworICAgIEVYUEVDVF9ST1cy
X0VRKDEsIDEsIDAsIDAsIEEpOworICAgIEVYUEVDVF9ST1czX0VRKDAsIDAsIDEsIDAsIEEpOwor
ICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIDAsIDEsIEEpOworCisgICAgLy8gVmVyaWZ5IHRoYXQg
c2tld1koKSBwb3N0LW11bHRpcGxpZXMgdGhlIGV4aXN0aW5nIG1hdHJpeC4KKyAgICAvLyBSb3cg
MiwgY29sdW1uIDEsIHdvdWxkIGluY29ycmVjdGx5IGhhdmUgdmFsdWUgIjYiIGlmIHRoZSBtYXRy
aXggaXMgcHJlLW11bHRpcGxpZWQgaW5zdGVhZCBvZiBwb3N0LW11bHRpcGxpZWQuCisgICAgQS5t
YWtlSWRlbnRpdHkoKTsKKyAgICBBLnNjYWxlM2QoNiwgNywgOCk7CisgICAgQS5za2V3WSg0NSk7
CisgICAgRVhQRUNUX1JPVzFfRVEoNiwgMCwgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzJfRVEo
NywgNywgMCwgMCwgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgOCwgMCwgQSk7CisgICAg
RVhQRUNUX1JPVzRfRVEoMCwgMCwgMCwgMSwgQSk7Cit9CisKK1RFU1QoV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXhUZXN0LCB2ZXJpZnlBcHBseVBlcnNwZWN0aXZlKQoreworICAgIFdlYlRyYW5zZm9y
bWF0aW9uTWF0cml4IEE7CisgICAgQS5hcHBseVBlcnNwZWN0aXZlKDEpOworICAgIEVYUEVDVF9S
T1cxX0VRKDEsIDAsICAwLCAwLCBBKTsKKyAgICBFWFBFQ1RfUk9XMl9FUSgwLCAxLCAgMCwgMCwg
QSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgIDEsIDAsIEEpOworICAgIEVYUEVDVF9ST1c0
X0VRKDAsIDAsIC0xLCAxLCBBKTsKKworICAgIC8vIFZlcmlmeSB0aGF0IGFwcGx5UGVyc3BlY3Rp
dmUoKSBwb3N0LW11bHRpcGxpZXMgdGhlIGV4aXN0aW5nIG1hdHJpeC4KKyAgICBBLm1ha2VJZGVu
dGl0eSgpOworICAgIEEudHJhbnNsYXRlM2QoMiwgMywgNCk7CisgICAgQS5hcHBseVBlcnNwZWN0
aXZlKDEpOworICAgIEVYUEVDVF9ST1cxX0VRKDEsIDAsIC0yLCAyLCBBKTsKKyAgICBFWFBFQ1Rf
Uk9XMl9FUSgwLCAxLCAtMywgMywgQSk7CisgICAgRVhQRUNUX1JPVzNfRVEoMCwgMCwgLTMsIDQs
IEEpOworICAgIEVYUEVDVF9ST1c0X0VRKDAsIDAsIC0xLCAxLCBBKTsKK30KKworVEVTVChXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUhhc1BlcnNwZWN0aXZlKQoreworICAgIFdl
YlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisgICAgQS5hcHBseVBlcnNwZWN0aXZlKDEpOworICAg
IEVYUEVDVF9UUlVFKEEuaGFzUGVyc3BlY3RpdmUoKSk7CisKKyAgICBBLm1ha2VJZGVudGl0eSgp
OworICAgIEEuYXBwbHlQZXJzcGVjdGl2ZSgwKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5oYXNQZXJz
cGVjdGl2ZSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMzQoLTAuMyk7
CisgICAgRVhQRUNUX1RSVUUoQS5oYXNQZXJzcGVjdGl2ZSgpKTsKKworICAgIC8vIEZJWE1FOiBX
ZWJDb3JlIG9ubHkgY2hlY2tlcyBtMzQoKSBmb3IgcGVyc3BlY3RpdmUsIGJ1dCB0aGF0IGlzIHBy
b2JhYmx5CisgICAgLy8gICAgICAgIHdyb25nLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODMwODguIEZvciBub3csIHRoaXMgdGVzdAorICAgIC8vICAgICAgICBjYXNl
IGV4cGVjdHMgdGhlIGV4YWN0IGJlaGF2aW9yIGFzIGltcGxlbWVudGVkIGJ5IFdlYkNvcmUsIGJ1
dCB0aGlzIHNob3VsZAorICAgIC8vICAgICAgICBwcm9iYWJseSBiZSBjaGFuZ2VkIHNvIHRoYXQg
aWYgdGhlIGVudGlyZSBib3R0b20gcm93IGlzIG5vdCBleGFjdGx5CisgICAgLy8gICAgICAgICgw
LCAwLCAwLCAxKSwgdGhlbiBoYXNQZXJzcGVjdGl2ZSBzaG91bGQgcmV0dXJuIHRydWUuCisKKyAg
ICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2V0TTE0KC0xKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
QS5oYXNQZXJzcGVjdGl2ZSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRN
MjQoLTEpOworICAgIEVYUEVDVF9GQUxTRShBLmhhc1BlcnNwZWN0aXZlKCkpOworCisgICAgQS5t
YWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE00NCgwLjUpOworICAgIEVYUEVDVF9GQUxTRShBLmhh
c1BlcnNwZWN0aXZlKCkpOworfQorCitURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwg
dmVyaWZ5SXNJbnZlcnRpYmxlKQoreworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisK
KyAgICAvLyBUcmFuc2xhdGlvbnMsIHJvdGF0aW9ucywgc2NhbGVzLCBza2V3cyBhbmQgYXJiaXRy
YXJ5IGNvbWJpbmF0aW9ucyBvZiB0aGVtIGFyZSBpbnZlcnRpYmxlLgorICAgIEEubWFrZUlkZW50
aXR5KCk7CisgICAgRVhQRUNUX1RSVUUoQS5pc0ludmVydGlibGUoKSk7CisKKyAgICBBLm1ha2VJ
ZGVudGl0eSgpOworICAgIEEudHJhbnNsYXRlM2QoMiwgMywgNCk7CisgICAgRVhQRUNUX1RSVUUo
QS5pc0ludmVydGlibGUoKSk7CisKKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2NhbGUz
ZCg2LCA3LCA4KTsKKyAgICBFWFBFQ1RfVFJVRShBLmlzSW52ZXJ0aWJsZSgpKTsKKworICAgIEEu
bWFrZUlkZW50aXR5KCk7CisgICAgQS5yb3RhdGUzZCgxMCwgMjAsIDMwKTsKKyAgICBFWFBFQ1Rf
VFJVRShBLmlzSW52ZXJ0aWJsZSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5z
a2V3WCg0NSk7CisgICAgRVhQRUNUX1RSVUUoQS5pc0ludmVydGlibGUoKSk7CisKKyAgICAvLyBB
IHBlcnNwZWN0aXZlIG1hdHJpeCAocHJvamVjdGlvbiBwbGFuZSBhdCB6PTApIGlzIGludmVydGli
bGUuIFRoZSBpbnR1aXRpdmUKKyAgICAvLyBleHBsYW5hdGlvbiBpcyB0aGF0IHBlcnNwZWN0aXZl
IGlzIGVxaXZhbGVudCB0byBhIHNrZXcgb2YgdGhlIHctYXhpczsgc2tld3MgYXJlCisgICAgLy8g
aW52ZXJ0aWJsZS4KKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuYXBwbHlQZXJzcGVjdGl2
ZSgxKTsKKyAgICBFWFBFQ1RfVFJVRShBLmlzSW52ZXJ0aWJsZSgpKTsKKworICAgIC8vIEEgInB1
cmUiIHBlcnNwZWN0aXZlIG1hdHJpeCBkZXJpdmVkIGJ5IHNpbWlsYXIgdHJpYW5nbGVzLCB3aXRo
IG00NCgpIHNldCB0byB6ZXJvCisgICAgLy8gKGkuZS4gY2FtZXJhIHBvc2l0aW9uZWQgYXQgdGhl
IG9yaWdpbiksIGlzIG5vdCBpbnZlcnRpYmxlLgorICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAg
QS5hcHBseVBlcnNwZWN0aXZlKDEpOworICAgIEEuc2V0TTQ0KDApOworICAgIEVYUEVDVF9GQUxT
RShBLmlzSW52ZXJ0aWJsZSgpKTsKKworICAgIC8vIEFkZGluZyBtb3JlIHRvIGEgbm9uLWludmVy
dGlibGUgbWF0cml4IHdpbGwgbm90IG1ha2UgaXQgaW52ZXJ0aWJsZSBpbiB0aGUgZ2VuZXJhbCBj
YXNlLgorICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5hcHBseVBlcnNwZWN0aXZlKDEpOwor
ICAgIEEuc2V0TTQ0KDApOworICAgIEEuc2NhbGUzZCg2LCA3LCA4KTsKKyAgICBBLnJvdGF0ZTNk
KDEwLCAyMCwgMzApOworICAgIEEudHJhbnNsYXRlM2QoNiwgNywgOCk7CisgICAgRVhQRUNUX0ZB
TFNFKEEuaXNJbnZlcnRpYmxlKCkpOworCisgICAgLy8gQSBkZWdlbmVyYXRlIG1hdHJpeCBvZiBh
bGwgemVyb3MgaXMgbm90IGludmVydGlibGUuCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBB
LnNldE0xMSgwKTsKKyAgICBBLnNldE0yMigwKTsKKyAgICBBLnNldE0zMygwKTsKKyAgICBBLnNl
dE00NCgwKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0ludmVydGlibGUoKSk7Cit9CisKK1RFU1Qo
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlJc0lkZW50aXR5KQoreworICAgIFdl
YlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisKKyAgICBpbml0aWFsaXplVGVzdE1hdHJpeChBKTsK
KyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5KCkpOworCisgICAgQS5tYWtlSWRlbnRpdHko
KTsKKyAgICBFWFBFQ1RfVFJVRShBLmlzSWRlbnRpdHkoKSk7CisKKyAgICAvLyBNb2RpZnlpbmcg
YW55IG9uZSBpbmRpdmlkdWFsIGVsZW1lbnQgc2hvdWxkIGNhdXNlIHRoZSBtYXRyaXggdG8gbm8g
bG9uZ2VyIGJlIGlkZW50aXR5LgorICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMTEo
Mik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eSgpKTsKKworICAgIEEubWFrZUlkZW50
aXR5KCk7CisgICAgQS5zZXRNMTIoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eSgp
KTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMTMoMik7CisgICAgRVhQRUNU
X0ZBTFNFKEEuaXNJZGVudGl0eSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5z
ZXRNMTQoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eSgpKTsKKworICAgIEEubWFr
ZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMjEoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVu
dGl0eSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMjIoMik7CisgICAg
RVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7Cisg
ICAgQS5zZXRNMjMoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eSgpKTsKKworICAg
IEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMjQoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEu
aXNJZGVudGl0eSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMzEoMik7
CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5
KCk7CisgICAgQS5zZXRNMzIoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eSgpKTsK
KworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMzMoMik7CisgICAgRVhQRUNUX0ZB
TFNFKEEuaXNJZGVudGl0eSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRN
MzQoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eSgpKTsKKworICAgIEEubWFrZUlk
ZW50aXR5KCk7CisgICAgQS5zZXRNNDEoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0
eSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNNDIoMik7CisgICAgRVhQ
RUNUX0ZBTFNFKEEuaXNJZGVudGl0eSgpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAg
QS5zZXRNNDMoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eSgpKTsKKworICAgIEEu
bWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNNDQoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJ
ZGVudGl0eSgpKTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlm
eUlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKQoreworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4
IEE7CisKKyAgICBpbml0aWFsaXplVGVzdE1hdHJpeChBKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5p
c0lkZW50aXR5T3JUcmFuc2xhdGlvbigpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAg
RVhQRUNUX1RSVUUoQS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbigpKTsKKworICAgIC8vIE1vZGlm
eWluZyBhbnkgbm9uLXRyYW5zbGF0aW9uIGNvbXBvbmVudHMgc2hvdWxkIGNhdXNlIGlzSWRlbnRp
dHlPclRyYW5zbGF0aW9uKCkgdG8KKyAgICAvLyByZXR1cm4gZmFsc2UuIE5PVEU6IG00MSgpLCBt
NDIoKSwgYW5kIG00MygpIGFyZSB0aGUgdHJhbnNsYXRpb24gY29tcG9uZW50cywgc28KKyAgICAv
LyBtb2RpZnlpbmcgdGhlbSBzaG91bGQgc3RpbGwgcmV0dXJuIHRydWUgZm9yIGlzSWRlbnRpdHlP
clRyYW5zbGF0aW9uKCkuCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0xMSgyKTsK
KyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbigpKTsKKworICAgIEEu
bWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMTIoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJ
ZGVudGl0eU9yVHJhbnNsYXRpb24oKSk7CisKKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEu
c2V0TTEzKDIpOworICAgIEVYUEVDVF9GQUxTRShBLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkp
OworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0xNCgyKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoQS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbigpKTsKKworICAgIEEubWFrZUlkZW50aXR5
KCk7CisgICAgQS5zZXRNMjEoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eU9yVHJh
bnNsYXRpb24oKSk7CisKKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2V0TTIyKDIpOwor
ICAgIEVYUEVDVF9GQUxTRShBLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpOworCisgICAgQS5t
YWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE0yMygyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lk
ZW50aXR5T3JUcmFuc2xhdGlvbigpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5z
ZXRNMjQoMik7CisgICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSk7
CisKKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAgIEEuc2V0TTMxKDIpOworICAgIEVYUEVDVF9G
QUxTRShBLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpOworCisgICAgQS5tYWtlSWRlbnRpdHko
KTsKKyAgICBBLnNldE0zMigyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5T3JUcmFu
c2xhdGlvbigpKTsKKworICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNMzMoMik7Cisg
ICAgRVhQRUNUX0ZBTFNFKEEuaXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSk7CisKKyAgICBBLm1h
a2VJZGVudGl0eSgpOworICAgIEEuc2V0TTM0KDIpOworICAgIEVYUEVDVF9GQUxTRShBLmlzSWRl
bnRpdHlPclRyYW5zbGF0aW9uKCkpOworCisgICAgLy8gTm90ZSBjYXJlZnVsbHkgLSBleHBlY3Rp
bmcgdHJ1ZSBoZXJlLgorICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS5zZXRNNDEoMik7Cisg
ICAgRVhQRUNUX1RSVUUoQS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbigpKTsKKworICAgIC8vIE5v
dGUgY2FyZWZ1bGx5IC0gZXhwZWN0aW5nIHRydWUgaGVyZS4KKyAgICBBLm1ha2VJZGVudGl0eSgp
OworICAgIEEuc2V0TTQyKDIpOworICAgIEVYUEVDVF9UUlVFKEEuaXNJZGVudGl0eU9yVHJhbnNs
YXRpb24oKSk7CisKKyAgICAvLyBOb3RlIGNhcmVmdWxseSAtIGV4cGVjdGluZyB0cnVlIGhlcmUu
CisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnNldE00MygyKTsKKyAgICBFWFBFQ1RfVFJV
RShBLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsK
KyAgICBBLnNldE00NCgyKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0lkZW50aXR5T3JUcmFuc2xh
dGlvbigpKTsKK30KKworVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIGlzSW50ZWdl
clRyYW5zbGF0aW9uKQoreworICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IEE7CisKKyAgICBB
Lm1ha2VJZGVudGl0eSgpOworICAgIEEudHJhbnNsYXRlKDIsIDMpOworICAgIEVYUEVDVF9UUlVF
KEEuaXNJbnRlZ2VyVHJhbnNsYXRpb24oKSk7CisKKyAgICBBLm1ha2VJZGVudGl0eSgpOworICAg
IEEudHJhbnNsYXRlKDIuMCwgMy4wKTsKKyAgICBFWFBFQ1RfVFJVRShBLmlzSW50ZWdlclRyYW5z
bGF0aW9uKCkpOworCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBBLnRyYW5zbGF0ZSgyLjAw
MDAxLCAzKTsKKyAgICBFWFBFQ1RfRkFMU0UoQS5pc0ludGVnZXJUcmFuc2xhdGlvbigpKTsKKwor
ICAgIEEubWFrZUlkZW50aXR5KCk7CisgICAgQS50cmFuc2xhdGUoMiwgMi45OTk5OSk7CisgICAg
RVhQRUNUX0ZBTFNFKEEuaXNJbnRlZ2VyVHJhbnNsYXRpb24oKSk7CisKKyAgICAvLyBTdGFja2lu
ZyBtYW55IGludGVnZXIgdHJhbnNsYXRpb25zIHNob3VsZCBpZGVhbGx5IG5vdCBhY2N1bXVsYXRl
IGFueSBwcmVjaXNpb24gZXJyb3IuCisgICAgQS5tYWtlSWRlbnRpdHkoKTsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgICAgICBBLnRyYW5zbGF0ZSgyLCAzKTsKKyAg
ICBFWFBFQ1RfVFJVRShBLmlzSW50ZWdlclRyYW5zbGF0aW9uKCkpOworfQorCit9IC8vIG5hbWVz
cGFjZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>