<?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>71319</bug_id>
          
          <creation_ts>2011-11-01 14:16:02 -0700</creation_ts>
          <short_desc>&lt;input=file multiple&gt; default text uses singular instead of plural</short_desc>
          <delta_ts>2011-12-01 23:37:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>494140</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 14:16:02 -0700</bug_when>
    <thetext>&lt;input=file multiple&gt; has label text that says &quot;no file selected&quot; next to &quot;Choose files&quot;. It ought to be &quot;no files selected&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494144</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-11-01 14:17:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/10379021&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494154</commentid>
    <comment_count>2</comment_count>
      <attachid>113220</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 14:27:37 -0700</bug_when>
    <thetext>Created attachment 113220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494180</commentid>
    <comment_count>3</comment_count>
      <attachid>113220</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 14:56:28 -0700</bug_when>
    <thetext>Comment on attachment 113220
Patch

Attachment 113220 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10190051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494185</commentid>
    <comment_count>4</comment_count>
      <attachid>113220</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-01 15:00:20 -0700</bug_when>
    <thetext>Comment on attachment 113220
Patch

Attachment 113220 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10175059</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494219</commentid>
    <comment_count>5</comment_count>
      <attachid>113240</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 15:35:22 -0700</bug_when>
    <thetext>Created attachment 113240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494237</commentid>
    <comment_count>6</comment_count>
      <attachid>113240</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 15:48:25 -0700</bug_when>
    <thetext>Comment on attachment 113240
Patch

Attachment 113240 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10256078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494247</commentid>
    <comment_count>7</comment_count>
      <attachid>113240</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-01 15:54:14 -0700</bug_when>
    <thetext>Comment on attachment 113240
Patch

Attachment 113240 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10257078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494303</commentid>
    <comment_count>8</comment_count>
      <attachid>113257</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 16:45:15 -0700</bug_when>
    <thetext>Created attachment 113257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494355</commentid>
    <comment_count>9</comment_count>
      <attachid>113257</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-01 17:37:16 -0700</bug_when>
    <thetext>Comment on attachment 113257
Patch

Attachment 113257 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10128448</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494376</commentid>
    <comment_count>10</comment_count>
      <attachid>113271</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 18:00:00 -0700</bug_when>
    <thetext>Created attachment 113271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494768</commentid>
    <comment_count>11</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-02 11:36:05 -0700</bug_when>
    <thetext>Committed r99083: &lt;http://trac.webkit.org/changeset/99083&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513559</commentid>
    <comment_count>12</comment_count>
      <attachid>113271</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-01 23:37:45 -0800</bug_when>
    <thetext>Comment on attachment 113271
Patch

Obsoleting the patch since it already landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113220</attachid>
            <date>2011-11-01 14:27:37 -0700</date>
            <delta_ts>2011-11-01 15:35:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71319-20111101142809.patch</filename>
            <type>text/plain</type>
            <size>11055</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjNmY2U2OTIxM2Y2Mjdi
NWFlYjUxMDc0N2ViNDU1MTFjMzE0NTdhLi41ODM4MjlkMDY5ZDNmNDg1ZTBlMzY4MGVmMzE5Yzk4
YjBhZTFjZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMTEtMDEgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIDxpbnB1dD1maWxlIG11bHRpcGxlPiBk
ZWZhdWx0IHRleHQgdXNlcyBzaW5ndWxhciBpbnN0ZWFkIG9mIHBsdXJhbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzEwMzc5MDIxPgorICAgICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGRlZCBhIG5ldyBtZXRob2QgdG8gcmV0dXJu
IHRoZSBsYWJlbCB0ZXh0IGZvciBhIGZpbGUgdXBsb2FkIGNvbnRyb2wgdGhhdAorICAgICAgICBh
bGxvd3MgbXVsdGlwbGUgZmlsZXMuIE5lZWRlZCB0byBleHRlbmQgdGhlIFJlbmRlclRoZW1lIGZ1
bmN0aW9uIHRvIHBhc3MgZG93bgorICAgICAgICBhIGJvb2xlYW4gcmVwcmVzZW50aW5nIHdoZXRo
ZXIgbXVsdGlwbGUgZmlsZXMgYXJlIGFsbG93ZWQgaW4gdGhlIGZpbGUgbGlzdC4KKworICAgICAg
ICAqIEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKyAgICAgICAgKiBodG1sL0Zp
bGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6ZGVmYXVs
dFRvb2xUaXApOgorICAgICAgICAqIHBsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmZp
bGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgICogcGxhdGZvcm0vRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemF0aW9u
U3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCk6CisgICAgICAg
ICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbDo6ZmlsZVRleHRWYWx1ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpmaWxlTGlzdE5hbWVGb3JX
aWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmZpbGVMaXN0TmFtZUZv
cldpZHRoKToKKwogMjAxMS0xMS0wMSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKDk4NzM4KTogUmVuZGVyVGFibGVTZWN0aW9u
OjpyZWNhbGNDZWxscyBkb2VzIG5vdCBwcm9wZXJseSBzaHJpbmsgdGhlIFJvd1N0cnVjdCBncmlk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0
cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MK
aW5kZXggODE1NWVlOWIwNTA5MGY5YTdlMDYzNTkzYzhiMjBjMTU1Njg4YjlkZi4uMjQ1ZGFjYjA0
NDdjNDVkNGQ1ZWNkYjhiMzI1ZWJkN2I2M2QzOGU5ZiAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApk
ZWx0YSA5MAp6Y21aM3JvTyF9MzxfJVl1UFFKZ1NoTz9NS2ZnekVoaCNfXmRnTXB9WUIxMFpTM1Eo
a2tBJWhfbU5HQ0NyMEApPUQKbGAzIWxKbFF7SmBLYGZBSD5nMHJfK0xNSmpNSkNUKERnbU41QTdB
PWQ3WGFtcDh3dm1iCgpkZWx0YSAxOAphY21iUVJpaDAjPzxfJVl1UFI/SXF4NENscGJYQD5nM0pF
cz0KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCA2MjM0MjA2ZmQyNmM2
YzlhM2ZiNzBlNzVlMzI5YjNlYTJjY2I4NGExLi42NTVlODFlYWRiYzczMTE5YzUwMGI2ZDU1OTcw
OTJiMDg1NGYyZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTM3
Myw4ICszNzMsMTEgQEAgU3RyaW5nIEZpbGVJbnB1dFR5cGU6OmRlZmF1bHRUb29sVGlwKCkgY29u
c3QKIHsKICAgICBGaWxlTGlzdCogZmlsZUxpc3QgPSBtX2ZpbGVMaXN0LmdldCgpOwogICAgIHVu
c2lnbmVkIGxpc3RTaXplID0gZmlsZUxpc3QtPmxlbmd0aCgpOwotICAgIGlmICghbGlzdFNpemUp
CisgICAgaWYgKCFsaXN0U2l6ZSkgeworICAgICAgICBpZiAoZWxlbWVudCgpLT5tdWx0aXBsZSgp
KQorICAgICAgICAgICAgcmV0dXJuIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwog
ICAgICAgICByZXR1cm4gZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICB9CiAK
ICAgICBTdHJpbmdCdWlsZGVyIG5hbWVzOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlz
dFNpemU7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAKaW5kZXggYWRjODA5ZmZlODI5NzQyNWM5ODUxMzNi
ZmIzYjg2OWRhNzI0MWY3My4uZTQ1MzMyM2I2ZDBjMWM0MjkxYWNlYjkxMmYyNTNkN2Y5NDNhNTQw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxp
emF0aW9uU3RyYXRlZ3kuY3BwCkBAIC0xMzYsNiArMTM2LDExIEBAIFN0cmluZyBEZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygibm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkg
aW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBzZWxlY3Rl
ZCIpOwogfQogCitTdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpmaWxlQnV0dG9u
Tm9GaWxlc1NlbGVjdGVkTGFiZWwoKQoreworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBm
aWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBI
VE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93
cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOworfQorCiBTdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5OjpkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkKIHsKICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFp
bHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmgKaW5kZXgg
ZjExY2U5OTQ1MTAwMTE1YTc3Y2VhYmE2MmFjNDczMjVjZGRmY2ExNS4uMDkwMGY0Njk5MGU1MDRm
NTE4OTk5NDUzZTcwYWIxMjFmYzExZDgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmgKQEAgLTQ2LDYgKzQ2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7
CiAgICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKICAgICB2
aXJ0dWFsIFN0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7CiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIHZpcnR1YWwgU3RyaW5nIGNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCmluZGV4IGIy
ZWFiMTc1ZjgxMDg0MGU5MmY5NmQzODA5MWYyZjQzMDcxOGIxZjQuLjNkMWEyYjg0NjMxN2I5Njlk
YjA2NzJjMmNmNDJmMjZhNDc2NGVhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemF0aW9uU3RyYXRlZ3kuaApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpID0gMDsKICAgICB2aXJ0dWFs
IFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgPSAwOwogICAgIHZp
cnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkgPSAwOworICAgIHZp
cnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpID0gMDsKICAgICB2
aXJ0dWFsIFN0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkgPSAwOwogCiAjaWYgUExB
VEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNw
cAppbmRleCBhOTVjZmZmMmMxOWUwNmMyNWJlNzUzNTQ0ZTU0YjEyYjZjM2U2MThiLi5hNmE0MWFj
MzQ5NTMxMDRiYTI5ZTE5MzE0OTFiYjk4OWY3MmQ0ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtNzksNiArNzksMTEgQEAgU3RyaW5nIGZp
bGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKICAgICByZXR1cm4gbG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKIH0KIAorU3RyaW5nIGZp
bGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCit7CisgICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOworfQorCiBTdHJp
bmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCiB7CiAgICAgcmV0dXJuIGxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCAzMjkzZGE0MTliNDVkMjNjYTgxYWVk
ZTNjNWI0MTA4NGFhMjlkYzQ2Li5jNDlhZDkxNTBmY2Q4NzhkZTY3M2Y2OWRmZTA3MjY3YWZkNWIx
NWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC00
MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcgZmlsZUJ1dHRvbkNo
b29zZUZpbGVMYWJlbCgpOwogICAgIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxl
c0xhYmVsKCk7CiAgICAgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7Cisg
ICAgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwogICAgIFN0cmluZyBk
ZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApp
bmRleCA4NWI5NGQ2YzcwOTM2ZTg3MTJiMzk4MmNlMzAwOGM5ZDNmODM1ZjJjLi42ZjY1NzZkNWZk
ODliOWRhMzQ0Y2IyMTRkM2U1NTk3YTUxYzI1MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTIyOCw3ICsyMjgs
NyBAQCBTdHJpbmcgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmZpbGVUZXh0VmFsdWUoKSBjb25z
dAogewogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KG5vZGUoKSk7CiAgICAgQVNTRVJUKGlucHV0LT5maWxlcygpKTsKLSAgICByZXR1
cm4gdGhlbWUoKS0+ZmlsZUxpc3ROYW1lRm9yV2lkdGgoaW5wdXQtPmZpbGVzKCktPnBhdGhzKCks
IHN0eWxlKCktPmZvbnQoKSwgbWF4RmlsZW5hbWVXaWR0aCgpKTsKKyAgICByZXR1cm4gdGhlbWUo
KS0+ZmlsZUxpc3ROYW1lRm9yV2lkdGgoaW5wdXQtPmZpbGVzKCktPnBhdGhzKCksIHN0eWxlKCkt
PmZvbnQoKSwgbWF4RmlsZW5hbWVXaWR0aCgpLCBpbnB1dC0+bXVsdGlwbGUoKSk7CiB9CiAgICAg
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcAppbmRleCAwYTJmZjRkZmNhOWY2ZDZlMDE2ODcxZGUzNTBlMGVjMjg2YjEzMThiLi40
ZWY5NTM2ZjIxYTliZDBjOTYwMmQxOTEwYmQzYTY1M2ZjNTE3YTAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTExMDEsMTQgKzExMDEsMTggQEAgQ29sb3Ig
UmVuZGVyVGhlbWU6OmZvY3VzUmluZ0NvbG9yKCkKICAgICByZXR1cm4gY3VzdG9tRm9jdXNSaW5n
Q29sb3IoKS5pc1ZhbGlkKCkgPyBjdXN0b21Gb2N1c1JpbmdDb2xvcigpIDogZGVmYXVsdFRoZW1l
KCktPnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAotU3RyaW5nIFJlbmRlclRoZW1lOjpm
aWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25z
dCBGb250JiBmb250LCBpbnQgd2lkdGgpCitTdHJpbmcgUmVuZGVyVGhlbWU6OmZpbGVMaXN0TmFt
ZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmIGZv
bnQsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dlZCkKIHsKICAgICBpZiAod2lk
dGggPD0gMCkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgU3RyaW5nIHN0cmluZzsK
LSAgICBpZiAoZmlsZW5hbWVzLmlzRW1wdHkoKSkKLSAgICAgICAgc3RyaW5nID0gZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICBpZiAoZmlsZW5hbWVzLmlzRW1wdHkoKSkgewor
ICAgICAgICBpZiAobXVsdGlwbGVGaWxlc0FsbG93ZWQpCisgICAgICAgICAgICBzdHJpbmcgPSBm
aWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgc3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICB9CiAgICAg
ZWxzZSBpZiAoZmlsZW5hbWVzLnNpemUoKSA9PSAxKQogICAgICAgICBzdHJpbmcgPSBwYXRoR2V0
RmlsZU5hbWUoZmlsZW5hbWVzWzBdKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5oCmluZGV4IDNjZTJhYjJkMzkyZGM5MWZiMzI0N2FlOTQyYTE1MzM3MmNmNGY4
MTkuLjQzYWVjMjNkNzA4ZTE4NDNmNDMzNTEzYjljNGZiZWQ4OTFjN2RkOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0yMDcsNyArMjA3LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93UGxhY2Vob2xkZXJXaGVuRm9jdXNlZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEhhdmVTcGluQnV0dG9u
KEhUTUxJbnB1dEVsZW1lbnQqKSBjb25zdDsKIAotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVMaXN0
TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQm
LCBpbnQgd2lkdGgpOworICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVMaXN0TmFtZUZvcldpZHRoKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmLCBpbnQgd2lkdGgsIGJv
b2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpOwogCiBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhlIHBsYXRm
b3JtIHNlbGVjdGlvbiBjb2xvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmgKaW5kZXggMmQ3MmI4MWY0ZmYyNzY1OTY3NGRmY2VlMjMwNmYwMzc5YWEwYjMyMy4uYzg3
ZGRlYzYwZDk3OTI0ZWU5YmVkM2NjZTE2M2NjYTNjZjMzZTEwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTE3Nyw3ICsxNzcsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNob3dQbGFjZWhvbGRlcldoZW5Gb2N1c2VkKCkgY29u
c3Q7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYsIGludCB3aWR0aCk7
CisgICAgdmlydHVhbCBTdHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZp
bGVzQWxsb3dlZCk7CiAKICAgICBJbnRSZWN0IGluZmxhdGVSZWN0KGNvbnN0IEludFJlY3QmLCBj
b25zdCBJbnRTaXplJiwgY29uc3QgaW50KiBtYXJnaW5zLCBmbG9hdCB6b29tTGV2ZWwgPSAxLjBm
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmlu
ZGV4IDFkNTJiOGE2YmNlOGExNzExZjY4MGVmODYzMWNiYWUwMjFmODkxMjEuLjk5MjhlMTg3YTg2
YjI3NDZiZTgxMTk5MDE5MTJkOGRlODA5N2VmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTIwODUsMTQgKzIwODUsMTggQEAgTlNTbGlkZXJDZWxs
KiBSZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJWZXJ0aWNhbCgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKTsKIH0KIAotU3RyaW5nIFJlbmRlclRoZW1lTWFj
OjpmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBj
b25zdCBGb250JiBmb250LCBpbnQgd2lkdGgpCitTdHJpbmcgUmVuZGVyVGhlbWVNYWM6OmZpbGVM
aXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZv
bnQmIGZvbnQsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dlZCkKIHsKICAgICBp
ZiAod2lkdGggPD0gMCkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgU3RyaW5nIHN0
clRvVHJ1bmNhdGU7Ci0gICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpCi0gICAgICAgIHN0clRv
VHJ1bmNhdGUgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOworICAgIGlmIChmaWxl
bmFtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChtdWx0aXBsZUZpbGVzQWxsb3dlZCkKKyAg
ICAgICAgICAgIHN0clRvVHJ1bmNhdGUgPSBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwo
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RyVG9UcnVuY2F0ZSA9IGZpbGVCdXR0b25O
b0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgfQogICAgIGVsc2UgaWYgKGZpbGVuYW1lcy5zaXpl
KCkgPT0gMSkKICAgICAgICAgc3RyVG9UcnVuY2F0ZSA9IFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gZGlzcGxheU5hbWVBdFBhdGg6KGZpbGVuYW1lc1swXSldOwogICAgIGVsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113240</attachid>
            <date>2011-11-01 15:35:22 -0700</date>
            <delta_ts>2011-11-01 16:45:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71319-20111101153554.patch</filename>
            <type>text/plain</type>
            <size>15581</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjNmY2U2OTIxM2Y2Mjdi
