<?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>46947</bug_id>
          
          <creation_ts>2010-09-30 17:41:21 -0700</creation_ts>
          <short_desc>texImage2D fails on 16-bit-per-channel images</short_desc>
          <delta_ts>2010-10-01 17:51:38 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>47027</blocked>
    
    <blocked>47034</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>287964</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-09-30 17:41:21 -0700</bug_when>
    <thetext>Loading a 16-bit-per-channel will fail with an INVALID_VALUE error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287966</commentid>
    <comment_count>1</comment_count>
      <attachid>69404</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-09-30 17:46:14 -0700</bug_when>
    <thetext>Created attachment 69404
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287970</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-09-30 17:59:38 -0700</bug_when>
    <thetext>By the way, the 16-bit images are loading fine in Chromium Win, so adding this test entry should pass on all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287980</commentid>
    <comment_count>3</comment_count>
      <attachid>69409</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-09-30 18:17:51 -0700</bug_when>
    <thetext>Created attachment 69409
revised patch

Forgot about also updating the expected.txt file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288529</commentid>
    <comment_count>4</comment_count>
      <attachid>69409</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-01 15:43:41 -0700</bug_when>
    <thetext>Comment on attachment 69409
revised patch

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

Looks OK. I think we should try to figure out a different structure (like a table) for the large switch statements in GraphicsContext3D::getImageData because they&apos;re really getting out of hand. Please consider filing a follow-up bug to rethink the structure there. One minor comment-related comment.

&gt; WebCore/platform/graphics/cg/GraphicsContext3DCG.cpp:131
&gt;          // This path is only accessible for MacOS earlier than 10.6.4.

Is this comment still accurate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288551</commentid>
    <comment_count>5</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-01 16:05:33 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 69409 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69409&amp;action=review
&gt; 
&gt; Looks OK. I think we should try to figure out a different structure (like a table) for the large switch statements in GraphicsContext3D::getImageData because they&apos;re really getting out of hand. Please consider filing a follow-up bug to rethink the structure there. One minor comment-related comment.
&gt; 
&gt; &gt; WebCore/platform/graphics/cg/GraphicsContext3DCG.cpp:131
&gt; &gt;          // This path is only accessible for MacOS earlier than 10.6.4.
&gt; 
&gt; Is this comment still accurate?

Yes, it still is.  Alpha first formats are not encountered so far on 10.6.4.

I&apos;ll leave the comments in.  If you think it&apos;s un-necessary to keep them, we can remove them in the follow-up bug.

I added these comments in case in the future such path got removed when a developer only deals with newer CG libs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288553</commentid>
    <comment_count>6</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-01 16:08:47 -0700</bug_when>
    <thetext>Committed r68940: &lt;http://trac.webkit.org/changeset/68940&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69404</attachid>
            <date>2010-09-30 17:46:14 -0700</date>
            <delta_ts>2010-09-30 18:17:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bit16.patch</filename>
            <type>text/plain</type>
            <size>23605</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODg1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDktMzAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXhJbWFn
ZTJEIGZhaWxzIG9uIDE2LWJpdC1wZXItY2hhbm5lbCBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2OTQ3CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHA6IEhhbmRsaW5nIDE2LWJpdC1wZXItY2hh
bm5lbCBzb3VyY2UgZm9ybWF0cy4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRDb2xvcjE2VG84
KToKKyAgICAgICAgKFdlYkNvcmU6OmRvUGFja2luZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisKIDIwMTAtMDktMzAgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWlu
aWcuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNELmNwcAkocmV2aXNpb24gNjg4MzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsMTEgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgdWludDhfdCBjb252ZXJ0Q29sb3IxNlRvOCh1
aW50MTZfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPj4gODsKK30KKwogYm9vbCBHcmFw
aGljc0NvbnRleHQzRDo6Y29tcHV0ZUZvcm1hdEFuZFR5cGVQYXJhbWV0ZXJzKHVuc2lnbmVkIGlu
dCBmb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyogY29tcG9uZW50c1BlclBp
eGVsLApAQCAtMjQ3LDYgKzI1MiwxNCBAQCB2b2lkIHVucGFja1JHQkE4VG9SR0JBOChjb25zdCB1
aW50OF90KiBzCiAgICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbM107CiB9CiAKK3ZvaWQgdW5w
YWNrUkdCQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbikKK3sKKyAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsw
XSk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0pOwor
ICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdKTsKKyAgICBk
ZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVszXSk7Cit9CisKIHZvaWQg
dW5wYWNrUkdCOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbikKIHsKICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTI1NSw2ICsyNjgs
MTQgQEAgdm9pZCB1bnBhY2tSR0I4VG9SR0JBOChjb25zdCB1aW50OF90KiBzbwogICAgIGRlc3Rp
bmF0aW9uWzNdID0gMHhGRjsKIH0KIAordm9pZCB1bnBhY2tSR0IxNlRvUkdCQTgoY29uc3QgdWlu
dDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit7CisgICAgZGVzdGluYXRpb25b
MF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzFdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVsyXSk7CisgICAgZGVzdGluYXRpb25bM10gPSAweEZGOworfQor
CiB2b2lkIHVucGFja0FSR0I4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uKQogewogICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzFdOwpAQCAtMjYz
LDYgKzI4NCwxNCBAQCB2b2lkIHVucGFja0FSR0I4VG9SR0JBOChjb25zdCB1aW50OF90KiBzCiAg
ICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbMF07CiB9CiAKK3ZvaWQgdW5wYWNrQVJHQjE2VG9S
R0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3sKKyAg
ICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7CisgICAgZGVz
dGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMl0pOworICAgIGRlc3RpbmF0
aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzNdKTsKKyAgICBkZXN0aW5hdGlvblsz
XSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Cit9CisKIHZvaWQgdW5wYWNrQkdSQThU
b1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCiB7CiAg
ICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMl07CkBAIC0yNzEsNiArMzAwLDE0IEBAIHZvaWQg
dW5wYWNrQkdSQThUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHMKICAgICBkZXN0aW5hdGlvblszXSA9
IHNvdXJjZVszXTsKIH0KIAordm9pZCB1bnBhY2tCR1JBMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90
KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQoreworICAgIGRlc3RpbmF0aW9uWzBdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzJdKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29s
b3IxNlRvOChzb3VyY2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZU
bzgoc291cmNlWzNdKTsKK30KKwogdm9pZCB1bnBhY2tSR0JBNTU1MVRvUkdCQTgoY29uc3QgdWlu
dDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCiB7CiAgICAgdWludDE2X3QgcGFj
a2VkVmFsdWUgPSBzb3VyY2VbMF07CkBAIC0zMTYsNiArMzUzLDE0IEBAIHZvaWQgdW5wYWNrUjhU
b1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXIKICAgICBkZXN0aW5hdGlvblszXSA9IDB4RkY7CiB9
CiAKK3ZvaWQgdW5wYWNrUjE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbikKK3sKKyAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVswXSk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBd
KTsKKyAgICBkZXN0aW5hdGlvblszXSA9IDB4RkY7Cit9CisKIHZvaWQgdW5wYWNrUkE4VG9SR0JB
OChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQogewogICAgIGRl
c3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwpAQCAtMzI0LDYgKzM2OSwxNCBAQCB2b2lkIHVucGFj
a1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291CiAgICAgZGVzdGluYXRpb25bM10gPSBzb3Vy
Y2VbMV07CiB9CiAKK3ZvaWQgdW5wYWNrUkExNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24pCit7CisgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0
Q29sb3IxNlRvOChzb3VyY2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9y
MTZUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVswXSk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMV0pOworfQorCiB2b2lkIHVucGFja0FSOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbikKIHsKICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsx
XTsKQEAgLTMzMiw2ICszODUsMTQgQEAgdm9pZCB1bnBhY2tBUjhUb1JHQkE4KGNvbnN0IHVpbnQ4
X3QqIHNvdQogICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzBdOwogfQogCit2b2lkIHVucGFj
a0FSMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
KQoreworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsK
KyAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7CisgICAg
ZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0pOworICAgIGRlc3Rp
bmF0aW9uWzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKK30KKwogdm9pZCB1bnBh
Y2tBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikK
IHsKICAgICBkZXN0aW5hdGlvblswXSA9IDB4MDsKQEAgLTM0MCw2ICs0MDEsMTQgQEAgdm9pZCB1
bnBhY2tBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cgogICAgIGRlc3RpbmF0aW9uWzNdID0g
c291cmNlWzBdOwogfQogCit2b2lkIHVucGFja0ExNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit7CisgICAgZGVzdGluYXRpb25bMF0gPSAweDA7
CisgICAgZGVzdGluYXRpb25bMV0gPSAweDA7CisgICAgZGVzdGluYXRpb25bMl0gPSAweDA7Cisg
ICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOworfQorCiAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIC8vIFBpeGVsIHBhY2tpbmcgcm91dGluZXMuCiAvLwpAQCAtNjQ0LDI0
ICs3MTMsNDggQEAgc3RhdGljIHZvaWQgZG9QYWNraW5nKGNvbnN0IHZvaWQqIHNvdXJjZQogICAg
ICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjprU291cmNlRm9ybWF0UkdCQTE2OiB7CisgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgY29tcHV0ZUluY3Jl
bWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwg
JnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAgICAg
IGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkExNlRv
UkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwor
ICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJj
ZUZvcm1hdFJHQjg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1l
dGVyczx1aW50OF90Pih3aWR0aCwgMywgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tp
bmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tSR0I4VG9SR0JBOCwgcGFja2lu
Z0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhl
aWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3Rp
bmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0IxNjog
eworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxl
bWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+
KHdpZHRoLCAzLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8
dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0IxNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0
aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRh
LCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBicmVhazsKKyAgICB9CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSR0I4OiB7CiAgICAgICAg
IHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJv
dzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDQs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VF
bGVtZW50c1BlclJvdyk7CiAgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBE
ZXN0VHlwZSwgdW5wYWNrQVJHQjhUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlv
bkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSR0IxNjogeworICAgICAgICB1bnNpZ25lZCBp
bnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAg
IGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJS
b3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1
bnBhY2tBUkdCMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2
X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwg
c291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50
c1BlclBpeGVsKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OmtTb3VyY2VGb3JtYXRCR1JBODogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJ
bmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwogICAg
ICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0JHUkE4
VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VE
YXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVu
dHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3Vy
Y2VGb3JtYXRCR1JBMTY6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFy
YW1ldGVyczx1aW50OF90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBh
Y2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQkdSQTE2VG9SR0JBOCwg
cGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdp
ZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93
LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0
UkdCQTU1NTE6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
IHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVy
czx1aW50MTZfdD4od2lkdGgsIDIsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CkBAIC02ODYsMjQgKzc3OSw0OCBA
QCBzdGF0aWMgdm9pZCBkb1BhY2tpbmcoY29uc3Qgdm9pZCogc291cmNlCiAgICAgICAgIGRvVW5w
YWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrUjhUb1JHQkE4LCBwYWNr
aW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwg
aGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVz
dGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVh
azsKICAgICB9CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFIxNjog
eworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxl
bWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+
KHdpZHRoLCAxLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8
dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGlj
X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwg
ZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSQTg6IHsKICAgICAgICAgdW5z
aWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93Owog
ICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMiwgc291
cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1l
bnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RU
eXBlLCB1bnBhY2tSQThUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1l
bnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6a1NvdXJjZUZvcm1hdFJBMTY6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICBjb21wdXRl
SW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAg
ICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkEx
NlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJj
ZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwp
OworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1Nv
dXJjZUZvcm1hdEFSODogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJh
bWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwogICAgICAgICBkb1VucGFj
a2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0FSOFRvUkdCQTgsIHBhY2tp
bmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0
aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QVIxNjog
eworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxl
bWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+
KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8
dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tBUjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRp
Y19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEs
IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QTg6IHsKICAgICAgICAgdW5z
aWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93Owog
ICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMSwgc291
cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1l
bnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RU
eXBlLCB1bnBhY2tBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50
OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
IHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVu
dHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjprU291cmNlRm9ybWF0QTE2OiB7CisgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgY29tcHV0ZUlu
Y3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDEsIHNvdXJjZVVucGFja0FsaWdubWVu
dCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAg
ICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0ExNlRv
UkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwor
ICAgICAgICBicmVhazsKKyAgICB9CiAgICAgfQogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiA2ODgzMSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5
KQpAQCAtNTM1LDE2ICs1MzUsMjQgQEAgcHVibGljOgogICAgIC8vIGJ5IG5vbi1tZW1iZXIgZnVu
Y3Rpb25zLgogICAgIGVudW0gU291cmNlRGF0YUZvcm1hdCB7CiAgICAgICAgIGtTb3VyY2VGb3Jt
YXRSR0JBOCwKKyAgICAgICAga1NvdXJjZUZvcm1hdFJHQkExNiwKICAgICAgICAga1NvdXJjZUZv
cm1hdFJHQjgsCisgICAgICAgIGtTb3VyY2VGb3JtYXRSR0IxNiwKICAgICAgICAga1NvdXJjZUZv
cm1hdEJHUkE4LAorICAgICAgICBrU291cmNlRm9ybWF0QkdSQTE2LAogICAgICAgICBrU291cmNl
Rm9ybWF0QVJHQjgsCisgICAgICAgIGtTb3VyY2VGb3JtYXRBUkdCMTYsCiAgICAgICAgIGtTb3Vy
Y2VGb3JtYXRSR0JBNTU1MSwKICAgICAgICAga1NvdXJjZUZvcm1hdFJHQkE0NDQ0LAogICAgICAg
ICBrU291cmNlRm9ybWF0UkdCNTY1LAogICAgICAgICBrU291cmNlRm9ybWF0UjgsCisgICAgICAg
IGtTb3VyY2VGb3JtYXRSMTYsCiAgICAgICAgIGtTb3VyY2VGb3JtYXRSQTgsCisgICAgICAgIGtT
b3VyY2VGb3JtYXRSQTE2LAogICAgICAgICBrU291cmNlRm9ybWF0QVI4LAotICAgICAgICBrU291
cmNlRm9ybWF0QTgKKyAgICAgICAga1NvdXJjZUZvcm1hdEFSMTYsCisgICAgICAgIGtTb3VyY2VG
b3JtYXRBOCwKKyAgICAgICAga1NvdXJjZUZvcm1hdEExNgogICAgIH07CiAKICAgICAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0M0RDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHQzRENHLmNwcAkocmV2aXNpb24gNjg4MzEpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NCw5ICs2NCwxNSBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1h
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBzaXplX3Qgd2lkdGggPSBDR0ltYWdlR2V0V2lk
dGgoY2dJbWFnZSk7CiAgICAgc2l6ZV90IGhlaWdodCA9IENHSW1hZ2VHZXRIZWlnaHQoY2dJbWFn
ZSk7Ci0gICAgaWYgKCF3aWR0aCB8fCAhaGVpZ2h0IHx8IENHSW1hZ2VHZXRCaXRzUGVyQ29tcG9u
ZW50KGNnSW1hZ2UpICE9IDgpCisgICAgaWYgKCF3aWR0aCB8fCAhaGVpZ2h0KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgc2l6ZV90IGNvbXBvbmVudHNQZXJQaXhlbCA9IENHSW1hZ2VHZXRC
aXRzUGVyUGl4ZWwoY2dJbWFnZSkgLyA4OworICAgIHNpemVfdCBiaXRzUGVyQ29tcG9uZW50ID0g
Q0dJbWFnZUdldEJpdHNQZXJDb21wb25lbnQoY2dJbWFnZSk7CisgICAgc2l6ZV90IGJpdHNQZXJQ
aXhlbCA9IENHSW1hZ2VHZXRCaXRzUGVyUGl4ZWwoY2dJbWFnZSk7CisgICAgaWYgKGJpdHNQZXJD
b21wb25lbnQgIT0gOCAmJiBiaXRzUGVyQ29tcG9uZW50ICE9IDE2KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKGJpdHNQZXJQaXhlbCAlIGJpdHNQZXJDb21wb25lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBzaXplX3QgY29tcG9uZW50c1BlclBpeGVsID0gYml0c1BlclBp
eGVsIC8gYml0c1BlckNvbXBvbmVudDsKICAgICBTb3VyY2VEYXRhRm9ybWF0IHNyY0RhdGFGb3Jt
YXQgPSBrU291cmNlRm9ybWF0UkdCQTg7CiAgICAgQWxwaGFPcCBuZWVkZWRBbHBoYU9wID0ga0Fs
cGhhRG9Ob3RoaW5nOwogICAgIHN3aXRjaCAoQ0dJbWFnZUdldEFscGhhSW5mbyhjZ0ltYWdlKSkg
ewpAQCAtNzksMTAgKzg1LDE2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0
YShJbWEKICAgICAgICAgICAgIG5lZWRlZEFscGhhT3AgPSBrQWxwaGFEb1VubXVsdGlwbHk7CiAg
ICAgICAgIHN3aXRjaCAoY29tcG9uZW50c1BlclBpeGVsKSB7CiAgICAgICAgIGNhc2UgMjoKLSAg
ICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QVI4OworICAgICAgICAgICAg
aWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0
ID0ga1NvdXJjZUZvcm1hdEFSODsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBz
cmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSMTY7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSA0OgotICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRB
UkdCODsKKyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCisgICAgICAgICAg
ICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUkdCODsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSR0IxNjsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtOTQsMTMgKzEwNiwyMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJ
bWFnZURhdGEoSW1hCiAgICAgICAgICAgICBuZWVkZWRBbHBoYU9wID0ga0FscGhhRG9QcmVtdWx0
aXBseTsKICAgICAgICAgc3dpdGNoIChjb21wb25lbnRzUGVyUGl4ZWwpIHsKICAgICAgICAgY2Fz
ZSAxOgotICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBODsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICBzcmNEYXRhRm9ybWF0
ID0ga1NvdXJjZUZvcm1hdEFSODsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDQ6
Ci0gICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSR0I4OworICAgICAg
ICAgICAgaWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKKyAgICAgICAgICAgICAgICBzcmNEYXRh
Rm9ybWF0ID0ga1NvdXJjZUZvcm1hdEE4OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QTE2OworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgp
CisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUjg7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3Jt
YXRBUjE2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAg
IGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1h
dCA9IGtTb3VyY2VGb3JtYXRBUkdCODsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSR0IxNjsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTEwLDEw
ICsxMzEsMTYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYQogICAg
ICAgICAvLyBUaGlzIHBhdGggaXMgb25seSBhY2Nlc3NpYmxlIGZvciBNYWNPUyBlYXJsaWVyIHRo
YW4gMTAuNi40LgogICAgICAgICBzd2l0Y2ggKGNvbXBvbmVudHNQZXJQaXhlbCkgewogICAgICAg
ICBjYXNlIDI6Ci0gICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSODsK
KyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCisgICAgICAgICAgICAgICAg
c3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUjg7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUjE2OwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgNDoKLSAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBr
U291cmNlRm9ybWF0QVJHQjg7CisgICAgICAgICAgICBpZiAoYml0c1BlckNvbXBvbmVudCA9PSA4
KQorICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QVJHQjg7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VG
b3JtYXRBUkdCMTY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEyNywxMCArMTU0LDE2IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICAgICAgICAgIG5lZWRlZEFscGhhT3AgPSBr
QWxwaGFEb1VubXVsdGlwbHk7CiAgICAgICAgIHN3aXRjaCAoY29tcG9uZW50c1BlclBpeGVsKSB7
CiAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9y
bWF0UkE4OworICAgICAgICAgICAgaWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKKyAgICAgICAg
ICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJBODsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJBMTY7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSA0OgotICAgICAgICAgICAgc3JjRGF0YUZv
cm1hdCA9IGtTb3VyY2VGb3JtYXRSR0JBODsKKyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9u
ZW50ID09IDgpCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRS
R0JBODsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0g
a1NvdXJjZUZvcm1hdFJHQkExNjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTQxLDEzICsxNzQsMjIgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYQogICAgICAgICAgICAgbmVlZGVkQWxw
aGFPcCA9IGtBbHBoYURvUHJlbXVsdGlwbHk7CiAgICAgICAgIHN3aXRjaCAoY29tcG9uZW50c1Bl
clBpeGVsKSB7CiAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBr
U291cmNlRm9ybWF0QTg7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAyOgotICAg
ICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSQTg7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSA0OgotICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3Vy
Y2VGb3JtYXRSR0JBODsKKyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCisg
ICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBODsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEEx
NjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAo
Yml0c1BlckNvbXBvbmVudCA9PSA4KQorICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBr
U291cmNlRm9ybWF0UkE4OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNyY0Rh
dGFGb3JtYXQgPSBrU291cmNlRm9ybWF0UkExNjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICBpZiAoYml0c1BlckNvbXBvbmVudCA9PSA4KQorICAgICAg
ICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0UkdCQTg7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0JB
MTY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTE1NiwxMCArMTk4LDE2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6
OmdldEltYWdlRGF0YShJbWEKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFOb25lU2tpcExhc3Q6CiAg
ICAgICAgIHN3aXRjaCAoY29tcG9uZW50c1BlclBpeGVsKSB7CiAgICAgICAgIGNhc2UgMjoKLSAg
ICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0UkE4OworICAgICAgICAgICAg
aWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0
ID0ga1NvdXJjZUZvcm1hdFJBODsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBz
cmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJBMTY7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSA0OgotICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRS
R0JBODsKKyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCisgICAgICAgICAg
ICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0JBODsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJHQkExNjsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTY4LDEwICsyMTYsMTYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0
SW1hZ2VEYXRhKEltYQogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYU5vbmU6CiAgICAgICAgIHN3aXRj
aCAoY29tcG9uZW50c1BlclBpeGVsKSB7CiAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIHNy
Y0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0Ujg7CisgICAgICAgICAgICBpZiAoYml0c1BlckNv
bXBvbmVudCA9PSA4KQorICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9y
bWF0Ujg7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9
IGtTb3VyY2VGb3JtYXRSMTY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAzOgot
ICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0I4OworICAgICAgICAg
ICAgaWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9y
bWF0ID0ga1NvdXJjZUZvcm1hdFJHQjg7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0IxNjsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTg4LDcg
KzI0Miw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICBv
dXRwdXRWZWN0b3IucmVzaXplKHdpZHRoICogaGVpZ2h0ICogNCk7CiAgICAgdW5zaWduZWQgaW50
IHNyY1VucGFja0FsaWdubWVudCA9IDA7CiAgICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gQ0dJbWFn
ZUdldEJ5dGVzUGVyUm93KGNnSW1hZ2UpOwotICAgIHVuc2lnbmVkIGludCBwYWRkaW5nID0gYnl0
ZXNQZXJSb3cgLSBjb21wb25lbnRzUGVyUGl4ZWwgKiB3aWR0aDsKKyAgICB1bnNpZ25lZCBpbnQg
cGFkZGluZyA9IGJ5dGVzUGVyUm93IC0gYml0c1BlclBpeGVsIC8gOCAqIHdpZHRoOwogICAgIGlm
IChwYWRkaW5nKSB7CiAgICAgICAgIHNyY1VucGFja0FsaWdubWVudCA9IHBhZGRpbmcgKyAxOwog
ICAgICAgICB3aGlsZSAoYnl0ZXNQZXJSb3cgJSBzcmNVbnBhY2tBbGlnbm1lbnQpCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODg1NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA5LTMwICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdGV4
SW1hZ2UyRCBmYWlscyBvbiAxNi1iaXQtcGVyLWNoYW5uZWwgaW1hZ2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0NworCisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvZ2wtdGV4aW1hZ2UuaHRtbDogQWRkIGEgdGVzdCBjYXNlIGZvciBsb2Fk
aW5nIDE2LWJpdC1wZXItY2hhbm5lbCBpbWFnZXMgYXMgdGV4dHVyZXMuCisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL2dyZWVuLTJ4Mi0xNmJpdC5wbmc6IEFkZGVkLgorCiAy
MDEwLTA5LTMwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEpvbiBIb25leWN1dHQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9nbC10ZXhpbWFnZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2dsLXRleGltYWdlLmh0bWwJKHJldmlzaW9uIDY4ODMxKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtdGV4aW1hZ2UuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMzMsNyArMzMsOCBAQCB2YXIgaW1nVVJMcyA9IFsKICAgJ3Jlc291cmNlcy9ncmF5LXJh
bXAucG5nJywKICAgJ3Jlc291cmNlcy96ZXJvLWFscGhhLnBuZycsCiAgICdyZXNvdXJjZXMvM3gz
LnBuZycsCi0gICdyZXNvdXJjZXMvYmx1ZS0xeDEuanBnJ107CisgICdyZXNvdXJjZXMvYmx1ZS0x
eDEuanBnJywKKyAgJ3Jlc291cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nJ107CiAKIHd0dS5sb2Fk
SW1hZ2VzQXN5bmMoaW1nVVJMcywgcnVuVGVzdHMpOwogCkBAIC0yODksNiArMjkwLDIwIEBAIGZ1
bmN0aW9uIHJ1blRlc3RzKGltZ3MpIHsKICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwgIlNob3VsZCBiZSBubyBlcnJvcnMiKTsKIAogICBkZWJ1ZygiIik7CisgIGRlYnVnKCJjaGVj
ayB1cGxvYWRpbmcgb2YgMTYtYml0IGltYWdlcyIpOworICBnbC5waXhlbFN0b3JlaShnbC5VTlBB
Q0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKKyAgZ2wucGl4ZWxTdG9yZWkoZ2wu
VU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmFsc2UpOworICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVf
MkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgICAgICAg
IGltZ3NbJ3Jlc291cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nJ10pOworICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwIik7Cisg
IHd0dS5kcmF3UXVhZChnbCk7CisgIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKKworICBjaGVja1BpeGVsUmFuZ2UoYnVm
LCBtaWRkbGUsIGNlbnRlciwgWyAgIDE1LCAxMjEsICAgMCwgMjU1XSwgMTApOworCisgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIik7CisKKyAg
ZGVidWcoIiIpOwogICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogICBzaG91bGRCZVRydWUo
InN1Y2Nlc3NmdWxseVBhcnNlZCIpOwogICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3Mi
PlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9yZXNvdXJjZXMvZ3JlZW4tMngyLTE2Yml0LnBuZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNw
bGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGlj
YXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvZ3JlZW4tMngyLTE2Yml0LnBuZwpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFk
ZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3
MEtHZ29BQUFBTlNVaEVVZ0FBQUFJQUFBQUNFQUlBQUFDdFJFWXdBQUFBQ1hCSVdYTUFBQUJJQUFB
QVNBQkd5V3MrQUFBQQpDWFp3UVdjQUFBQUNBQUFBQWdCcUxINkFBQUFBSTBsRVFWUUkxMlBrRktq
ZHg4REE4SnZoQndNREU4dGhqazhNREd4MmYzNHpNQUFBCldRSUhSdzl3WkJvQUFBQUFTVVZPUks1
Q1lJST0KCg==
</data>
<flag name="commit-queue"
          id="59100"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69409</attachid>
            <date>2010-09-30 18:17:51 -0700</date>
            <delta_ts>2010-10-01 15:43:41 -0700</delta_ts>
            <desc>revised patch</desc>
            <filename>bit16.patch</filename>
            <type>text/plain</type>
            <size>24470</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODg1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDktMzAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXhJbWFn
ZTJEIGZhaWxzIG9uIDE2LWJpdC1wZXItY2hhbm5lbCBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2OTQ3CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHA6IEhhbmRsaW5nIDE2LWJpdC1wZXItY2hh
bm5lbCBzb3VyY2UgZm9ybWF0cy4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRDb2xvcjE2VG84
KToKKyAgICAgICAgKFdlYkNvcmU6OmRvUGFja2luZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisKIDIwMTAtMDktMzAgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWlu
aWcuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNELmNwcAkocmV2aXNpb24gNjg4MzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsMTEgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgdWludDhfdCBjb252ZXJ0Q29sb3IxNlRvOCh1
aW50MTZfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPj4gODsKK30KKwogYm9vbCBHcmFw
aGljc0NvbnRleHQzRDo6Y29tcHV0ZUZvcm1hdEFuZFR5cGVQYXJhbWV0ZXJzKHVuc2lnbmVkIGlu
dCBmb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyogY29tcG9uZW50c1BlclBp
eGVsLApAQCAtMjQ3LDYgKzI1MiwxNCBAQCB2b2lkIHVucGFja1JHQkE4VG9SR0JBOChjb25zdCB1
aW50OF90KiBzCiAgICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbM107CiB9CiAKK3ZvaWQgdW5w
YWNrUkdCQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbikKK3sKKyAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsw
XSk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0pOwor
ICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdKTsKKyAgICBk
ZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVszXSk7Cit9CisKIHZvaWQg
dW5wYWNrUkdCOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbikKIHsKICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTI1NSw2ICsyNjgs
MTQgQEAgdm9pZCB1bnBhY2tSR0I4VG9SR0JBOChjb25zdCB1aW50OF90KiBzbwogICAgIGRlc3Rp
bmF0aW9uWzNdID0gMHhGRjsKIH0KIAordm9pZCB1bnBhY2tSR0IxNlRvUkdCQTgoY29uc3QgdWlu
dDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit7CisgICAgZGVzdGluYXRpb25b
MF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzFdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVsyXSk7CisgICAgZGVzdGluYXRpb25bM10gPSAweEZGOworfQor
CiB2b2lkIHVucGFja0FSR0I4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uKQogewogICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzFdOwpAQCAtMjYz
LDYgKzI4NCwxNCBAQCB2b2lkIHVucGFja0FSR0I4VG9SR0JBOChjb25zdCB1aW50OF90KiBzCiAg
ICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbMF07CiB9CiAKK3ZvaWQgdW5wYWNrQVJHQjE2VG9S
R0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3sKKyAg
ICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7CisgICAgZGVz
dGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMl0pOworICAgIGRlc3RpbmF0
aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzNdKTsKKyAgICBkZXN0aW5hdGlvblsz
XSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Cit9CisKIHZvaWQgdW5wYWNrQkdSQThU
b1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCiB7CiAg
ICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMl07CkBAIC0yNzEsNiArMzAwLDE0IEBAIHZvaWQg
dW5wYWNrQkdSQThUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHMKICAgICBkZXN0aW5hdGlvblszXSA9
IHNvdXJjZVszXTsKIH0KIAordm9pZCB1bnBhY2tCR1JBMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90
KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQoreworICAgIGRlc3RpbmF0aW9uWzBdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzJdKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29s
b3IxNlRvOChzb3VyY2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZU
bzgoc291cmNlWzNdKTsKK30KKwogdm9pZCB1bnBhY2tSR0JBNTU1MVRvUkdCQTgoY29uc3QgdWlu
dDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCiB7CiAgICAgdWludDE2X3QgcGFj
a2VkVmFsdWUgPSBzb3VyY2VbMF07CkBAIC0zMTYsNiArMzUzLDE0IEBAIHZvaWQgdW5wYWNrUjhU
b1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXIKICAgICBkZXN0aW5hdGlvblszXSA9IDB4RkY7CiB9
CiAKK3ZvaWQgdW5wYWNrUjE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbikKK3sKKyAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVswXSk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBd
KTsKKyAgICBkZXN0aW5hdGlvblszXSA9IDB4RkY7Cit9CisKIHZvaWQgdW5wYWNrUkE4VG9SR0JB
OChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQogewogICAgIGRl
c3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwpAQCAtMzI0LDYgKzM2OSwxNCBAQCB2b2lkIHVucGFj
a1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291CiAgICAgZGVzdGluYXRpb25bM10gPSBzb3Vy
Y2VbMV07CiB9CiAKK3ZvaWQgdW5wYWNrUkExNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24pCit7CisgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0
Q29sb3IxNlRvOChzb3VyY2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9y
MTZUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVswXSk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMV0pOworfQorCiB2b2lkIHVucGFja0FSOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbikKIHsKICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsx
XTsKQEAgLTMzMiw2ICszODUsMTQgQEAgdm9pZCB1bnBhY2tBUjhUb1JHQkE4KGNvbnN0IHVpbnQ4
X3QqIHNvdQogICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzBdOwogfQogCit2b2lkIHVucGFj
a0FSMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
KQoreworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsK
KyAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7CisgICAg
ZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0pOworICAgIGRlc3Rp
bmF0aW9uWzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKK30KKwogdm9pZCB1bnBh
Y2tBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikK
IHsKICAgICBkZXN0aW5hdGlvblswXSA9IDB4MDsKQEAgLTM0MCw2ICs0MDEsMTQgQEAgdm9pZCB1
bnBhY2tBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cgogICAgIGRlc3RpbmF0aW9uWzNdID0g
c291cmNlWzBdOwogfQogCit2b2lkIHVucGFja0ExNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit7CisgICAgZGVzdGluYXRpb25bMF0gPSAweDA7
CisgICAgZGVzdGluYXRpb25bMV0gPSAweDA7CisgICAgZGVzdGluYXRpb25bMl0gPSAweDA7Cisg
ICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOworfQorCiAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIC8vIFBpeGVsIHBhY2tpbmcgcm91dGluZXMuCiAvLwpAQCAtNjQ0LDI0
ICs3MTMsNDggQEAgc3RhdGljIHZvaWQgZG9QYWNraW5nKGNvbnN0IHZvaWQqIHNvdXJjZQogICAg
ICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjprU291cmNlRm9ybWF0UkdCQTE2OiB7CisgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgY29tcHV0ZUluY3Jl
bWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwg
JnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAgICAg
IGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkExNlRv
UkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwor
ICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJj
ZUZvcm1hdFJHQjg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1l
dGVyczx1aW50OF90Pih3aWR0aCwgMywgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tp
bmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tSR0I4VG9SR0JBOCwgcGFja2lu
Z0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhl
aWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3Rp
bmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0IxNjog
eworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxl
bWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+
KHdpZHRoLCAzLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8
dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0IxNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0
aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRh
LCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBicmVhazsKKyAgICB9CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSR0I4OiB7CiAgICAgICAg
IHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJv
dzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDQs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VF
bGVtZW50c1BlclJvdyk7CiAgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBE
ZXN0VHlwZSwgdW5wYWNrQVJHQjhUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlv
bkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSR0IxNjogeworICAgICAgICB1bnNpZ25lZCBp
bnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAg
IGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJS
b3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1
bnBhY2tBUkdCMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2
X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwg
c291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50
c1BlclBpeGVsKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OmtTb3VyY2VGb3JtYXRCR1JBODogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJ
bmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwogICAg
ICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0JHUkE4
VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VE
YXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVu
dHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3Vy
Y2VGb3JtYXRCR1JBMTY6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFy
YW1ldGVyczx1aW50OF90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBh
Y2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQkdSQTE2VG9SR0JBOCwg
cGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdp
ZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93
LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0
UkdCQTU1NTE6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
IHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVy
czx1aW50MTZfdD4od2lkdGgsIDIsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CkBAIC02ODYsMjQgKzc3OSw0OCBA
QCBzdGF0aWMgdm9pZCBkb1BhY2tpbmcoY29uc3Qgdm9pZCogc291cmNlCiAgICAgICAgIGRvVW5w
YWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrUjhUb1JHQkE4LCBwYWNr
aW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwg
aGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVz
dGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVh
azsKICAgICB9CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFIxNjog
eworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxl
bWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+
KHdpZHRoLCAxLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8
dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGlj
X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwg
ZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSQTg6IHsKICAgICAgICAgdW5z
aWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93Owog
ICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMiwgc291
cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1l
bnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RU
eXBlLCB1bnBhY2tSQThUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1l
bnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6a1NvdXJjZUZvcm1hdFJBMTY6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICBjb21wdXRl
SW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAg
ICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkEx
NlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJj
ZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwp
OworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1Nv
dXJjZUZvcm1hdEFSODogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJh
bWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwogICAgICAgICBkb1VucGFj
a2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0FSOFRvUkdCQTgsIHBhY2tp
bmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0
aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QVIxNjog
eworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxl
bWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+
KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8
dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tBUjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRp
Y19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEs
IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QTg6IHsKICAgICAgICAgdW5z
aWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93Owog
ICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMSwgc291
cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1l
bnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RU
eXBlLCB1bnBhY2tBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50
OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
IHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVu
dHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjprU291cmNlRm9ybWF0QTE2OiB7CisgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgY29tcHV0ZUlu
Y3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDEsIHNvdXJjZVVucGFja0FsaWdubWVu
dCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAg
ICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0ExNlRv
UkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwor
ICAgICAgICBicmVhazsKKyAgICB9CiAgICAgfQogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiA2ODgzMSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5
KQpAQCAtNTM1LDE2ICs1MzUsMjQgQEAgcHVibGljOgogICAgIC8vIGJ5IG5vbi1tZW1iZXIgZnVu
Y3Rpb25zLgogICAgIGVudW0gU291cmNlRGF0YUZvcm1hdCB7CiAgICAgICAgIGtTb3VyY2VGb3Jt
YXRSR0JBOCwKKyAgICAgICAga1NvdXJjZUZvcm1hdFJHQkExNiwKICAgICAgICAga1NvdXJjZUZv
cm1hdFJHQjgsCisgICAgICAgIGtTb3VyY2VGb3JtYXRSR0IxNiwKICAgICAgICAga1NvdXJjZUZv
cm1hdEJHUkE4LAorICAgICAgICBrU291cmNlRm9ybWF0QkdSQTE2LAogICAgICAgICBrU291cmNl
Rm9ybWF0QVJHQjgsCisgICAgICAgIGtTb3VyY2VGb3JtYXRBUkdCMTYsCiAgICAgICAgIGtTb3Vy
Y2VGb3JtYXRSR0JBNTU1MSwKICAgICAgICAga1NvdXJjZUZvcm1hdFJHQkE0NDQ0LAogICAgICAg
ICBrU291cmNlRm9ybWF0UkdCNTY1LAogICAgICAgICBrU291cmNlRm9ybWF0UjgsCisgICAgICAg
IGtTb3VyY2VGb3JtYXRSMTYsCiAgICAgICAgIGtTb3VyY2VGb3JtYXRSQTgsCisgICAgICAgIGtT
b3VyY2VGb3JtYXRSQTE2LAogICAgICAgICBrU291cmNlRm9ybWF0QVI4LAotICAgICAgICBrU291
cmNlRm9ybWF0QTgKKyAgICAgICAga1NvdXJjZUZvcm1hdEFSMTYsCisgICAgICAgIGtTb3VyY2VG
b3JtYXRBOCwKKyAgICAgICAga1NvdXJjZUZvcm1hdEExNgogICAgIH07CiAKICAgICAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0M0RDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHQzRENHLmNwcAkocmV2aXNpb24gNjg4MzEpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NCw5ICs2NCwxNSBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1h
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBzaXplX3Qgd2lkdGggPSBDR0ltYWdlR2V0V2lk
dGgoY2dJbWFnZSk7CiAgICAgc2l6ZV90IGhlaWdodCA9IENHSW1hZ2VHZXRIZWlnaHQoY2dJbWFn
ZSk7Ci0gICAgaWYgKCF3aWR0aCB8fCAhaGVpZ2h0IHx8IENHSW1hZ2VHZXRCaXRzUGVyQ29tcG9u
ZW50KGNnSW1hZ2UpICE9IDgpCisgICAgaWYgKCF3aWR0aCB8fCAhaGVpZ2h0KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgc2l6ZV90IGNvbXBvbmVudHNQZXJQaXhlbCA9IENHSW1hZ2VHZXRC
aXRzUGVyUGl4ZWwoY2dJbWFnZSkgLyA4OworICAgIHNpemVfdCBiaXRzUGVyQ29tcG9uZW50ID0g
Q0dJbWFnZUdldEJpdHNQZXJDb21wb25lbnQoY2dJbWFnZSk7CisgICAgc2l6ZV90IGJpdHNQZXJQ
aXhlbCA9IENHSW1hZ2VHZXRCaXRzUGVyUGl4ZWwoY2dJbWFnZSk7CisgICAgaWYgKGJpdHNQZXJD
b21wb25lbnQgIT0gOCAmJiBiaXRzUGVyQ29tcG9uZW50ICE9IDE2KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKGJpdHNQZXJQaXhlbCAlIGJpdHNQZXJDb21wb25lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBzaXplX3QgY29tcG9uZW50c1BlclBpeGVsID0gYml0c1BlclBp
eGVsIC8gYml0c1BlckNvbXBvbmVudDsKICAgICBTb3VyY2VEYXRhRm9ybWF0IHNyY0RhdGFGb3Jt
YXQgPSBrU291cmNlRm9ybWF0UkdCQTg7CiAgICAgQWxwaGFPcCBuZWVkZWRBbHBoYU9wID0ga0Fs
cGhhRG9Ob3RoaW5nOwogICAgIHN3aXRjaCAoQ0dJbWFnZUdldEFscGhhSW5mbyhjZ0ltYWdlKSkg
ewpAQCAtNzksMTAgKzg1LDE2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0
YShJbWEKICAgICAgICAgICAgIG5lZWRlZEFscGhhT3AgPSBrQWxwaGFEb1VubXVsdGlwbHk7CiAg
ICAgICAgIHN3aXRjaCAoY29tcG9uZW50c1BlclBpeGVsKSB7CiAgICAgICAgIGNhc2UgMjoKLSAg
ICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QVI4OworICAgICAgICAgICAg
aWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0
ID0ga1NvdXJjZUZvcm1hdEFSODsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBz
cmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSMTY7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSA0OgotICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRB
UkdCODsKKyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCisgICAgICAgICAg
ICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUkdCODsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSR0IxNjsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtOTQsMTMgKzEwNiwyMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJ
bWFnZURhdGEoSW1hCiAgICAgICAgICAgICBuZWVkZWRBbHBoYU9wID0ga0FscGhhRG9QcmVtdWx0
aXBseTsKICAgICAgICAgc3dpdGNoIChjb21wb25lbnRzUGVyUGl4ZWwpIHsKICAgICAgICAgY2Fz
ZSAxOgotICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBODsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICBzcmNEYXRhRm9ybWF0
ID0ga1NvdXJjZUZvcm1hdEFSODsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDQ6
Ci0gICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSR0I4OworICAgICAg
ICAgICAgaWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKKyAgICAgICAgICAgICAgICBzcmNEYXRh
Rm9ybWF0ID0ga1NvdXJjZUZvcm1hdEE4OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QTE2OworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgp
CisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUjg7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3Jt
YXRBUjE2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAg
IGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1h
dCA9IGtTb3VyY2VGb3JtYXRBUkdCODsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSR0IxNjsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTEwLDEw
ICsxMzEsMTYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYQogICAg
ICAgICAvLyBUaGlzIHBhdGggaXMgb25seSBhY2Nlc3NpYmxlIGZvciBNYWNPUyBlYXJsaWVyIHRo
YW4gMTAuNi40LgogICAgICAgICBzd2l0Y2ggKGNvbXBvbmVudHNQZXJQaXhlbCkgewogICAgICAg
ICBjYXNlIDI6Ci0gICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSODsK
KyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCisgICAgICAgICAgICAgICAg
c3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUjg7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUjE2OwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgNDoKLSAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBr
U291cmNlRm9ybWF0QVJHQjg7CisgICAgICAgICAgICBpZiAoYml0c1BlckNvbXBvbmVudCA9PSA4
KQorICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QVJHQjg7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VG
b3JtYXRBUkdCMTY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEyNywxMCArMTU0LDE2IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICAgICAgICAgIG5lZWRlZEFscGhhT3AgPSBr
QWxwaGFEb1VubXVsdGlwbHk7CiAgICAgICAgIHN3aXRjaCAoY29tcG9uZW50c1BlclBpeGVsKSB7
CiAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9y
bWF0UkE4OworICAgICAgICAgICAgaWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKKyAgICAgICAg
ICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJBODsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJBMTY7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSA0OgotICAgICAgICAgICAgc3JjRGF0YUZv
cm1hdCA9IGtTb3VyY2VGb3JtYXRSR0JBODsKKyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9u
ZW50ID09IDgpCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRS
R0JBODsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0g
a1NvdXJjZUZvcm1hdFJHQkExNjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTQxLDEzICsxNzQsMjIgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYQogICAgICAgICAgICAgbmVlZGVkQWxw
aGFPcCA9IGtBbHBoYURvUHJlbXVsdGlwbHk7CiAgICAgICAgIHN3aXRjaCAoY29tcG9uZW50c1Bl
clBpeGVsKSB7CiAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBr
U291cmNlRm9ybWF0QTg7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAyOgotICAg
ICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSQTg7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSA0OgotICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3Vy
Y2VGb3JtYXRSR0JBODsKKyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCisg
ICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBODsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEEx
NjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAo
Yml0c1BlckNvbXBvbmVudCA9PSA4KQorICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBr
U291cmNlRm9ybWF0UkE4OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNyY0Rh
dGFGb3JtYXQgPSBrU291cmNlRm9ybWF0UkExNjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICBpZiAoYml0c1BlckNvbXBvbmVudCA9PSA4KQorICAgICAg
ICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0UkdCQTg7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0JB
MTY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTE1NiwxMCArMTk4LDE2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6
OmdldEltYWdlRGF0YShJbWEKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFOb25lU2tpcExhc3Q6CiAg
ICAgICAgIHN3aXRjaCAoY29tcG9uZW50c1BlclBpeGVsKSB7CiAgICAgICAgIGNhc2UgMjoKLSAg
ICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0UkE4OworICAgICAgICAgICAg
aWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0
ID0ga1NvdXJjZUZvcm1hdFJBODsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBz
cmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJBMTY7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSA0OgotICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRS
R0JBODsKKyAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCisgICAgICAgICAg
ICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0JBODsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJHQkExNjsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTY4LDEwICsyMTYsMTYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0
SW1hZ2VEYXRhKEltYQogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYU5vbmU6CiAgICAgICAgIHN3aXRj
aCAoY29tcG9uZW50c1BlclBpeGVsKSB7CiAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIHNy
Y0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0Ujg7CisgICAgICAgICAgICBpZiAoYml0c1BlckNv
bXBvbmVudCA9PSA4KQorICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9y
bWF0Ujg7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9
IGtTb3VyY2VGb3JtYXRSMTY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAzOgot
ICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0I4OworICAgICAgICAg
ICAgaWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9y
bWF0ID0ga1NvdXJjZUZvcm1hdFJHQjg7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0IxNjsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTg4LDcg
KzI0Miw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICBv
dXRwdXRWZWN0b3IucmVzaXplKHdpZHRoICogaGVpZ2h0ICogNCk7CiAgICAgdW5zaWduZWQgaW50
IHNyY1VucGFja0FsaWdubWVudCA9IDA7CiAgICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gQ0dJbWFn
ZUdldEJ5dGVzUGVyUm93KGNnSW1hZ2UpOwotICAgIHVuc2lnbmVkIGludCBwYWRkaW5nID0gYnl0
ZXNQZXJSb3cgLSBjb21wb25lbnRzUGVyUGl4ZWwgKiB3aWR0aDsKKyAgICB1bnNpZ25lZCBpbnQg
cGFkZGluZyA9IGJ5dGVzUGVyUm93IC0gYml0c1BlclBpeGVsIC8gOCAqIHdpZHRoOwogICAgIGlm
IChwYWRkaW5nKSB7CiAgICAgICAgIHNyY1VucGFja0FsaWdubWVudCA9IHBhZGRpbmcgKyAxOwog
ICAgICAgICB3aGlsZSAoYnl0ZXNQZXJSb3cgJSBzcmNVbnBhY2tBbGlnbm1lbnQpCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODg1NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA5LTMwICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdGV4
SW1hZ2UyRCBmYWlscyBvbiAxNi1iaXQtcGVyLWNoYW5uZWwgaW1hZ2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0NworCisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvZ2wtdGV4aW1hZ2UtZXhwZWN0ZWQudHh0OiBBZGQgYSB0ZXN0IGNhc2Ug
Zm9yIGxvYWRpbmcgMTYtYml0LXBlci1jaGFubmVsIGltYWdlcyBhcyB0ZXh0dXJlcy4KKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9nbC10ZXhpbWFnZS5odG1sOiBEaXR0by4KKyAgICAgICAg
KiBmYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvZ3JlZW4tMngyLTE2Yml0LnBuZzogQWRkZWQu
CisKIDIwMTAtMDktMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgSm9uIEhvbmV5Y3V0dC4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2dsLXRleGltYWdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC10ZXhpbWFnZS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDY4ODMxKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtdGV4aW1h
Z2UtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCwxMSBAQCBQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJSCiBQQVNTIHBpeGVsIDEyOCwgOCBzaG91
bGQgYmUgd2l0aGluIDEwIHVuaXRzIG9mIDAsIDAsIDI1NSwgMjU1IHdhcyAwLCAwLCAyNTQsIDI1
NQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2hvdWxkIGJl
IG5vIGVycm9ycwogCitjaGVjayB1cGxvYWRpbmcgb2YgMTYtYml0IGltYWdlcworUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2hvdWxkIGJlIG5vIGVycm9ycyBm
cm9tIHNldHVwCitQQVNTIHBpeGVsIDEyOCwgOCBzaG91bGQgYmUgd2l0aGluIDEwIHVuaXRzIG9m
IDE1LCAxMjEsIDAsIDI1NSB3YXMgMTUsIDEyMSwgMCwgMjU1CitQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBTaG91bGQgYmUgbm8gZXJyb3JzCisKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtdGV4aW1hZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC10ZXhpbWFnZS5odG1sCShyZXZpc2lvbiA2ODgz
MSkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLXRleGltYWdlLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDggQEAgdmFyIGltZ1VSTHMgPSBbCiAgICdyZXNvdXJj
ZXMvZ3JheS1yYW1wLnBuZycsCiAgICdyZXNvdXJjZXMvemVyby1hbHBoYS5wbmcnLAogICAncmVz
b3VyY2VzLzN4My5wbmcnLAotICAncmVzb3VyY2VzL2JsdWUtMXgxLmpwZyddOworICAncmVzb3Vy
Y2VzL2JsdWUtMXgxLmpwZycsCisgICdyZXNvdXJjZXMvZ3JlZW4tMngyLTE2Yml0LnBuZyddOwog
CiB3dHUubG9hZEltYWdlc0FzeW5jKGltZ1VSTHMsIHJ1blRlc3RzKTsKIApAQCAtMjg5LDYgKzI5
MCwyMCBAQCBmdW5jdGlvbiBydW5UZXN0cyhpbWdzKSB7CiAgIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIik7CiAKICAgZGVidWcoIiIpOworICBk
ZWJ1ZygiY2hlY2sgdXBsb2FkaW5nIG9mIDE2LWJpdCBpbWFnZXMiKTsKKyAgZ2wucGl4ZWxTdG9y
ZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCBmYWxzZSk7CisgIGdsLnBpeGVs
U3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIGZhbHNlKTsKKyAgZ2wudGV4SW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwKKyAgICAg
ICAgICAgICAgICBpbWdzWydyZXNvdXJjZXMvZ3JlZW4tMngyLTE2Yml0LnBuZyddKTsKKyAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBz
ZXR1cCIpOworICB3dHUuZHJhd1F1YWQoZ2wpOworICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRo
LCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7CisKKyAgY2hlY2tQaXhl
bFJhbmdlKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsgICAxNSwgMTIxLCAgIDAsIDI1NV0sIDEwKTsK
KworICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9y
cyIpOworCisgIGRlYnVnKCIiKTsKICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKICAgc2hv
dWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQiKTsKICAgZGVidWcoJzxiciAvPjxzcGFuIGNs
YXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL2dyZWVuLTJ4Mi0xNmJpdC5wbmcKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpD
YW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlw
ZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL2dyZWVuLTJ4Mi0xNmJpdC5wbmcKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVh
bQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBSUFBQUFDRUFJQUFBQ3RSRVl3QUFBQUNYQklX
WE1BQUFCSUFBQUFTQUJHeVdzK0FBQUEKQ1had1FXY0FBQUFDQUFBQUFnQnFMSDZBQUFBQUkwbEVR
VlFJMTJQa0ZLamR4OERBOEp2aEJ3TURFOHRoams4TURHeDJmMzR6TUFBQQpXUUlIUnc5d1pCb0FB
QUFBU1VWT1JLNUNZSUk9Cgo=
</data>
<flag name="review"
          id="59105"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="59106"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
      

    </bug>

</bugzilla>