NWFlYjUxMDc0N2ViNDU1MTFjMzE0NTdhLi4xM2Q1YjZiZTRmZjdiZTA1NzZiZGI3Nzk1ZmU3MWIy
ZDhlYWY3NTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMTEtMDEgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIDxpbnB1dD1maWxlIG11bHRpcGxlPiBk
ZWZhdWx0IHRleHQgdXNlcyBzaW5ndWxhciBpbnN0ZWFkIG9mIHBsdXJhbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzEwMzc5MDIxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIGEgbmV3IG1ldGhvZCB0byByZXR1cm4gdGhlIGxhYmVsIHRleHQg
Zm9yIGEgZmlsZSB1cGxvYWQgY29udHJvbCB0aGF0CisgICAgICAgIGFsbG93cyBtdWx0aXBsZSBm
aWxlcy4gTmVlZGVkIHRvIGV4dGVuZCB0aGUgUmVuZGVyVGhlbWUgZnVuY3Rpb24gdG8gcGFzcyBk
b3duCisgICAgICAgIGEgYm9vbGVhbiByZXByZXNlbnRpbmcgd2hldGhlciBtdWx0aXBsZSBmaWxl
cyBhcmUgYWxsb3dlZCBpbiB0aGUgZmlsZSBsaXN0LgorCisgICAgICAgICogRW5nbGlzaC5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCk6CisgICAg
ICAgICogcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6ZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NF
ZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVs
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwpOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUd0azo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgpOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L1JlbmRlclRoZW1lUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6Zmls
ZUxpc3ROYW1lRm9yV2lkdGgpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmlu
Z3NXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFi
ZWwpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6ZmlsZVRleHRWYWx1ZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lOjpmaWxlTGlzdE5hbWVGb3JXaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OmZpbGVMaXN0TmFtZUZvcldpZHRoKToKKwogMjAxMS0xMS0wMSAgSnVs
aWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNT
SU9OKDk4NzM4KTogUmVuZGVyVGFibGVTZWN0aW9uOjpyZWNhbGNDZWxscyBkb2VzIG5vdCBwcm9w
ZXJseSBzaHJpbmsgdGhlIFJvd1N0cnVjdCBncmlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9Fbmds
aXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggODE1NWVlOWIwNTA5MGY5YTdlMDYz
NTkzYzhiMjBjMTU1Njg4YjlkZi4uMjQ1ZGFjYjA0NDdjNDVkNGQ1ZWNkYjhiMzI1ZWJkN2I2M2Qz
OGU5ZiAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA5MAp6Y21aM3JvTyF9MzxfJVl1UFFK
Z1NoTz9NS2ZnekVoaCNfXmRnTXB9WUIxMFpTM1Eoa2tBJWhfbU5HQ0NyMEApPUQKbGAzIWxKbFF7
SmBLYGZBSD5nMHJfK0xNSmpNSkNUKERnbU41QTdBPWQ3WGFtcDh3dm1iCgpkZWx0YSAxOAphY21i
UVJpaDAjPzxfJVl1UFI/SXF4NENscGJYQD5nM0pFcz0KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcAppbmRleCA2MjM0MjA2ZmQyNmM2YzlhM2ZiNzBlNzVlMzI5YjNlYTJjY2I4NGEx
Li42NTVlODFlYWRiYzczMTE5YzUwMGI2ZDU1OTcwOTJiMDg1NGYyZTA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTM3Myw4ICszNzMsMTEgQEAgU3RyaW5nIEZpbGVJ
bnB1dFR5cGU6OmRlZmF1bHRUb29sVGlwKCkgY29uc3QKIHsKICAgICBGaWxlTGlzdCogZmlsZUxp
c3QgPSBtX2ZpbGVMaXN0LmdldCgpOwogICAgIHVuc2lnbmVkIGxpc3RTaXplID0gZmlsZUxpc3Qt
Pmxlbmd0aCgpOwotICAgIGlmICghbGlzdFNpemUpCisgICAgaWYgKCFsaXN0U2l6ZSkgeworICAg
ICAgICBpZiAoZWxlbWVudCgpLT5tdWx0aXBsZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZpbGVC
dXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwogICAgICAgICByZXR1cm4gZmlsZUJ1dHRvbk5v
RmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICB9CiAKICAgICBTdHJpbmdCdWlsZGVyIG5hbWVzOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAK
aW5kZXggYWRjODA5ZmZlODI5NzQyNWM5ODUxMzNiZmIzYjg2OWRhNzI0MWY3My4uZTQ1MzMyM2I2
ZDBjMWM0MjkxYWNlYjkxMmYyNTNkN2Y5NDNhNTQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwCkBAIC0xMzYs
NiArMTM2LDExIEBAIFN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmZpbGVCdXR0
b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibm8gZmls
ZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1M
IGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBzZWxlY3RlZCIpOwogfQogCitTdHJpbmcgRGVmYXVsdExv
Y2FsaXphdGlvblN0cmF0ZWd5OjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQorewor
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJubyBmaWxlcyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRp
c3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJl
IHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBtdWx0aXBsZSBmaWxlcyB0byBiZSBzZWxl
Y3RlZCIpOworfQorCiBTdHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpkZWZhdWx0
RGV0YWlsc1N1bW1hcnlUZXh0KCkKIHsKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiRGV0YWls
cyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3Vt
bWFyeT4gY2hpbGQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1
bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVs
dExvY2FsaXphdGlvblN0cmF0ZWd5LmgKaW5kZXggZjExY2U5OTQ1MTAwMTE1YTc3Y2VhYmE2MmFj
NDczMjVjZGRmY2ExNS4uMDkwMGY0Njk5MGU1MDRmNTE4OTk5NDUzZTcwYWIxMjFmYzExZDgzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5n
IGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKTsKICAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0
dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1
dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9u
Tm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKICAgICB2aXJ0dWFsIFN0cmluZyBkZWZhdWx0RGV0YWls
c1N1bW1hcnlUZXh0KCk7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgU3RyaW5nIGNv
cHlJbWFnZVVua25vd25GaWxlTGFiZWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6YXRpb25TdHJhdGVneS5oCmluZGV4IGIyZWFiMTc1ZjgxMDg0MGU5MmY5NmQzODA5MWYy
ZjQzMDcxOGIxZjQuLjNkMWEyYjg0NjMxN2I5NjlkYjA2NzJjMmNmNDJmMjZhNDc2NGVhNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaApAQCAt
NDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNob29z
ZUZpbGVMYWJlbCgpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlTXVs
dGlwbGVGaWxlc0xhYmVsKCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0Zp
bGVTZWxlY3RlZExhYmVsKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0Zp
bGVzU2VsZWN0ZWRMYWJlbCgpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBkZWZhdWx0RGV0YWls
c1N1bW1hcnlUZXh0KCkgPSAwOwogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAppbmRleCBhOTVjZmZmMmMxOWUwNmMyNWJl
NzUzNTQ0ZTU0YjEyYjZjM2U2MThiLi5hNmE0MWFjMzQ5NTMxMDRiYTI5ZTE5MzE0OTFiYjk4OWY3
MmQ0ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNw
cApAQCAtNzksNiArNzksMTEgQEAgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVs
KCkKICAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+ZmlsZUJ1dHRvbk5vRmlsZVNl
bGVjdGVkTGFiZWwoKTsKIH0KIAorU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJl
bCgpCit7CisgICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0Zp
bGVzU2VsZWN0ZWRMYWJlbCgpOworfQorCiBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4
dCgpCiB7CiAgICAgcmV0dXJuIGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmRlZmF1bHREZXRhaWxz
U3VtbWFyeVRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
aAppbmRleCAzMjkzZGE0MTliNDVkMjNjYTgxYWVkZTNjNWI0MTA4NGFhMjlkYzQ2Li5jNDlhZDkx
NTBmY2Q4NzhkZTY3M2Y2OWRmZTA3MjY3YWZkNWIxNWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC00MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOwogICAgIFN0cmlu
ZyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCk7CiAgICAgU3RyaW5nIGZpbGVC
dXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVz
U2VsZWN0ZWRMYWJlbCgpOwogICAgIFN0cmluZyBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7
CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKaW5kZXggMzAwMGYwMmMwNTllM2M3YWUzMjIwZWYz
ZGM1NTUyNjE3OWQ0NzMxZi4uYWU1MzBjMWQ5ZDlmNmJhYTRiNDg5MzRjYWNiMmIxMzhiNzAyYmE5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmlu
Z3NFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJp
bmdzRWZsLmNwcApAQCAtNzgsNiArNzgsMTEgQEAgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxl
Y3RlZExhYmVsKCkKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiTm8gZmlsZSBzZWxlY3Rl
ZCIpOwogfQogCitTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkKK3sKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiTm8gZmlsZXMgc2VsZWN0ZWQiKTsKK30KKwogU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQogewogICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KCJPcGVuIExpbmsgaW4gTmV3IFdpbmRvdyIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCmluZGV4
IDY0Njk3Yjc5YmJhNTM1M2EzZjg4ZTg4YWRiNWFkYjIwMjQ4N2Q2ZWIuLjA3YmVkOGRiM2U5MGVl
NmQyNTM5YTc1ZWQyZTJiZDMyNWZlOTczNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKQEAgLTkxLDYgKzkxLDExIEBAIFN0
cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCiAgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoXygiKE5vbmUpIikpOwogfQogCitTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxl
Y3RlZExhYmVsKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCIoTm9uZSkiKSk7
Cit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCkKIHsK
ICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJPcGVuIExpbmsgaW4gTmV3IF9XaW5kb3ci
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcApp
bmRleCA1ZDcwYjJhMTk3ZTY1NmU4MDAzZWMwYjU3ZDI1MjFmN2E1Zjc5NjM1Li5hZTdlY2RjMTYz
MTRlZDIzMDVlMzliYjk1YzJmYTE1MWNjMGEwODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTcwMCwxMiArNzAwLDE0IEBAIHN0YXRp
YyBib29sIHN0cmluZ0J5QWRvcHRpbmdGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZ2NoYXIqIHN5
c3RlbUZpbGVuYW1lLCBTdHJpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVN0cmluZyBSZW5kZXJU
aGVtZUd0azo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVu
YW1lcywgY29uc3QgRm9udCYgZm9udCwgaW50IHdpZHRoKQorU3RyaW5nIFJlbmRlclRoZW1lR3Rr
OjpmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBj
b25zdCBGb250JiBmb250LCBpbnQgd2lkdGgsIGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpCiB7
CiAgICAgaWYgKHdpZHRoIDw9IDApCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAogICAgIFN0
cmluZyBzdHJpbmcgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOworICAgIGlmICht
dWx0aXBsZUZpbGVzQWxsb3dlZCkKKyAgICAgICAgc3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKCk7CiAKICAgICBpZiAoZmlsZW5hbWVzLnNpemUoKSA9PSAxKSB7CiAgICAg
ICAgIENTdHJpbmcgc3lzdGVtRmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZmls
ZW5hbWVzWzBdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRl
clRoZW1lUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5j
cHAKaW5kZXggODhkMzQ5YjhjNzMyN2E0NDdjYjcyNzJlOTAzOGUzZmZhMGExYWQ2OC4uYzBlOGFj
N2ZiNTMzZTI5NWQ0Yjg1MTQ0ZTg2NjQ4Yjk0ZTMwOTA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKQEAgLTE1NzAsMTQgKzE1NzAsMTggQEAgZG91
YmxlIFJlbmRlclRoZW1lUXQ6OmNhcmV0QmxpbmtJbnRlcnZhbCgpIGNvbnN0CiAgICAgcmV0dXJu
ICBRQXBwbGljYXRpb246OmN1cnNvckZsYXNoVGltZSgpIC8gMTAwMC4wIC8gMi4wOwogfQogCi1T
dHJpbmcgUmVuZGVyVGhlbWVRdDo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYgZm9udCwgaW50IHdpZHRoKQorU3RyaW5nIFJl
bmRlclRoZW1lUXQ6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBm
aWxlbmFtZXMsIGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVz
QWxsb3dlZCkKIHsKICAgICBpZiAod2lkdGggPD0gMCkKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogCiAgICAgU3RyaW5nIHN0cmluZzsKLSAgICBpZiAoZmlsZW5hbWVzLmlzRW1wdHkoKSkKLSAg
ICAgICAgc3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICBpZiAo
ZmlsZW5hbWVzLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAobXVsdGlwbGVGaWxlc0FsbG93ZWQp
CisgICAgICAgICAgICBzdHJpbmcgPSBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVj
dGVkTGFiZWwoKTsKKyAgICB9CiAgICAgZWxzZSBpZiAoZmlsZW5hbWVzLnNpemUoKSA9PSAxKSB7
CiAgICAgICAgIFN0cmluZyBmbmFtZSA9IGZpbGVuYW1lc1swXTsKICAgICAgICAgUUZvbnRNZXRy
aWNzIGZtKGZvbnQuZm9udCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9M
b2NhbGl6ZWRTdHJpbmdzV3guY3BwCmluZGV4IGUxYWQyZGM0YzlkMWVmZmQzMGQ2NzdkOGZiZmQ5
OGJmODkwMjhkNTUuLjRkMWUxOTcyOTYxZTFhOTdlNzc4NWRjYzg5ZmZiNjQwNDI1NzNlOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNw
cApAQCAtNzcsNiArNzcsMTEgQEAgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVs
KCkKICAgICByZXR1cm4gU3RyaW5nKCJObyBmaWxlIHNlbGVjdGVkIik7IAogfQogCitTdHJpbmcg
ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkgCit7IAorICAgIHJldHVybiBTdHJpbmco
Ik5vIGZpbGVzIHNlbGVjdGVkIik7IAorfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Bl
bkxpbmtJbk5ld1dpbmRvdygpIAogeyAKICAgICByZXR1cm4gU3RyaW5nKCJPcGVuIExpbmsgaW4g
TmV3IFdpbmRvdyIpOyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wuY3BwCmluZGV4IDg1Yjk0ZDZjNzA5MzZlODcxMmIzOTgyY2UzMDA4
YzlkM2Y4MzVmMmMuLjZmNjU3NmQ1ZmQ4OWI5ZGEzNDRjYjIxNGQzZTU1OTdhNTFjMjUxMTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250
cm9sLmNwcApAQCAtMjI4LDcgKzIyOCw3IEBAIFN0cmluZyBSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDo6ZmlsZVRleHRWYWx1ZSgpIGNvbnN0CiB7CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQg
PSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSgpKTsKICAgICBBU1NFUlQoaW5w
dXQtPmZpbGVzKCkpOwotICAgIHJldHVybiB0aGVtZSgpLT5maWxlTGlzdE5hbWVGb3JXaWR0aChp
bnB1dC0+ZmlsZXMoKS0+cGF0aHMoKSwgc3R5bGUoKS0+Zm9udCgpLCBtYXhGaWxlbmFtZVdpZHRo
KCkpOworICAgIHJldHVybiB0aGVtZSgpLT5maWxlTGlzdE5hbWVGb3JXaWR0aChpbnB1dC0+Zmls
ZXMoKS0+cGF0aHMoKSwgc3R5bGUoKS0+Zm9udCgpLCBtYXhGaWxlbmFtZVdpZHRoKCksIGlucHV0
LT5tdWx0aXBsZSgpKTsKIH0KICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IDBhMmZmNGRmY2E5ZjZkNmUwMTY4
NzFkZTM1MGUwZWMyODZiMTMxOGIuLjRlZjk1MzZmMjFhOWJkMGM5NjAyZDE5MTBiZDNhNjUzZmM1
MTdhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMTEw
MSwxNCArMTEwMSwxOCBAQCBDb2xvciBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoKQogICAg
IHJldHVybiBjdXN0b21Gb2N1c1JpbmdDb2xvcigpLmlzVmFsaWQoKSA/IGN1c3RvbUZvY3VzUmlu
Z0NvbG9yKCkgOiBkZWZhdWx0VGhlbWUoKS0+cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpOwogfQog
Ci1TdHJpbmcgUmVuZGVyVGhlbWU6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkKK1N0cmluZyBS
ZW5kZXJUaGVtZTo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZp
bGVuYW1lcywgY29uc3QgRm9udCYgZm9udCwgaW50IHdpZHRoLCBib29sIG11bHRpcGxlRmlsZXNB
bGxvd2VkKQogewogICAgIGlmICh3aWR0aCA8PSAwKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAKICAgICBTdHJpbmcgc3RyaW5nOwotICAgIGlmIChmaWxlbmFtZXMuaXNFbXB0eSgpKQotICAg
ICAgICBzdHJpbmcgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOworICAgIGlmIChm
aWxlbmFtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChtdWx0aXBsZUZpbGVzQWxsb3dlZCkK
KyAgICAgICAgICAgIHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBzdHJpbmcgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0
ZWRMYWJlbCgpOworICAgIH0KICAgICBlbHNlIGlmIChmaWxlbmFtZXMuc2l6ZSgpID09IDEpCiAg
ICAgICAgIHN0cmluZyA9IHBhdGhHZXRGaWxlTmFtZShmaWxlbmFtZXNbMF0pOwogICAgIGVsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggM2NlMmFiMmQzOTJkYzkx
ZmIzMjQ3YWU5NDJhMTUzMzcyY2Y0ZjgxOS4uNDNhZWMyM2Q3MDhlMTg0M2Y0MzM1MTNiOWM0ZmJl
ZDg5MWM3ZGQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTIw
Nyw3ICsyMDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNob3dQbGFjZWhv
bGRlcldoZW5Gb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkSGF2ZVNwaW5CdXR0b24oSFRNTElucHV0RWxlbWVudCopIGNvbnN0OwogCi0gICAg
dmlydHVhbCBTdHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGZpbGVuYW1lcywgY29uc3QgRm9udCYsIGludCB3aWR0aCk7CisgICAgdmlydHVhbCBTdHJpbmcg
ZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29u
c3QgRm9udCYsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dlZCk7CiAKIHByb3Rl
Y3RlZDoKICAgICAvLyBUaGUgcGxhdGZvcm0gc2VsZWN0aW9uIGNvbG9yLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCAyZDcyYjgxZjRmZjI3NjU5Njc0ZGZj
ZWUyMzA2ZjAzNzlhYTBiMzIzLi5jODdkZGVjNjBkOTc5MjRlZTliZWQzY2NlMTYzY2NhM2NmMzNl
MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtMTc3
LDcgKzE3Nyw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd1BsYWNl
aG9sZGVyV2hlbkZvY3VzZWQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBj
b25zdCBGb250JiwgaW50IHdpZHRoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmaWxlTGlzdE5hbWVG
b3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBGb250JiwgaW50
IHdpZHRoLCBib29sIG11bHRpcGxlRmlsZXNBbGxvd2VkKTsKIAogICAgIEludFJlY3QgaW5mbGF0
ZVJlY3QoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmLCBjb25zdCBpbnQqIG1hcmdpbnMs
IGZsb2F0IHpvb21MZXZlbCA9IDEuMGYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMWQ1MmI4YTZiY2U4YTE3MTFmNjgwZWY4NjMxY2Jh
ZTAyMWY4OTEyMS4uOTkyOGUxODdhODZiMjc0NmJlODExOTkwMTkxMmQ4ZGU4MDk3ZWY1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjA4NSwxNCAr
MjA4NSwxOCBAQCBOU1NsaWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYlZlcnRp
Y2FsKCkgY29uc3QKICAgICByZXR1cm4gbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpOwogfQog
Ci1TdHJpbmcgUmVuZGVyVGhlbWVNYWM6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkKK1N0cmlu
ZyBSZW5kZXJUaGVtZU1hYzo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYgZm9udCwgaW50IHdpZHRoLCBib29sIG11bHRpcGxl
RmlsZXNBbGxvd2VkKQogewogICAgIGlmICh3aWR0aCA8PSAwKQogICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CiAKICAgICBTdHJpbmcgc3RyVG9UcnVuY2F0ZTsKLSAgICBpZiAoZmlsZW5hbWVzLmlz
RW1wdHkoKSkKLSAgICAgICAgc3RyVG9UcnVuY2F0ZSA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3Rl
ZExhYmVsKCk7CisgICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKG11
bHRpcGxlRmlsZXNBbGxvd2VkKQorICAgICAgICAgICAgc3RyVG9UcnVuY2F0ZSA9IGZpbGVCdXR0
b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzdHJU
b1RydW5jYXRlID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICB9CiAgICAg
ZWxzZSBpZiAoZmlsZW5hbWVzLnNpemUoKSA9PSAxKQogICAgICAgICBzdHJUb1RydW5jYXRlID0g
W1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBkaXNwbGF5TmFtZUF0UGF0aDooZmlsZW5h
bWVzWzBdKV07CiAgICAgZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113257</attachid>
            <date>2011-11-01 16:45:15 -0700</date>
            <delta_ts>2011-11-01 17:59:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71319-20111101164547.patch</filename>
            <type>text/plain</type>
            <size>22222</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjNmY2U2OTIxM2Y2Mjdi
NWFlYjUxMDc0N2ViNDU1MTFjMzE0NTdhLi4xM2Q1YjZiZTRmZjdiZTA1NzZiZGI3Nzk1ZmU3MWIy
ZDhlYWY3NTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMTEtMDEgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIDxpbnB1dD1maWxlIG11bHRpcGxlPiBk
ZWZhdWx0IHRleHQgdXNlcyBzaW5ndWxhciBpbnN0ZWFkIG9mIHBsdXJhbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzEwMzc5MDIxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIGEgbmV3IG1ldGhvZCB0byByZXR1cm4gdGhlIGxhYmVsIHRleHQg
Zm9yIGEgZmlsZSB1cGxvYWQgY29udHJvbCB0aGF0CisgICAgICAgIGFsbG93cyBtdWx0aXBsZSBm
aWxlcy4gTmVlZGVkIHRvIGV4dGVuZCB0aGUgUmVuZGVyVGhlbWUgZnVuY3Rpb24gdG8gcGFzcyBk
b3duCisgICAgICAgIGEgYm9vbGVhbiByZXByZXNlbnRpbmcgd2hldGhlciBtdWx0aXBsZSBmaWxl
cyBhcmUgYWxsb3dlZCBpbiB0aGUgZmlsZSBsaXN0LgorCisgICAgICAgICogRW5nbGlzaC5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCk6CisgICAg
ICAgICogcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6ZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NF
ZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVs
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwpOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUd0azo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgpOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L1JlbmRlclRoZW1lUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6Zmls
ZUxpc3ROYW1lRm9yV2lkdGgpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmlu
Z3NXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFi
ZWwpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6ZmlsZVRleHRWYWx1ZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lOjpmaWxlTGlzdE5hbWVGb3JXaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OmZpbGVMaXN0TmFtZUZvcldpZHRoKToKKwogMjAxMS0xMS0wMSAgSnVs
aWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNT
SU9OKDk4NzM4KTogUmVuZGVyVGFibGVTZWN0aW9uOjpyZWNhbGNDZWxscyBkb2VzIG5vdCBwcm9w
ZXJseSBzaHJpbmsgdGhlIFJvd1N0cnVjdCBncmlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IGU1YjRmNGZmMTMxMzIxY2JkMzBjMWQzMzI0YzNlYmUwZDI0NTZmNmQuLmM2MDkzY2JhMDJk
ZGU3MDAzNjYwYTI0Y2M1YmFjYzAwYjYxZjRmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTEtMDEgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29t
PgorCisgICAgICAgIDxpbnB1dD1maWxlIG11bHRpcGxlPiBkZWZhdWx0IHRleHQgdXNlcyBzaW5n
dWxhciBpbnN0ZWFkIG9mIHBsdXJhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzEzMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzc5MDIxPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL0xv
Y2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKToKKwogMjAxMS0xMS0wMSAgQWxvayBQcml5YWRhcnNoaSAgPGFsb2twQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSb2xsIGNocm9taXVtIERFUFMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDNmYTcyZGEyMjY3YjljZDFiN2ZkZjIwODA3Y2EzYThlNTFhNmVhY2EuLjMzNDliMTg3ZDJm
ODY2MjgwYjYyYTU5ZDJhYjFlZGM4YTRkNDUxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTEtMTEtMDEgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAg
IDxpbnB1dD1maWxlIG11bHRpcGxlPiBkZWZhdWx0IHRleHQgdXNlcyBzaW5ndWxhciBpbnN0ZWFk
IG9mIHBsdXJhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzEzMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzc5MDIxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKwogMjAxMS0xMS0wMSAgU2ltb24gSGF1c21hbm4g
IDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIEZpeCBidWls
ZCBvZiBXZWJLaXRUZXN0UnVubmVyIHdpdGggRUxGIHN5bWJvbCB2aXNpYmlsaXR5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2Uv
Q2hhbmdlTG9nCmluZGV4IGM4MDU1NjgxYmI5ZTNkMzM2NjM3MjMwNjFlNjNjNWQxZDZiNmNiZmUu
LmIyZDYxZmJjMGU1ZDRkNmI2ZWVhODYzZmQzMWE5YmRiMjZhZTllMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMDEgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgorCisgICAgICAgIDxpbnB1dD1maWxlIG11bHRpcGxlPiBkZWZhdWx0IHRleHQgdXNl
cyBzaW5ndWxhciBpbnN0ZWFkIG9mIHBsdXJhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzc5
MDIxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuY3BwOgorICAgICAgICAoUGxh
dGZvcm1TdHJhdGVnaWVzV2luQ0U6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaDoKKwogMjAx
MS0xMC0yOCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZW5hbWUgYSBudW1iZXIgb2YgbWV0aG9kcyBtZW50aW9uaW5nIEphdmFTY3JpcHQgdG8ganVz
dCBTY3JpcHQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2Nh
bGl6YWJsZS5zdHJpbmdzCmluZGV4IDgxNTVlZTliMDUwOTBmOWE3ZTA2MzU5M2M4YjIwYzE1NTY4
OGI5ZGYuLjI0NWRhY2IwNDQ3YzQ1ZDRkNWVjZGI4YjMyNWViZDdiNjNkMzhlOWYgMTAwNjQ0CkdJ
VCBiaW5hcnkgcGF0Y2gKZGVsdGEgOTAKemNtWjNyb08hfTM8XyVZdVBRSmdTaE8/TUtmZ3pFaGgj
X15kZ01wfVlCMTBaUzNRKGtrQSVoX21OR0NDcjBAKT1ECmxgMyFsSmxRe0pgS2BmQUg+ZzByXytM
TUpqTUpDVChEZ21ONUE3QT1kN1hhbXA4d3ZtYgoKZGVsdGEgMTgKYWNtYlFSaWgwIz88XyVZdVBS
P0lxeDRDbHBiWEA+ZzNKRXM9CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5k
ZXggNjIzNDIwNmZkMjZjNmM5YTNmYjcwZTc1ZTMyOWIzZWEyY2NiODRhMS4uNjU1ZTgxZWFkYmM3
MzExOWM1MDBiNmQ1NTk3MDkyYjA4NTRmMmUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1
dFR5cGUuY3BwCkBAIC0zNzMsOCArMzczLDExIEBAIFN0cmluZyBGaWxlSW5wdXRUeXBlOjpkZWZh
dWx0VG9vbFRpcCgpIGNvbnN0CiB7CiAgICAgRmlsZUxpc3QqIGZpbGVMaXN0ID0gbV9maWxlTGlz
dC5nZXQoKTsKICAgICB1bnNpZ25lZCBsaXN0U2l6ZSA9IGZpbGVMaXN0LT5sZW5ndGgoKTsKLSAg
ICBpZiAoIWxpc3RTaXplKQorICAgIGlmICghbGlzdFNpemUpIHsKKyAgICAgICAgaWYgKGVsZW1l
bnQoKS0+bXVsdGlwbGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmaWxlQnV0dG9uTm9GaWxlc1Nl
bGVjdGVkTGFiZWwoKTsKICAgICAgICAgcmV0dXJuIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExh
YmVsKCk7CisgICAgfQogCiAgICAgU3RyaW5nQnVpbGRlciBuYW1lczsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwCmluZGV4IGFkYzgwOWZm
ZTgyOTc0MjVjOTg1MTMzYmZiM2I4NjlkYTcyNDFmNzMuLmU0NTMzMjNiNmQwYzFjNDI5MWFjZWI5
MTJmMjUzZDdmOTQzYTU0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Rl
ZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcApAQCAtMTM2LDYgKzEzNiwxMSBAQCBT
dHJpbmcgRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5OjpmaWxlQnV0dG9uTm9GaWxlU2VsZWN0
ZWRMYWJlbCgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5vIGZpbGUgc2VsZWN0ZWQiLCAi
dGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5v
IGZpbGUgaXMgc2VsZWN0ZWQiKTsKIH0KIAorU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJh
dGVneTo6ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkKK3sKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygibm8gZmlsZXMgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUg
YnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGVzIGFyZSBzZWxlY3RlZCBhbmQg
dGhlIGJ1dHRvbiBhbGxvd3MgbXVsdGlwbGUgZmlsZXMgdG8gYmUgc2VsZWN0ZWQiKTsKK30KKwog
U3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6ZGVmYXVsdERldGFpbHNTdW1tYXJ5
VGV4dCgpCiB7CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRldGFpbHMiLCAidGV4dCB0byBk
aXNwbGF5IGluIDxkZXRhaWxzPiB0YWcgd2hlbiBpdCBoYXMgbm8gPHN1bW1hcnk+IGNoaWxkIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9u
U3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneS5oCmluZGV4IGYxMWNlOTk0NTEwMDExNWE3N2NlYWJhNjJhYzQ3MzI1Y2RkZmNhMTUu
LjA5MDBmNDY5OTBlNTA0ZjUxODk5OTQ1M2U3MGFiMTIxZmMxMWQ4MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5oCkBA
IC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uQ2hv
b3NlRmlsZUxhYmVsKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZU11bHRp
cGxlRmlsZXNMYWJlbCgpOwogICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxl
Y3RlZExhYmVsKCk7CisgICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3Rl
ZExhYmVsKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgp
OwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIFN0cmluZyBjb3B5SW1hZ2VVbmtub3du
RmlsZUxhYmVsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
YXRpb25TdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3Ry
YXRlZ3kuaAppbmRleCBiMmVhYjE3NWY4MTA4NDBlOTJmOTZkMzgwOTFmMmY0MzA3MThiMWY0Li4z
ZDFhMmI4NDYzMTdiOTY5ZGIwNjcyYzJjZjQyZjI2YTQ3NjRlYTQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKQEAgLTQ0LDYgKzQ0LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKSA9
IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJl
bCgpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJl
bCgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFi
ZWwoKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgp
ID0gMDsKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHAKaW5kZXggYTk1Y2ZmZjJjMTllMDZjMjViZTc1MzU0NGU1NGIxMmI2
YzNlNjE4Yi4uYTZhNDFhYzM0OTUzMTA0YmEyOWUxOTMxNDkxYmI5ODlmNzJkNGYzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTc5LDYgKzc5
LDExIEBAIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCiAgICAgcmV0dXJu
IGxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7
CiB9CiAKK1N0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQoreworICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5maWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFi
ZWwoKTsKK30KKwogU3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKQogewogICAgIHJl
dHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5kZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggMzI5M2Rh
NDE5YjQ1ZDIzY2E4MWFlZGUzYzViNDEwODRhYTI5ZGM0Ni4uYzQ5YWQ5MTUwZmNkODc4ZGU2NzNm
NjlkZmUwNzI2N2FmZDViMTViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaApAQCAtNDAsNiArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3Ry
aW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKTsKICAgICBTdHJpbmcgZmlsZUJ1dHRvbkNo
b29zZU11bHRpcGxlRmlsZXNMYWJlbCgpOwogICAgIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2Vs
ZWN0ZWRMYWJlbCgpOworICAgIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwo
KTsKICAgICBTdHJpbmcgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpOwogCiAjaWYgUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXpl
ZFN0cmluZ3NFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0
cmluZ3NFZmwuY3BwCmluZGV4IDMwMDBmMDJjMDU5ZTNjN2FlMzIyMGVmM2RjNTU1MjYxNzlkNDcz
MWYuLmFlNTMwYzFkOWQ5ZjZiYWE0YjQ4OTM0Y2FjYjJiMTM4YjcwMmJhOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKQEAg
LTc4LDYgKzc4LDExIEBAIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCiAg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk5vIGZpbGUgc2VsZWN0ZWQiKTsKIH0KIAorU3Ry
aW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCit7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoIk5vIGZpbGVzIHNlbGVjdGVkIik7Cit9CisKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiT3BlbiBMaW5rIGluIE5ldyBXaW5kb3ciKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAppbmRleCA2NDY5N2I3OWJiYTUz
NTNhM2Y4OGU4OGFkYjVhZGIyMDI0ODdkNmViLi4wN2JlZDhkYjNlOTBlZTZkMjUzOWE3NWVkMmUy
YmQzMjVmZTk3MzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9j
YWxpemVkU3RyaW5nc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xv
Y2FsaXplZFN0cmluZ3NHdGsuY3BwCkBAIC05MSw2ICs5MSwxMSBAQCBTdHJpbmcgZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWwoKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIihO
b25lKSIpKTsKIH0KIAorU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiKE5vbmUpIikpOworfQorCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoXygiT3BlbiBMaW5rIGluIE5ldyBfV2luZG93IikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKaW5kZXggNWQ3MGIyYTE5
N2U2NTZlODAwM2VjMGI1N2QyNTIxZjdhNWY3OTYzNS4uYWU3ZWNkYzE2MzE0ZWQyMzA1ZTM5YmI5
NWMyZmExNTFjYzBhMDg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuY3BwCkBAIC03MDAsMTIgKzcwMCwxNCBAQCBzdGF0aWMgYm9vbCBzdHJpbmdC
eUFkb3B0aW5nRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGdjaGFyKiBzeXN0ZW1GaWxlbmFtZSwg
U3RyaQogICAgIHJldHVybiB0cnVlOwogfQogCi1TdHJpbmcgUmVuZGVyVGhlbWVHdGs6OmZpbGVM
aXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZv
bnQmIGZvbnQsIGludCB3aWR0aCkKK1N0cmluZyBSZW5kZXJUaGVtZUd0azo6ZmlsZUxpc3ROYW1l
Rm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYgZm9u
dCwgaW50IHdpZHRoLCBib29sIG11bHRpcGxlRmlsZXNBbGxvd2VkKQogewogICAgIGlmICh3aWR0
aCA8PSAwKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICBTdHJpbmcgc3RyaW5nID0g
ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICBpZiAobXVsdGlwbGVGaWxlc0Fs
bG93ZWQpCisgICAgICAgIHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgp
OwogCiAgICAgaWYgKGZpbGVuYW1lcy5zaXplKCkgPT0gMSkgewogICAgICAgICBDU3RyaW5nIHN5
c3RlbUZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGZpbGVuYW1lc1swXSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCmluZGV4IDg4ZDM0
OWI4YzczMjdhNDQ3Y2I3MjcyZTkwMzhlM2ZmYTBhMWFkNjguLmMwZThhYzdmYjUzM2UyOTVkNGI4
NTE0NGU4NjY0OGI5NGUzMDkwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1JlbmRlclRoZW1lUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Jl
bmRlclRoZW1lUXQuY3BwCkBAIC0xNTcwLDE0ICsxNTcwLDE4IEBAIGRvdWJsZSBSZW5kZXJUaGVt
ZVF0OjpjYXJldEJsaW5rSW50ZXJ2YWwoKSBjb25zdAogICAgIHJldHVybiAgUUFwcGxpY2F0aW9u
OjpjdXJzb3JGbGFzaFRpbWUoKSAvIDEwMDAuMCAvIDIuMDsKIH0KIAotU3RyaW5nIFJlbmRlclRo
ZW1lUXQ6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFt
ZXMsIGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkKK1N0cmluZyBSZW5kZXJUaGVtZVF0Ojpm
aWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25z
dCBGb250JiBmb250LCBpbnQgd2lkdGgsIGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpCiB7CiAg
ICAgaWYgKHdpZHRoIDw9IDApCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAogICAgIFN0cmlu
ZyBzdHJpbmc7Ci0gICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpCi0gICAgICAgIHN0cmluZyA9
IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgaWYgKGZpbGVuYW1lcy5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgaWYgKG11bHRpcGxlRmlsZXNBbGxvd2VkKQorICAgICAgICAgICAg
c3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7Cisg
ICAgfQogICAgIGVsc2UgaWYgKGZpbGVuYW1lcy5zaXplKCkgPT0gMSkgewogICAgICAgICBTdHJp
bmcgZm5hbWUgPSBmaWxlbmFtZXNbMF07CiAgICAgICAgIFFGb250TWV0cmljcyBmbShmb250LmZv
bnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRT
dHJpbmdzV3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5n
c1d4LmNwcAppbmRleCBlMWFkMmRjNGM5ZDFlZmZkMzBkNjc3ZDhmYmZkOThiZjg5MDI4ZDU1Li40
ZDFlMTk3Mjk2MWUxYTk3ZTc3ODVkY2M4OWZmYjY0MDQyNTczZTk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKQEAgLTc3LDYgKzc3
LDExIEBAIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCiAgICAgcmV0dXJu
IFN0cmluZygiTm8gZmlsZSBzZWxlY3RlZCIpOyAKIH0KIAorU3RyaW5nIGZpbGVCdXR0b25Ob0Zp
bGVzU2VsZWN0ZWRMYWJlbCgpIAoreyAKKyAgICByZXR1cm4gU3RyaW5nKCJObyBmaWxlcyBzZWxl
Y3RlZCIpOyAKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5k
b3coKSAKIHsgCiAgICAgcmV0dXJuIFN0cmluZygiT3BlbiBMaW5rIGluIE5ldyBXaW5kb3ciKTsg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250
cm9sLmNwcAppbmRleCA4NWI5NGQ2YzcwOTM2ZTg3MTJiMzk4MmNlMzAwOGM5ZDNmODM1ZjJjLi42
ZjY1NzZkNWZkODliOWRhMzQ0Y2IyMTRkM2U1NTk3YTUxYzI1MTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTIy
OCw3ICsyMjgsNyBAQCBTdHJpbmcgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmZpbGVUZXh0VmFs
dWUoKSBjb25zdAogewogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7CiAgICAgQVNTRVJUKGlucHV0LT5maWxlcygpKTsK
LSAgICByZXR1cm4gdGhlbWUoKS0+ZmlsZUxpc3ROYW1lRm9yV2lkdGgoaW5wdXQtPmZpbGVzKCkt
PnBhdGhzKCksIHN0eWxlKCktPmZvbnQoKSwgbWF4RmlsZW5hbWVXaWR0aCgpKTsKKyAgICByZXR1
cm4gdGhlbWUoKS0+ZmlsZUxpc3ROYW1lRm9yV2lkdGgoaW5wdXQtPmZpbGVzKCktPnBhdGhzKCks
IHN0eWxlKCktPmZvbnQoKSwgbWF4RmlsZW5hbWVXaWR0aCgpLCBpbnB1dC0+bXVsdGlwbGUoKSk7
CiB9CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcAppbmRleCAwYTJmZjRkZmNhOWY2ZDZlMDE2ODcxZGUzNTBlMGVjMjg2
YjEzMThiLi40ZWY5NTM2ZjIxYTliZDBjOTYwMmQxOTEwYmQzYTY1M2ZjNTE3YTAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTExMDEsMTQgKzExMDEsMTgg
QEAgQ29sb3IgUmVuZGVyVGhlbWU6OmZvY3VzUmluZ0NvbG9yKCkKICAgICByZXR1cm4gY3VzdG9t
Rm9jdXNSaW5nQ29sb3IoKS5pc1ZhbGlkKCkgPyBjdXN0b21Gb2N1c1JpbmdDb2xvcigpIDogZGVm
YXVsdFRoZW1lKCktPnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAotU3RyaW5nIFJlbmRl
clRoZW1lOjpmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5h
bWVzLCBjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgpCitTdHJpbmcgUmVuZGVyVGhlbWU6OmZp
bGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0
IEZvbnQmIGZvbnQsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dlZCkKIHsKICAg
ICBpZiAod2lkdGggPD0gMCkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgU3RyaW5n
IHN0cmluZzsKLSAgICBpZiAoZmlsZW5hbWVzLmlzRW1wdHkoKSkKLSAgICAgICAgc3RyaW5nID0g
ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICBpZiAoZmlsZW5hbWVzLmlzRW1w
dHkoKSkgeworICAgICAgICBpZiAobXVsdGlwbGVGaWxlc0FsbG93ZWQpCisgICAgICAgICAgICBz
dHJpbmcgPSBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgc3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAg
ICB9CiAgICAgZWxzZSBpZiAoZmlsZW5hbWVzLnNpemUoKSA9PSAxKQogICAgICAgICBzdHJpbmcg
PSBwYXRoR2V0RmlsZU5hbWUoZmlsZW5hbWVzWzBdKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDNjZTJhYjJkMzkyZGM5MWZiMzI0N2FlOTQyYTE1
MzM3MmNmNGY4MTkuLjQzYWVjMjNkNzA4ZTE4NDNmNDMzNTEzYjljNGZiZWQ4OTFjN2RkOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0yMDcsNyArMjA3LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93UGxhY2Vob2xkZXJXaGVuRm9jdXNl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEhhdmVT
cGluQnV0dG9uKEhUTUxJbnB1dEVsZW1lbnQqKSBjb25zdDsKIAotICAgIHZpcnR1YWwgU3RyaW5n
IGZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNv
bnN0IEZvbnQmLCBpbnQgd2lkdGgpOworICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVMaXN0TmFtZUZv
cldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmLCBpbnQg
d2lkdGgsIGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpOwogCiBwcm90ZWN0ZWQ6CiAgICAgLy8g
VGhlIHBsYXRmb3JtIHNlbGVjdGlvbiBjb2xvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLmgKaW5kZXggMmQ3MmI4MWY0ZmYyNzY1OTY3NGRmY2VlMjMwNmYwMzc5YWEw
YjMyMy4uYzg3ZGRlYzYwZDk3OTI0ZWU5YmVkM2NjZTE2M2NjYTNjZjMzZTEwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTE3Nyw3ICsxNzcsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNob3dQbGFjZWhvbGRlcldoZW5Gb2N1
c2VkKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZUxpc3ROYW1l
Rm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYsIGlu
dCB3aWR0aCk7CisgICAgdmlydHVhbCBTdHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYsIGludCB3aWR0aCwgYm9vbCBt
dWx0aXBsZUZpbGVzQWxsb3dlZCk7CiAKICAgICBJbnRSZWN0IGluZmxhdGVSZWN0KGNvbnN0IElu
dFJlY3QmLCBjb25zdCBJbnRTaXplJiwgY29uc3QgaW50KiBtYXJnaW5zLCBmbG9hdCB6b29tTGV2
ZWwgPSAxLjBmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tCmluZGV4IDFkNTJiOGE2YmNlOGExNzExZjY4MGVmODYzMWNiYWUwMjFmODkxMjEuLjk5
MjhlMTg3YTg2YjI3NDZiZTgxMTk5MDE5MTJkOGRlODA5N2VmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTIwODUsMTQgKzIwODUsMTggQEAgTlNT
bGlkZXJDZWxsKiBSZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJWZXJ0aWNhbCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKTsKIH0KIAotU3RyaW5nIFJlbmRl
clRoZW1lTWFjOjpmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmls
ZW5hbWVzLCBjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgpCitTdHJpbmcgUmVuZGVyVGhlbWVN
YWM6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMs
IGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dlZCkK
IHsKICAgICBpZiAod2lkdGggPD0gMCkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAg
U3RyaW5nIHN0clRvVHJ1bmNhdGU7Ci0gICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpCi0gICAg
ICAgIHN0clRvVHJ1bmNhdGUgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOworICAg
IGlmIChmaWxlbmFtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChtdWx0aXBsZUZpbGVzQWxs
b3dlZCkKKyAgICAgICAgICAgIHN0clRvVHJ1bmNhdGUgPSBmaWxlQnV0dG9uTm9GaWxlc1NlbGVj
dGVkTGFiZWwoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RyVG9UcnVuY2F0ZSA9IGZp
bGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgfQogICAgIGVsc2UgaWYgKGZpbGVu
YW1lcy5zaXplKCkgPT0gMSkKICAgICAgICAgc3RyVG9UcnVuY2F0ZSA9IFtbTlNGaWxlTWFuYWdl
ciBkZWZhdWx0TWFuYWdlcl0gZGlzcGxheU5hbWVBdFBhdGg6KGZpbGVuYW1lc1swXSldOwogICAg
IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXplZFN0
cmluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5j
cHAKaW5kZXggM2Q1NDdlYmI3ODBjNDY0MmUyY2QzZWRhYTA3MDU0NDQxN2M0NWVhZi4uYzMwNGVm
YjdmNDUxNTQzMGI1N2ViYjQ3MDVmOGMwZDFkYzBmNTlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTEwMiw2ICsxMDIsMTEgQEAg
U3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKICAgICByZXR1cm4gcXVlcnko
V2ViTG9jYWxpemVkU3RyaW5nOjpGaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCk7CiB9CiAK
K1N0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQoreworICAgIHJldHVybiBx
dWVyeShXZWJMb2NhbGl6ZWRTdHJpbmc6OkZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKTsK
K30KKwogU3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCiB7CiAgICAgcmV0
dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6U2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNU
ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCBhNzc1ZjMxN2Y2MDUxYTVmYzVmMjZjNzBiOGRl
YjdmYjdhZDAyZmJhLi41NjNiZDYwMDAwZGM4YWNkMmZiNjViNzM1MTI4MDdmNWEzMDE4NTU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0xODMsNiArMTgzLDExIEBAIFN0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJObyBmaWxlIHNlbGVjdGVk
IiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hl
biBubyBmaWxlIGlzIHNlbGVjdGVkIik7CiB9CiAKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpCit7CisgICAgcmV0dXJuIFFDb3Jl
QXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiTm8gZmlsZXMgc2VsZWN0ZWQiLCAi
dGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5v
IGZpbGVzIGFyZSBzZWxlY3RlZCBhbmQgdGhlIGJ1dHRvbiBhbGxvd3MgbXVsdGlwbGUgZmlsZXMg
dG8gYmUgc2VsZWN0ZWQiKTsKK30KKwogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6ZGVm
YXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCiB7CiAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRGV0YWlscyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRl
dGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3VtbWFyeT4gY2hpbGQiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CmluZGV4IDkzMTUyOTE3N2YzZDkzMzA1ZDczNmQ2MjQxZDE4NjNlMDJmN2M4ODYuLmNkNGQ1MTgz
YWQwZTc0MWU1NWZmNzAxMmZkM2U1MjZhNGFhYThmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNjYs
NiArNjYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1dHRvbkNo
b29zZUZpbGVMYWJlbCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1dHRvbkNob29z
ZU11bHRpcGxlRmlsZXNMYWJlbCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGZpbGVCdXR0
b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZGVmYXVs
dERldGFpbHNTdW1tYXJ5VGV4dCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVz
V2luQ0UuY3BwCmluZGV4IDAzOTBlMmYzZmY0OWQ0OTM0NWM3YmJiZDg4ZGEzYWU0ZDk4YzFkOTku
LjkzYWRmZmU2NDRhNmNmZTVkOGQ5ZDhjMzQ2YTUyNmI5NTZlOWQwNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJh
dGVnaWVzV2luQ0UuY3BwCkBAIC0xNDksNiArMTQ5LDExIEBAIFN0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNXaW5DRTo6ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKQogICAgIHJldHVybiBV
SV9TVFJJTkcoIm5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0
dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQiKTsKIH0KIAor
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVk
TGFiZWwoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIm5vIGZpbGVzIHNlbGVjdGVkIiwgInRl
eHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBm
aWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVzIHRv
IGJlIHNlbGVjdGVkIik7Cit9CisKIFN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6ZGVm
YXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiRGV0YWls
cyIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gPGRldGFpbHM+IHRhZyB3aGVuIGl0IGhhcyBubyA8c3Vt
bWFyeT4gY2hpbGQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaAppbmRleCAyZjA1MjQ1M2VjMTY0
NmFhODEyZDAxM2RjYzNiZWRkODczNGRhYjY1Li5iYmFmMDdiODhhNzM5MzI3NmJkZTJiMGMzNzgy
YTdhODlmYTI2NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCkBAIC01OSw2ICs1OSw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxh
YmVsKCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVG
aWxlc0xhYmVsKCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2Vs
ZWN0ZWRMYWJlbCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBkZWZhdWx0RGV0YWlsc1N1
bW1hcnlUZXh0KCk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113271</attachid>
            <date>2011-11-01 18:00:00 -0700</date>
            <delta_ts>2011-12-01 23:37:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71319-20111101180032.patch</filename>
            <type>text/plain</type>
            <size>23720</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjNmY2U2OTIxM2Y2Mjdi
NWFlYjUxMDc0N2ViNDU1MTFjMzE0NTdhLi4yNWY2ZTdiYTQ1YTZmYjJmNDc0ZWY1ZWRmOTVkMDIx
MzQ1NWE4YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTEtMTEtMDEgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIDxpbnB1dD1maWxlIG11bHRpcGxlPiBk
ZWZhdWx0IHRleHQgdXNlcyBzaW5ndWxhciBpbnN0ZWFkIG9mIHBsdXJhbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzEwMzc5MDIxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIGEgbmV3IG1ldGhvZCB0byByZXR1cm4gdGhlIGxhYmVsIHRleHQg
Zm9yIGEgZmlsZSB1cGxvYWQgY29udHJvbCB0aGF0CisgICAgICAgIGFsbG93cyBtdWx0aXBsZSBm
aWxlcy4gTmVlZGVkIHRvIGV4dGVuZCB0aGUgUmVuZGVyVGhlbWUgZnVuY3Rpb24gdG8gcGFzcyBk
b3duCisgICAgICAgIGEgYm9vbGVhbiByZXByZXNlbnRpbmcgd2hldGhlciBtdWx0aXBsZSBmaWxl
cyBhcmUgYWxsb3dlZCBpbiB0aGUgZmlsZSBsaXN0LgorCisgICAgICAgICogRW5nbGlzaC5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCk6CisgICAg
ICAgICogcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneTo6ZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NF
ZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVs
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwpOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUd0azo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgpOgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0ay5oOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6ZmlsZUxpc3ROYW1lRm9yV2lk
dGgpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zmls
ZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2w6OmZpbGVUZXh0VmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6ZmlsZUxpc3ROYW1lRm9yV2lk
dGgpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpmaWxlTGlzdE5hbWVGb3JX
aWR0aCk6CisKIDIwMTEtMTEtMDEgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTig5ODczOCk6IFJlbmRlclRhYmxlU2VjdGlvbjo6
cmVjYWxjQ2VsbHMgZG9lcyBub3QgcHJvcGVybHkgc2hyaW5rIHRoZSBSb3dTdHJ1Y3QgZ3JpZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlNWI0ZjRmZjEzMTMyMWNiZDMwYzFkMzMyNGMz
ZWJlMGQyNDU2ZjZkLi5jNjA5M2NiYTAyZGRlNzAwMzY2MGEyNGNjNWJhY2MwMGI2MWY0ZmI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTExLTAxICBK
b24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICA8aW5wdXQ9ZmlsZSBtdWx0aXBs
ZT4gZGVmYXVsdCB0ZXh0IHVzZXMgc2luZ3VsYXIgaW5zdGVhZCBvZiBwbHVyYWwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzE5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xMDM3OTAyMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHNyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCk6CisKIDIwMTEtMTEtMDEgIEFs
b2sgUHJpeWFkYXJzaGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUm9sbCBjaHJv
bWl1bSBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAzZmE3MmRhMjI2N2I5Y2QxYjdmZGYyMDgwN2Nh
M2E4ZTUxYTZlYWNhLi4zMzQ5YjE4N2QyZjg2NjI4MGI2MmE1OWQyYWIxZWRjOGE0ZDQ1MTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTExLTAxICBKb24gTGVlICA8am9u
bGVlQGFwcGxlLmNvbT4KKworICAgICAgICA8aW5wdXQ9ZmlsZSBtdWx0aXBsZT4gZGVmYXVsdCB0
ZXh0IHVzZXMgc2luZ3VsYXIgaW5zdGVhZCBvZiBwbHVyYWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMDM3OTAyMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAg
IChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKIDIw
MTEtMTEtMDEgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAg
ICAgICAgIFtRdF1bV0syXSBGaXggYnVpbGQgb2YgV2ViS2l0VGVzdFJ1bm5lciB3aXRoIEVMRiBz
eW1ib2wgdmlzaWJpbGl0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCBjODA1NTY4MWJiOWUzZDMz
NjYzNzIzMDYxZTYzYzVkMWQ2YjZjYmZlLi5iMmQ2MWZiYzBlNWQ0ZDZiNmVlYTg2M2ZkMzFhOWJk
YjI2YWU5ZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEx
LTAxICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICA8aW5wdXQ9ZmlsZSBt
dWx0aXBsZT4gZGVmYXVsdCB0ZXh0IHVzZXMgc2luZ3VsYXIgaW5zdGVhZCBvZiBwbHVyYWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzE5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTAyMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2ll
c1dpbkNFLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpmaWxlQnV0dG9u
Tm9GaWxlc1NlbGVjdGVkTGFiZWwpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc1dpbkNFLmg6CisKIDIwMTEtMTAtMjggIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVuYW1lIGEgbnVtYmVyIG9mIG1ldGhvZHMgbWVu
dGlvbmluZyBKYXZhU2NyaXB0IHRvIGp1c3QgU2NyaXB0IGluc3RlYWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBiL1NvdXJjZS9X
ZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCA4MTU1ZWU5YjA1
MDkwZjlhN2UwNjM1OTNjOGIyMGMxNTU2ODhiOWRmLi4yNDVkYWNiMDQ0N2M0NWQ0ZDVlY2RiOGIz
MjVlYmQ3YjYzZDM4ZTlmIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDkwCnpjbVozcm9P
IX0zPF8lWXVQUUpnU2hPP01LZmd6RWhoI19eZGdNcH1ZQjEwWlMzUShra0ElaF9tTkdDQ3IwQCk9
RApsYDMhbEpsUXtKYEtgZkFIPmcwcl8rTE1Kak1KQ1QoRGdtTjVBN0E9ZDdYYW1wOHd2bWIKCmRl
bHRhIDE4CmFjbWJRUmloMCM/PF8lWXVQUj9JcXg0Q2xwYlhAPmczSkVzPQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDYyMzQyMDZmZDI2YzZjOWEzZmI3MGU3NWUzMjli
M2VhMmNjYjg0YTEuLjY1NWU4MWVhZGJjNzMxMTljNTAwYjZkNTU5NzA5MmIwODU0ZjJlMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMzczLDggKzM3MywxMSBAQCBT
dHJpbmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogewogICAgIEZpbGVM
aXN0KiBmaWxlTGlzdCA9IG1fZmlsZUxpc3QuZ2V0KCk7CiAgICAgdW5zaWduZWQgbGlzdFNpemUg
PSBmaWxlTGlzdC0+bGVuZ3RoKCk7Ci0gICAgaWYgKCFsaXN0U2l6ZSkKKyAgICBpZiAoIWxpc3RT
aXplKSB7CisgICAgICAgIGlmIChlbGVtZW50KCktPm11bHRpcGxlKCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7CiAgICAgICAgIHJldHVybiBm
aWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOworICAgIH0KIAogICAgIFN0cmluZ0J1aWxk
ZXIgbmFtZXM7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3Ry
YXRlZ3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0
cmF0ZWd5LmNwcAppbmRleCBhZGM4MDlmZmU4Mjk3NDI1Yzk4NTEzM2JmYjNiODY5ZGE3MjQxZjcz
Li5lNDUzMzIzYjZkMGMxYzQyOTFhY2ViOTEyZjI1M2Q3Zjk0M2E1NDAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5j
cHAKQEAgLTEzNiw2ICsxMzYsMTEgQEAgU3RyaW5nIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVn
eTo6ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKQogICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJubyBmaWxlIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1
c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7CiB9CiAKK1N0cmlu
ZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3k6OmZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRM
YWJlbCgpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5vIGZpbGVzIHNlbGVjdGVkIiwg
InRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBu
byBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dzIG11bHRpcGxlIGZpbGVz
IHRvIGJlIHNlbGVjdGVkIik7Cit9CisKIFN0cmluZyBEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3k6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKQogewogICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJEZXRhaWxzIiwgInRleHQgdG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQg
aGFzIG5vIDxzdW1tYXJ5PiBjaGlsZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9EZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRlZ3kuaAppbmRleCBmMTFjZTk5NDUxMDAxMTVh
NzdjZWFiYTYyYWM0NzMyNWNkZGZjYTE1Li4wOTAwZjQ2OTkwZTUwNGY1MTg5OTk0NTNlNzBhYjEy
MWZjMTFkODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0TG9j
YWxpemF0aW9uU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZhdWx0
TG9jYWxpemF0aW9uU3RyYXRlZ3kuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBTdHJpbmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpOwogICAgIHZpcnR1YWwgU3Ry
aW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKTsKICAgICB2aXJ0dWFsIFN0
cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOworICAgIHZpcnR1YWwgU3RyaW5n
IGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwogICAgIHZpcnR1YWwgU3RyaW5nIGRl
ZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVh
bCBTdHJpbmcgY29weUltYWdlVW5rbm93bkZpbGVMYWJlbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKaW5kZXggYjJlYWIxNzVmODEwODQwZTky
Zjk2ZDM4MDkxZjJmNDMwNzE4YjFmNC4uM2QxYTJiODQ2MzE3Yjk2OWRiMDY3MmMyY2Y0MmYyNmE0
NzY0ZWE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9u
U3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJh
dGVneS5oCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBmaWxl
QnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVCdXR0
b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZmls
ZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgZmls
ZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGRl
ZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSA9IDA7CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGE5NWNmZmYy
YzE5ZTA2YzI1YmU3NTM1NDRlNTRiMTJiNmMzZTYxOGIuLmE2YTQxYWMzNDk1MzEwNGJhMjllMTkz
MTQ5MWJiOTg5ZjcyZDRmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwCkBAIC03OSw2ICs3OSwxMSBAQCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNl
bGVjdGVkTGFiZWwoKQogICAgIHJldHVybiBsb2NhbGl6YXRpb25TdHJhdGVneSgpLT5maWxlQnV0
dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwogfQogCitTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNT
ZWxlY3RlZExhYmVsKCkKK3sKKyAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Zmls
ZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7Cit9CisKIFN0cmluZyBkZWZhdWx0RGV0YWls
c1N1bW1hcnlUZXh0KCkKIHsKICAgICByZXR1cm4gbG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+ZGVm
YXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCmluZGV4IDMyOTNkYTQxOWI0NWQyM2NhODFhZWRlM2M1YjQxMDg0YWEyOWRj
NDYuLmM0OWFkOTE1MGZjZDg3OGRlNjczZjY5ZGZlMDcyNjdhZmQ1YjE1YmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCk7
CiAgICAgU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKTsKICAgICBT
dHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICBTdHJpbmcgZmlsZUJ1
dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7CiAgICAgU3RyaW5nIGRlZmF1bHREZXRhaWxzU3Vt
bWFyeVRleHQoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcAppbmRleCAzMDAwZjAyYzA1OWUz
YzdhZTMyMjBlZjNkYzU1NTI2MTc5ZDQ3MzFmLi5hZTUzMGMxZDlkOWY2YmFhNGI0ODkzNGNhY2Iy
YjEzOGI3MDJiYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9j
YWxpemVkU3RyaW5nc0VmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xv
Y2FsaXplZFN0cmluZ3NFZmwuY3BwCkBAIC03OCw2ICs3OCwxMSBAQCBTdHJpbmcgZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWwoKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJObyBm
aWxlIHNlbGVjdGVkIik7CiB9CiAKK1N0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFi
ZWwoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJObyBmaWxlcyBzZWxlY3RlZCIp
OworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdygpCiB7
CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk9wZW4gTGluayBpbiBOZXcgV2luZG93Iik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5n
c0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0
ay5jcHAKaW5kZXggNjQ2OTdiNzliYmE1MzUzYTNmODhlODhhZGI1YWRiMjAyNDg3ZDZlYi4uMDdi
ZWQ4ZGIzZTkwZWU2ZDI1MzlhNzVlZDJlMmJkMzI1ZmU5NzM2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcApAQCAtOTEsNiAr
OTEsMTEgQEAgU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKICAgICByZXR1
cm4gU3RyaW5nOjpmcm9tVVRGOChfKCIoTm9uZSkiKSk7CiB9CiAKK1N0cmluZyBmaWxlQnV0dG9u
Tm9GaWxlc1NlbGVjdGVkTGFiZWwoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8o
IihOb25lKSIpKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdX
aW5kb3coKQogewogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIk9wZW4gTGluayBpbiBO
ZXcgX1dpbmRvdyIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9S
ZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhl
bWVHdGsuY3BwCmluZGV4IDVkNzBiMmExOTdlNjU2ZTgwMDNlYzBiNTdkMjUyMWY3YTVmNzk2MzUu
LmFlN2VjZGMxNjMxNGVkMjMwNWUzOWJiOTVjMmZhMTUxY2MwYTA4OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcApAQCAtNzAwLDEyICs3MDAs
MTQgQEAgc3RhdGljIGJvb2wgc3RyaW5nQnlBZG9wdGluZ0ZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihnY2hhciogc3lzdGVtRmlsZW5hbWUsIFN0cmkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotU3Ry
aW5nIFJlbmRlclRoZW1lR3RrOjpmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZmlsZW5hbWVzLCBjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgpCitTdHJpbmcgUmVu
ZGVyVGhlbWVHdGs6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBm
aWxlbmFtZXMsIGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVz
QWxsb3dlZCkKIHsKICAgICBpZiAod2lkdGggPD0gMCkKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogCiAgICAgU3RyaW5nIHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7
CisgICAgaWYgKG11bHRpcGxlRmlsZXNBbGxvd2VkKQorICAgICAgICBzdHJpbmcgPSBmaWxlQnV0
dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKIAogICAgIGlmIChmaWxlbmFtZXMuc2l6ZSgpID09
IDEpIHsKICAgICAgICAgQ1N0cmluZyBzeXN0ZW1GaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihmaWxlbmFtZXNbMF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1JlbmRlclRoZW1lR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuaAppbmRleCBkZDRlM2EzYmM1MTdjNzY4ZDdmY2JhZGUxYjIyZDY3OWE0NTI4
ZDg3Li40MDhiMDVmOGQwOGQ4Yzc1MjJmYzQ2YzhkYjcwMDA3YWJiOTc5NTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaApAQCAtMTc5LDcgKzE3OSw3
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRJbm5lclNwaW5CdXR0b24oUmVu
ZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogCiBwcml2YXRl
OgotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmLCBpbnQgd2lkdGgpOworICAgIHZpcnR1YWwg
U3RyaW5nIGZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFt
ZXMsIGNvbnN0IEZvbnQmLCBpbnQgd2lkdGgsIGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpOwog
CiAgICAgdm9pZCBwbGF0Zm9ybUluaXQoKTsKICAgICBzdGF0aWMgdm9pZCBzZXRUZXh0SW5wdXRC
b3JkZXJzKFJlbmRlclN0eWxlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SZW5kZXJUaGVtZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRl
clRoZW1lUXQuY3BwCmluZGV4IDg4ZDM0OWI4YzczMjdhNDQ3Y2I3MjcyZTkwMzhlM2ZmYTBhMWFk
NjguLmMwZThhYzdmYjUzM2UyOTVkNGI4NTE0NGU4NjY0OGI5NGUzMDkwODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCkBAIC0xNTcwLDE0ICsxNTcw
LDE4IEBAIGRvdWJsZSBSZW5kZXJUaGVtZVF0OjpjYXJldEJsaW5rSW50ZXJ2YWwoKSBjb25zdAog
ICAgIHJldHVybiAgUUFwcGxpY2F0aW9uOjpjdXJzb3JGbGFzaFRpbWUoKSAvIDEwMDAuMCAvIDIu
MDsKIH0KIAotU3RyaW5nIFJlbmRlclRoZW1lUXQ6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkK
K1N0cmluZyBSZW5kZXJUaGVtZVF0OjpmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgsIGJvb2wgbXVs
dGlwbGVGaWxlc0FsbG93ZWQpCiB7CiAgICAgaWYgKHdpZHRoIDw9IDApCiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKIAogICAgIFN0cmluZyBzdHJpbmc7Ci0gICAgaWYgKGZpbGVuYW1lcy5pc0Vt
cHR5KCkpCi0gICAgICAgIHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7
CisgICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKG11bHRpcGxlRmls
ZXNBbGxvd2VkKQorICAgICAgICAgICAgc3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3Rl
ZExhYmVsKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN0cmluZyA9IGZpbGVCdXR0b25O
b0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgfQogICAgIGVsc2UgaWYgKGZpbGVuYW1lcy5zaXpl
KCkgPT0gMSkgewogICAgICAgICBTdHJpbmcgZm5hbWUgPSBmaWxlbmFtZXNbMF07CiAgICAgICAg
IFFGb250TWV0cmljcyBmbShmb250LmZvbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9SZW5kZXJUaGVtZVF0LmgKaW5kZXggMmJjMzE4NGQwYjdmNGY5MmUwNGFkY2Y0YjMwNDY5ZTAy
OGQzMzJkYy4uN2M3ZTY2ZjgwMjM5NTkxYzViYzIzYTE5OTRkZWQ3ZmZlNWI1YjViZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaApAQCAtMTczLDcgKzE3Myw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlU2l6ZUJhc2VkT25TdHlsZShSZW5kZXJTdHls
ZSogcmVuZGVyU3R5bGUpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgU3RyaW5nIGZp
bGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0
IEZvbnQmLCBpbnQgd2lkdGgpOworICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVMaXN0TmFtZUZvcldp
ZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmLCBpbnQgd2lk
dGgsIGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpOwogCiAgICAgYm9vbCBzdXBwb3J0c0ZvY3Vz
KENvbnRyb2xQYXJ0KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4
L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKaW5kZXggZTFhZDJkYzRjOWQxZWZmZDMwZDY3N2Q4ZmJm
ZDk4YmY4OTAyOGQ1NS4uNGQxZTE5NzI5NjFlMWE5N2U3Nzg1ZGNjODlmZmI2NDA0MjU3M2U5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3gu
Y3BwCkBAIC03Nyw2ICs3NywxMSBAQCBTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFi
ZWwoKQogICAgIHJldHVybiBTdHJpbmcoIk5vIGZpbGUgc2VsZWN0ZWQiKTsgCiB9CiAKK1N0cmlu
ZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKSAKK3sgCisgICAgcmV0dXJuIFN0cmlu
ZygiTm8gZmlsZXMgc2VsZWN0ZWQiKTsgCit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuTGlua0luTmV3V2luZG93KCkgCiB7IAogICAgIHJldHVybiBTdHJpbmcoIk9wZW4gTGluayBp
biBOZXcgV2luZG93Iik7IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXggODViOTRkNmM3MDkzNmU4NzEyYjM5ODJjZTMw
MDhjOWQzZjgzNWYyYy4uNmY2NTc2ZDVmZDg5YjlkYTM0NGNiMjE0ZDNlNTU5N2E1MWMyNTExMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250
cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwCkBAIC0yMjgsNyArMjI4LDcgQEAgU3RyaW5nIFJlbmRlckZpbGVVcGxvYWRDb250
cm9sOjpmaWxlVGV4dFZhbHVlKCkgY29uc3QKIHsKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOwogICAgIEFTU0VSVChp
bnB1dC0+ZmlsZXMoKSk7Ci0gICAgcmV0dXJuIHRoZW1lKCktPmZpbGVMaXN0TmFtZUZvcldpZHRo
KGlucHV0LT5maWxlcygpLT5wYXRocygpLCBzdHlsZSgpLT5mb250KCksIG1heEZpbGVuYW1lV2lk
dGgoKSk7CisgICAgcmV0dXJuIHRoZW1lKCktPmZpbGVMaXN0TmFtZUZvcldpZHRoKGlucHV0LT5m
aWxlcygpLT5wYXRocygpLCBzdHlsZSgpLT5mb250KCksIG1heEZpbGVuYW1lV2lkdGgoKSwgaW5w
dXQtPm11bHRpcGxlKCkpOwogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggMGEyZmY0ZGZjYTlmNmQ2ZTAx
Njg3MWRlMzUwZTBlYzI4NmIxMzE4Yi4uNGVmOTUzNmYyMWE5YmQwYzk2MDJkMTkxMGJkM2E2NTNm
YzUxN2EwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0x
MTAxLDE0ICsxMTAxLDE4IEBAIENvbG9yIFJlbmRlclRoZW1lOjpmb2N1c1JpbmdDb2xvcigpCiAg
ICAgcmV0dXJuIGN1c3RvbUZvY3VzUmluZ0NvbG9yKCkuaXNWYWxpZCgpID8gY3VzdG9tRm9jdXNS
aW5nQ29sb3IoKSA6IGRlZmF1bHRUaGVtZSgpLT5wbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKCk7CiB9
CiAKLVN0cmluZyBSZW5kZXJUaGVtZTo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYgZm9udCwgaW50IHdpZHRoKQorU3RyaW5n
IFJlbmRlclRoZW1lOjpmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZmlsZW5hbWVzLCBjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgsIGJvb2wgbXVsdGlwbGVGaWxl
c0FsbG93ZWQpCiB7CiAgICAgaWYgKHdpZHRoIDw9IDApCiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKIAogICAgIFN0cmluZyBzdHJpbmc7Ci0gICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpCi0g
ICAgICAgIHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgaWYg
KGZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKG11bHRpcGxlRmlsZXNBbGxvd2Vk
KQorICAgICAgICAgICAgc3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxl
Y3RlZExhYmVsKCk7CisgICAgfQogICAgIGVsc2UgaWYgKGZpbGVuYW1lcy5zaXplKCkgPT0gMSkK
ICAgICAgICAgc3RyaW5nID0gcGF0aEdldEZpbGVOYW1lKGZpbGVuYW1lc1swXSk7CiAgICAgZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCAzY2UyYWIyZDM5MmRj
OTFmYjMyNDdhZTk0MmExNTMzNzJjZjRmODE5Li40M2FlYzIzZDcwOGUxODQzZjQzMzUxM2I5YzRm
YmVkODkxYzdkZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAt
MjA3LDcgKzIwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd1BsYWNl
aG9sZGVyV2hlbkZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRIYXZlU3BpbkJ1dHRvbihIVE1MSW5wdXRFbGVtZW50KikgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIFN0cmluZyBmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZW5hbWVzLCBjb25zdCBGb250JiwgaW50IHdpZHRoKTsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBj
b25zdCBGb250JiwgaW50IHdpZHRoLCBib29sIG11bHRpcGxlRmlsZXNBbGxvd2VkKTsKIAogcHJv
dGVjdGVkOgogICAgIC8vIFRoZSBwbGF0Zm9ybSBzZWxlY3Rpb24gY29sb3IuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IDJkNzJiODFmNGZmMjc2NTk2NzRk
ZmNlZTIzMDZmMDM3OWFhMGIzMjMuLmM4N2RkZWM2MGQ5NzkyNGVlOWJlZDNjY2UxNjNjY2EzY2Yz
M2UxMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC0x
NzcsNyArMTc3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93UGxh
Y2Vob2xkZXJXaGVuRm9jdXNlZCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgU3Ry
aW5nIGZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMs
IGNvbnN0IEZvbnQmLCBpbnQgd2lkdGgpOworICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVMaXN0TmFt
ZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmLCBp
bnQgd2lkdGgsIGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpOwogCiAgICAgSW50UmVjdCBpbmZs
YXRlUmVjdChjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IGludCogbWFyZ2lu
cywgZmxvYXQgem9vbUxldmVsID0gMS4wZikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAxZDUyYjhhNmJjZThhMTcxMWY2ODBlZjg2MzFj
YmFlMDIxZjg5MTIxLi45OTI4ZTE4N2E4NmIyNzQ2YmU4MTE5OTAxOTEyZDhkZTgwOTdlZjU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0yMDg1LDE0
ICsyMDg1LDE4IEBAIE5TU2xpZGVyQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVy
dGljYWwoKSBjb25zdAogICAgIHJldHVybiBtX3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCk7CiB9
CiAKLVN0cmluZyBSZW5kZXJUaGVtZU1hYzo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYgZm9udCwgaW50IHdpZHRoKQorU3Ry
aW5nIFJlbmRlclRoZW1lTWFjOjpmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZmlsZW5hbWVzLCBjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgsIGJvb2wgbXVsdGlw
bGVGaWxlc0FsbG93ZWQpCiB7CiAgICAgaWYgKHdpZHRoIDw9IDApCiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKIAogICAgIFN0cmluZyBzdHJUb1RydW5jYXRlOwotICAgIGlmIChmaWxlbmFtZXMu
aXNFbXB0eSgpKQotICAgICAgICBzdHJUb1RydW5jYXRlID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVj
dGVkTGFiZWwoKTsKKyAgICBpZiAoZmlsZW5hbWVzLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAo
bXVsdGlwbGVGaWxlc0FsbG93ZWQpCisgICAgICAgICAgICBzdHJUb1RydW5jYXRlID0gZmlsZUJ1
dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN0
clRvVHJ1bmNhdGUgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOworICAgIH0KICAg
ICBlbHNlIGlmIChmaWxlbmFtZXMuc2l6ZSgpID09IDEpCiAgICAgICAgIHN0clRvVHJ1bmNhdGUg
PSBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGRpc3BsYXlOYW1lQXRQYXRoOihmaWxl
bmFtZXNbMF0pXTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xv
Y2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDNkNTQ3ZWJiNzgwYzQ2NDJlMmNkM2VkYWEwNzA1NDQ0
MTdjNDVlYWYuLmMzMDRlZmI3ZjQ1MTU0MzBiNTdlYmI0NzA1ZjhjMGQxZGMwZjU5ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0x
MDIsNiArMTAyLDExIEBAIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCiAg
ICAgcmV0dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6RmlsZUJ1dHRvbk5vRmlsZVNlbGVj
dGVkTGFiZWwpOwogfQogCitTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZXNTZWxlY3RlZExhYmVsKCkK
K3sKKyAgICByZXR1cm4gcXVlcnkoV2ViTG9jYWxpemVkU3RyaW5nOjpGaWxlQnV0dG9uTm9GaWxl
U2VsZWN0ZWRMYWJlbCk7Cit9CisKIFN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1Rl
eHQoKQogewogICAgIHJldHVybiBxdWVyeShXZWJMb2NhbGl6ZWRTdHJpbmc6OlNlYXJjaE1lbnVO
b1JlY2VudFNlYXJjaGVzVGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggYTc3NWYzMTdmNjA1
MWE1ZmM1ZjI2YzcwYjhkZWI3ZmI3YWQwMmZiYS4uNTYzYmQ2MDAwMGRjOGFjZDJmYjY1YjczNTEy
ODA3ZjVhMzAxODU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMTgzLDYgKzE4MywxMSBAQCBT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJl
bCgpCiAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
Tm8gZmlsZSBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBp
biBIVE1MIGZvcm1zIHdoZW4gbm8gZmlsZSBpcyBzZWxlY3RlZCIpOwogfQogCitTdHJpbmcgV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKQorewor
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk5vIGZp
bGVzIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhU
TUwgZm9ybXMgd2hlbiBubyBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidXR0b24gYWxsb3dz
IG11bHRpcGxlIGZpbGVzIHRvIGJlIHNlbGVjdGVkIik7Cit9CisKIFN0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKQogewogICAgIHJldHVybiBR
Q29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkRldGFpbHMiLCAidGV4dCB0
byBkaXNwbGF5IGluIDxkZXRhaWxzPiB0YWcgd2hlbiBpdCBoYXMgbm8gPHN1bW1hcnk+IGNoaWxk
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCA5MzE1MjkxNzdmM2Q5MzMwNWQ3MzZkNjI0MWQxODYzZTAy
ZjdjODg2Li5jZDRkNTE4M2FkMGU3NDFlNTVmZjcwMTJmZDNlNTI2YTRhYWE4ZmUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmgKQEAgLTY2LDYgKzY2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKTsKICAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgdmlydHVhbCBXVEY6
OlN0cmluZyBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKICAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKTsKICAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKTsKICAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0
cmF0ZWdpZXNXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1Bs
YXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcAppbmRleCAwMzkwZTJmM2ZmNDlkNDkzNDVjN2JiYmQ4
OGRhM2FlNGQ5OGMxZDk5Li45M2FkZmZlNjQ0YTZjZmU1ZDhkOWQ4YzM0NmE1MjZiOTU2ZTlkMDY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc1dpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcApAQCAtMTQ5LDYgKzE0OSwxMSBAQCBTdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVs
KCkKICAgICByZXR1cm4gVUlfU1RSSU5HKCJubyBmaWxlIHNlbGVjdGVkIiwgInRleHQgdG8gZGlz
cGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlIGlzIHNl
bGVjdGVkIik7CiB9CiAKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6ZmlsZUJ1dHRv
bk5vRmlsZXNTZWxlY3RlZExhYmVsKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJubyBmaWxl
cyBzZWxlY3RlZCIsICJ0ZXh0IHRvIGRpc3BsYXkgaW4gZmlsZSBidXR0b24gdXNlZCBpbiBIVE1M
IGZvcm1zIHdoZW4gbm8gZmlsZXMgYXJlIHNlbGVjdGVkIGFuZCB0aGUgYnV0dG9uIGFsbG93cyBt
dWx0aXBsZSBmaWxlcyB0byBiZSBzZWxlY3RlZCIpOworfQorCiBTdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzV2luQ0U6OmRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKQogewogICAgIHJldHVybiBV
SV9TVFJJTkcoIkRldGFpbHMiLCAidGV4dCB0byBkaXNwbGF5IGluIDxkZXRhaWxzPiB0YWcgd2hl
biBpdCBoYXMgbm8gPHN1bW1hcnk+IGNoaWxkIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmggYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgKaW5k
ZXggMmYwNTI0NTNlYzE2NDZhYTgxMmQwMTNkY2MzYmVkZDg3MzRkYWI2NS4uYmJhZjA3Yjg4YTcz
OTMyNzZiZGUyYjBjMzc4MmE3YTg5ZmEyNjc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaApA
QCAtNTksNiArNTksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1
dHRvbkNob29zZUZpbGVMYWJlbCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmlsZUJ1dHRv
bkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZmls
ZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGZp
bGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJlbCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
ZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dp
bmRvdygpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>