<?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>120568</bug_id>
          
          <creation_ts>2013-08-31 17:45:50 -0700</creation_ts>
          <short_desc>DeferredRefCounted should have a thread-safe mode</short_desc>
          <delta_ts>2013-09-01 09:40:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>120567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>923369</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-31 17:45:50 -0700</bug_when>
    <thetext>Needed for https://bugs.webkit.org/show_bug.cgi?id=120567.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923370</commentid>
    <comment_count>1</comment_count>
      <attachid>210221</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-31 17:47:21 -0700</bug_when>
    <thetext>Created attachment 210221
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923371</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-31 17:49:15 -0700</bug_when>
    <thetext>Attachment 210221 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/DeferrableRefCounted.h&apos;]&quot; exit_code: 1
Source/WTF/wtf/DeferrableRefCounted.h:58:  Semicolon defining empty statement for this loop. Use { } instead.  [whitespace/semicolon] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923372</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-31 17:49:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 210221 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/DeferrableRefCounted.h&apos;]&quot; exit_code: 1
&gt; Source/WTF/wtf/DeferrableRefCounted.h:58:  Semicolon defining empty statement for this loop. Use { } instead.  [whitespace/semicolon] [5]

Fixed.

&gt; Total errors found: 1 in 2 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923378</commentid>
    <comment_count>4</comment_count>
      <attachid>210221</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-31 21:05:15 -0700</bug_when>
    <thetext>Comment on attachment 210221
the patch

Clearing r+ because I found some performance issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923379</commentid>
    <comment_count>5</comment_count>
      <attachid>210223</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-31 21:14:44 -0700</bug_when>
    <thetext>Created attachment 210223
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923491</commentid>
    <comment_count>6</comment_count>
      <attachid>210223</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-01 09:40:10 -0700</bug_when>
    <thetext>Comment on attachment 210223
the patch

Never mind.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210221</attachid>
            <date>2013-08-31 17:47:21 -0700</date>
            <delta_ts>2013-08-31 21:14:44 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>3802</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTQ5MzQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEzLTA4LTMxICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgRGVmZXJyZWRSZWZDb3VudGVkIHNob3VsZCBiZSB0aHJl
YWQtc2FmZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIwNTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBUaGlzIG1ha2VzIHRoZSBjbGFzcyBtb3JlIGdlbmVyYWwuIEl0IGFsc28gaGFwcGVu
cyB0aGF0IHRoaXMgZG9lc24ndCBodXJ0CisgICAgICAgIHBlcmZvcm1hbmNlIGZvciBjdXJyZW50
IHVzZXJzIG9mIERlZmVycmVkUmVmQ291bnRlZCAoaS5lLiBBcnJheUJ1ZmZlcnMpLgorCisgICAg
ICAgICogd3RmL0RlZmVycmFibGVSZWZDb3VudGVkLmg6CisgICAgICAgIChXVEY6OkRlZmVycmFi
bGVSZWZDb3VudGVkQmFzZTo6cmVmKToKKyAgICAgICAgKFdURjo6RGVmZXJyYWJsZVJlZkNvdW50
ZWRCYXNlOjpkZXJlZkJhc2UpOgorICAgICAgICAoV1RGOjpEZWZlcnJhYmxlUmVmQ291bnRlZEJh
c2U6OnNldElzRGVmZXJyZWRCYXNlKToKKwogMjAxMy0wOC0zMCAgT2xpdmVyIEh1bnQgIDxvbGl2
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgSlNWYWx1ZSBib29sIGNvbnZlcnNpb24gbGVz
cyBkYW5nZXJvdXMKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0RlZmVycmFibGVSZWZDb3VudGVkLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRGVmZXJyYWJsZVJlZkNvdW50ZWQuaAkocmV2
aXNpb24gMTU0OTMzKQorKysgU291cmNlL1dURi93dGYvRGVmZXJyYWJsZVJlZkNvdW50ZWQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcsMTAgQEAKICNkZWZpbmUgRGVmZXJyYWJsZVJlZkNv
dW50ZWRfaAogCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvQXRv
bWljcy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIAogbmFt
ZXNwYWNlIFdURiB7CiAKQEAgLTM4LDYgKzQwLDEwIEBAIG5hbWVzcGFjZSBXVEYgewogLy8gc3Bl
Y2lmaWNhbGx5IGhhcHBlbmVkIC0gdGhpcyBjYW4gYmUgdXNlZnVsIGVpdGhlciBmb3IgZGVidWdn
aW5nLCBvcgogLy8gc29tZXRpbWVzIGV2ZW4gZm9yIHNvbWUgYWRkaXRpb25hbCBmdW5jdGlvbmFs
aXR5LgogCisvLyBOb3RlLCB0aGlzIGlzIGFsd2F5cyB0aHJlYWQtc2FmZSByZWYtY291bnRlZCAt
IHRoaXMgd29ya3Mgb3V0IGZpbmUKKy8vIGJlY2F1c2UgdGhlIHVzZXJzIG9mIHRoaXMgY2xhc3Mg
ZWl0aGVyIGhhdmUgbG93IHJlZkNvdW50IGNodXJuLCBvcgorLy8gbmVlZCB0aHJlYWQtc2FmZSBy
ZWZlcmVuY2UgY291bnRpbmcsIG9yIGJvdGguCisKIGNsYXNzIERlZmVycmFibGVSZWZDb3VudGVk
QmFzZSB7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmVycmVkRmxhZyA9IDE7CiAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIG5vcm1hbEluY3JlbWVudCA9IDI7CkBAIC00NSw3ICs1MSwx
NSBAQCBjbGFzcyBEZWZlcnJhYmxlUmVmQ291bnRlZEJhc2UgewogcHVibGljOgogICAgIHZvaWQg
cmVmKCkKICAgICB7CisjaWYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisgICAgICAgIHVuc2ln
bmVkIG9sZFZhbHVlOworICAgICAgICBkbworICAgICAgICAgICAgb2xkVmFsdWUgPSBtX3JlZkNv
dW50OworICAgICAgICB3aGlsZSAoIXdlYWtDb21wYXJlQW5kU3dhcCgmbV9yZWZDb3VudCwgb2xk
VmFsdWUsIG9sZFZhbHVlICsgbm9ybWFsSW5jcmVtZW50KSk7CisjZWxzZSAvLyBFTkFCTEUoQ09N
UEFSRV9BTkRfU1dBUCkKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAgICAg
ICAgIG1fcmVmQ291bnQgKz0gbm9ybWFsSW5jcmVtZW50OworI2VuZGlmIC8vIEVOQUJMRShDT01Q
QVJFX0FORF9TV0FQKQogICAgIH0KICAgICAKICAgICBib29sIGhhc09uZVJlZigpIGNvbnN0CkBA
IC03NSwyMiArODksNTUgQEAgcHJvdGVjdGVkOgogICAgIAogICAgIGJvb2wgZGVyZWZCYXNlKCkK
ICAgICB7CisjaWYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisgICAgICAgIHVuc2lnbmVkIG9s
ZFZhbHVlOworICAgICAgICB1bnNpZ25lZCBuZXdWYWx1ZTsKKyAgICAgICAgZG8geworICAgICAg
ICAgICAgb2xkVmFsdWUgPSBtX3JlZkNvdW50OworICAgICAgICAgICAgbmV3VmFsdWUgPSBvbGRW
YWx1ZSAtIG5vcm1hbEluY3JlbWVudDsKKyAgICAgICAgfSB3aGlsZSAoIXdlYWtDb21wYXJlQW5k
U3dhcCgmbV9yZWZDb3VudCwgb2xkVmFsdWUsIG5ld1ZhbHVlKSk7CisgICAgICAgIHJldHVybiAh
bmV3VmFsdWU7CisjZWxzZSAvLyBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKKyAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIG1fcmVmQ291bnQgLT0gbm9ybWFsSW5j
cmVtZW50OwogICAgICAgICByZXR1cm4gIW1fcmVmQ291bnQ7CisjZW5kaWYgLy8gRU5BQkxFKENP
TVBBUkVfQU5EX1NXQVApCiAgICAgfQogCiAgICAgYm9vbCBzZXRJc0RlZmVycmVkQmFzZShib29s
IHZhbHVlKQogICAgIHsKKyNpZiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKKyAgICAgICAgdW5z
aWduZWQgb2xkVmFsdWU7CisgICAgICAgIHVuc2lnbmVkIG5ld1ZhbHVlOworICAgICAgICBib29s
IHJlc3VsdDsKKyAgICAgICAgZG8geworICAgICAgICAgICAgb2xkVmFsdWUgPSBtX3JlZkNvdW50
OworICAgICAgICAgICAgaWYgKHZhbHVlKSB7CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBv
bGRWYWx1ZSB8IGRlZmVycmVkRmxhZzsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBvbGRWYWx1
ZSAmIH5kZWZlcnJlZEZsYWc7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gIW5ld1ZhbHVlOwor
ICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlICghd2Vha0NvbXBhcmVBbmRTd2FwKCZtX3Jl
ZkNvdW50LCBvbGRWYWx1ZSwgbmV3VmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyNl
bHNlIC8vIEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQorICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9sb2NrKTsKICAgICAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAgICAgICBtX3JlZkNvdW50
IHw9IGRlZmVycmVkRmxhZzsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICBtX3JlZkNvdW50ICY9IH5kZWZlcnJlZEZsYWc7CiAgICAgICAgIHJldHVybiAhbV9y
ZWZDb3VudDsKKyNlbmRpZiAvLyBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKICAgICB9CiAgICAg
CiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fcmVmQ291bnQ7CisKKyNpZiAhRU5BQkxFKENPTVBB
UkVfQU5EX1NXQVApCisgICAgTXV0ZXggbV9sb2NrOworI2VuZGlmIC8vICFFTkFCTEUoQ09NUEFS
RV9BTkRfU1dBUCkKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210223</attachid>
            <date>2013-08-31 21:14:44 -0700</date>
            <delta_ts>2013-09-01 09:40:10 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20016</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0OTM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDEzLTA4LTMxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RGVmZXJyZWRSZWZDb3VudGVkIHNob3VsZCBoYXZlIGEgdGhyZWFkLXNhZmUgbW9kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwNTY4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBoZWFwL0dDSW5jb21p
bmdSZWZDb3VudGVkLmg6IFR1cm4gb2ZmIHRocmVhZC1zYWZldHkgYmVjYXVzZSBpdCBjYXVzZXMg
cGVyZiByZWdyZXNzaW9uLgorICAgICAgICAqIGhlYXAvTWFya2VkQmxvY2suaDogU3dpdGNoIHRv
IHVzaW5nIHRoZSBBdG9taWNNb2RlIGVudW0uCisKIDIwMTMtMDgtMzAgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBDb2RlQmxvY2sgcmVmYWN0b3JpbmcgYnJva2Ug
cHJvZmlsZSBkdW1waW5nCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0luY29t
aW5nUmVmQ291bnRlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0dDSW5jb21pbmdSZWZDb3VudGVkLmgJKHJldmlzaW9uIDE1NDkzMykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0dDSW5jb21pbmdSZWZDb3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQwLDcgKzQwLDcgQEAgY2xhc3MgSlNDZWxsOwogLy8gaGVhcC4KIAogdGVtcGxhdGU8dHlwZW5h
bWUgVD4KLWNsYXNzIEdDSW5jb21pbmdSZWZDb3VudGVkIDogcHVibGljIERlZmVycmFibGVSZWZD
b3VudGVkPFQ+IHsKK2NsYXNzIEdDSW5jb21pbmdSZWZDb3VudGVkIDogcHVibGljIERlZmVycmFi
bGVSZWZDb3VudGVkPFdURjo6TW9kZU5vdEF0b21pYywgVD4gewogcHVibGljOgogICAgIEdDSW5j
b21pbmdSZWZDb3VudGVkKCkKICAgICAgICAgOiBtX2VuY29kZWRQb2ludGVyKDApCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHJldmlzaW9uIDE1NDkzMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE3OCw5ICsxNzgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc2l6ZV90IG1f
YXRvbXNQZXJDZWxsOwogICAgICAgICBzaXplX3QgbV9lbmRBdG9tOyAvLyBUaGlzIGlzIGEgZnV6
enkgZW5kLiBBbHdheXMgdGVzdCBmb3IgPCBtX2VuZEF0b20uCiAjaWYgRU5BQkxFKFBBUkFMTEVM
X0dDKQotICAgICAgICBXVEY6OkJpdG1hcDxhdG9tc1BlckJsb2NrLCBXVEY6OkJpdG1hcEF0b21p
Yz4gbV9tYXJrczsKKyAgICAgICAgV1RGOjpCaXRtYXA8YXRvbXNQZXJCbG9jaywgV1RGOjpNb2Rl
QXRvbWljPiBtX21hcmtzOwogI2Vsc2UKLSAgICAgICAgV1RGOjpCaXRtYXA8YXRvbXNQZXJCbG9j
aywgV1RGOjpCaXRtYXBOb3RBdG9taWM+IG1fbWFya3M7CisgICAgICAgIFdURjo6Qml0bWFwPGF0
b21zUGVyQmxvY2ssIFdURjo6TW9kZU5vdEF0b21pYz4gbV9tYXJrczsKICNlbmRpZgogICAgICAg
ICBPd25QdHI8V1RGOjpCaXRtYXA8YXRvbXNQZXJCbG9jaz4gPiBtX25ld2x5QWxsb2NhdGVkOwog
CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0No
YW5nZUxvZwkocmV2aXNpb24gMTU0OTM1KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzNCBAQAorMjAxMy0wOC0zMSAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgorCisgICAgICAgIERlZmVycmVkUmVmQ291bnRlZCBzaG91bGQgaGF2ZSBh
IHRocmVhZC1zYWZlIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyMDU2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgVGhpcyBtYWtlcyB0aGUgY2xhc3MgbW9yZSBnZW5lcmFsIGJ5IGFs
bG93aW5nIGl0IHRvIGJlIHRocmVhZC1zYWZlLiBUaGlzCisgICAgICAgIG1vZGUgaXMgY3VycmVu
dGx5IG5vdCB5ZXQgdXNlZCBieSB0aGUgY2xpZW50cyBvZiB0aGlzIGNsYXNzLCBzaW5jZSB0aG9z
ZQorICAgICAgICBjbGllbnRzIGFwcGVhciB0byBzdWZmZXIganVzdCBlbm91Z2ggcmVmLWNvdW50
IGNodXJuIGluIHNvbWUgb2YgdGhlCisgICAgICAgIEpTUmVncmVzcyB0ZXN0cyB0aGF0IHlvdSBk
byBzZWUgYSBwZXJmb3JtYW5jZSBlZmZlY3QuCisgICAgICAgIAorICAgICAgICBUaGVyZSB3YXMg
YWxzbyBhbHJlYWR5IGFub3RoZXIgY2xhc3MgdGhhdCB3YXMgdGVtcGxhdGl6ZWQgYWNjb3JkaW5n
IHRvCisgICAgICAgIHRocmVhZC1zYWZldHkgc28gSSBhZGRlZCBhIG5ldyBlbnVtIHRvIHVuaWZ5
IGhvdyB0aGlzIHdvcmtzLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qOgorICAgICAg
ICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9BdG9taWNN
b2RlLmg6IEFkZGVkLgorICAgICAgICAqIHd0Zi9CaXRtYXAuaDoKKyAgICAgICAgKFdURjo6Ojpj
b25jdXJyZW50VGVzdEFuZFNldCk6CisgICAgICAgIChXVEY6Ojo6Y29uY3VycmVudFRlc3RBbmRD
bGVhcik6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9EZWZl
cnJhYmxlUmVmQ291bnRlZC5oOgorICAgICAgICAoV1RGOjpEZWZlcnJhYmxlUmVmQ291bnRlZEJh
c2U6OnJlZik6CisgICAgICAgIChXVEY6OkRlZmVycmFibGVSZWZDb3VudGVkQmFzZTo6ZGVyZWZC
YXNlKToKKyAgICAgICAgKFdURjo6RGVmZXJyYWJsZVJlZkNvdW50ZWRCYXNlOjpzZXRJc0RlZmVy
cmVkQmFzZSk6CisgICAgICAgIChXVEY6OkRlZmVycmFibGVSZWZDb3VudGVkOjpkZXJlZik6Cisg
ICAgICAgIChXVEY6OkRlZmVycmFibGVSZWZDb3VudGVkOjpzZXRJc0RlZmVycmVkKToKKwogMjAx
My0wOC0zMCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
SlNWYWx1ZSBib29sIGNvbnZlcnNpb24gbGVzcyBkYW5nZXJvdXMKSW5kZXg6IFNvdXJjZS9XVEYv
R05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0dOVW1ha2VmaWxl
Lmxpc3QuYW0JKHJldmlzaW9uIDE1NDkzMykKKysrIFNvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlz
dC5hbQkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAg
IFNvdXJjZS9XVEYvd3RmL0FsaWdubWVudC5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRp
b25zLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oIFwKKyAgICBTb3VyY2Uv
V1RGL3d0Zi9BdG9taWNNb2RlLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0F0b21pY3MuY3BwIFwK
ICAgICBTb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0F1dG9k
cmFpbmVkUG9vbC5oIFwKSW5kZXg6IFNvdXJjZS9XVEYvV1RGLnBybwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL1dURi5wcm8JKHJldmlzaW9uIDE1NDkzMykKKysrIFNvdXJjZS9XVEYvV1RGLnBy
bwkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQCBIRUFERVJTICs9IFwKICAgICBBbGln
bm1lbnQuaCBcCiAgICAgQVNDSUlDVHlwZS5oIFwKICAgICBBc3NlcnRpb25zLmggXAorICAgIEF0
b21pY01vZGUuaCBcCiAgICAgQXRvbWljcy5oIFwKICAgICBBVkxUcmVlLmggXAogICAgIEJpdG1h
cC5oIFwKSW5kZXg6IFNvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagkocmV2aXNpb24gMTU0OTMz
KQorKysgU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMTIzLDYgKzEyMyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcQWxpZ25t
ZW50LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXEFTQ0lJQ1R5cGUuaCIg
Lz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcQXNzZXJ0aW9ucy5oIiAvPg0KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxBdG9taWNNb2RlLmgiIC8+DQogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd3RmXEF0b21pY3MuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlx3dGZcQXV0b2RyYWluZWRQb29sLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cd3RmXEFWTFRyZWUuaCIgLz4NCkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE1NDkzMykKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKIAkJ
MEZDNDQ4ODMxNkZFOUZFMTAwODQ0QkU5IC8qIFByb2Nlc3NJRC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDQ4ODIxNkZFOUZFMTAwODQ0QkU5IC8q
IFByb2Nlc3NJRC5oICovOyB9OwogCQkwRkM0RURFNjE2OTYxNDk2MDBGNjUwNDEgLyogQ29tbWFQ
cmludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkM0RURFNTE2OTYxNDk2MDBGNjUwNDEgLyogQ29tbWFQcmludGVyLmggKi87IH07CiAJCTBGRDgx
QUM1MTU0RkIyMkUwMDk4M0U3MiAvKiBGYXN0Qml0VmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4MUFDNDE1NEZCMjJFMDA5ODNFNzIgLyog
RmFzdEJpdFZlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CisJ
CTBGRDhBMzEwMTdEMkY0QzEwMENBMkM0MCAvKiBBdG9taWNNb2RlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4QTMwRjE3RDJGNEJFMDBDQTJDNDAg
LyogQXRvbWljTW9kZS5oICovOyB9OwogCQkwRkREQkZBNzE2NjZERkEzMDBDNTVGRUYgLyogU3Ry
aW5nUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZEREJGQTUxNjY2REZBMzAwQzU1RkVGIC8qIFN0cmluZ1ByaW50U3RyZWFtLmNw
cCAqLzsgfTsKIAkJMEZEREJGQTgxNjY2REZBMzAwQzU1RkVGIC8qIFN0cmluZ1ByaW50U3RyZWFt
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkREQkZB
NjE2NjZERkEzMDBDNTVGRUYgLyogU3RyaW5nUHJpbnRTdHJlYW0uaCAqLzsgfTsKIAkJMTQzRjYx
MUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzRjYxMUQxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNp
emUuY3BwICovOyB9OwpAQCAtMjk5LDYgKzMwMCw3IEBACiAJCTBGQzQ0ODgyMTZGRTlGRTEwMDg0
NEJFOSAvKiBQcm9jZXNzSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJv
Y2Vzc0lELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzRFREU1MTY5NjE0OTYw
MEY2NTA0MSAvKiBDb21tYVByaW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ29tbWFQcmludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDgxQUM0
MTU0RkIyMkUwMDk4M0U3MiAvKiBGYXN0Qml0VmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZhc3RCaXRWZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEZEOEEzMEYxN0QyRjRCRTAwQ0EyQzQwIC8qIEF0b21pY01vZGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXRvbWljTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkREQkZBNTE2
NjZERkEzMDBDNTVGRUYgLyogU3RyaW5nUHJpbnRTdHJlYW0uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nUHJpbnRTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkREQkZBNjE2NjZERkEzMDBDNTVGRUYgLyogU3RyaW5nUHJpbnRT
dHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyaW5nUHJpbnRTdHJl
YW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzNFRTQxNzFCODM0NzAwRkRB
QzhEIC8qIEJ5dGVTcGluTG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlU3BpbkxvY2suaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYyMSw2ICs2MjMsNyBAQAogCQkJCUE4QTQ3MjVB
MTUxQTgyNUEwMDQxMjNGRiAvKiBBU0NJSUNUeXBlLmggKi8sCiAJCQkJQThBNDcyNUIxNTFBODI1
QTAwNDEyM0ZGIC8qIEFzc2VydGlvbnMuY3BwICovLAogCQkJCUE4QTQ3MjVDMTUxQTgyNUEwMDQx
MjNGRiAvKiBBc3NlcnRpb25zLmggKi8sCisJCQkJMEZEOEEzMEYxN0QyRjRCRTAwQ0EyQzQwIC8q
IEF0b21pY01vZGUuaCAqLywKIAkJCQlBOEE0NzI1RDE1MUE4MjVBMDA0MTIzRkYgLyogQXRvbWlj
cy5oICovLAogCQkJCTE0Njk0MTlBMTZFQUIxMEEwMDI0RTE0NiAvKiBBdXRvZHJhaW5lZFBvb2wu
aCAqLywKIAkJCQkxNDY5NDE5QjE2RUFCMTBBMDAyNEUxNDYgLyogQXV0b2RyYWluZWRQb29sTWFj
Lm1tICovLApAQCAtMTAyNSw2ICsxMDI4LDcgQEAKIAkJCQlBOEE0NzNGQjE1MUE4MjVCMDA0MTIz
RkYgLyogT3duQXJyYXlQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0ZDMTUxQTgyNUIw
MDQxMjNGRiAvKiBPd25QdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0ZEMTUxQTgyNUIw
MDQxMjNGRiAvKiBPd25QdHJDb21tb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDhBMzEwMTdE
MkY0QzEwMENBMkM0MCAvKiBBdG9taWNNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNG
RTE1MUE4MjVCMDA0MTIzRkYgLyogUGFja2VkSW50VmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzNGRjE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUFsbG9jYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4QTQ3NDAxMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQWxsb2NhdGlvbkFsaWdu
ZWQuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dURi93dGYvQXRvbWljTW9kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0F0b21pY01vZGUuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XVEYvd3RmL0F0b21pY01vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgQXRvbWljTW9kZV9oCisjZGVmaW5lIEF0b21pY01vZGVfaAorCituYW1lc3BhY2UgV1RGIHsK
KworLy8gVGhpcyBpcyB1c2VmdWwgZm9yIHRlbXBsYXRpemluZyBkYXRhIHN0cnVjdHVyZXMgdGhh
dCBjb3VsZCBlaXRoZXIgYmUgYXRvbWljCisvLyBvciBub3QuCitlbnVtIEF0b21pY01vZGUgewor
ICAgIC8vIEFzc3VtZSB0aGF0IHRocmVhZC1zYWZldHkgaXMgZW5zdXJlZCB0aHJvdWdoIG90aGVy
IG1lYW5zLCBsaWtlIHRoYXQgdGhlCisgICAgLy8gb2JqZWN0IGlzIHRocmVhZC1sb2NhbC4KKyAg
ICBNb2RlTm90QXRvbWljLAorICAgIAorICAgIC8vIFRoZSBkYXRhIHN0cnVjdHVyZSBtdXN0IGVu
c3VyZSB0aGF0IGl0IGlzIHdlbGwtYmVoYXZlZCB3aGVuIHVzZWQgYnkKKyAgICAvLyBtdWx0aXBs
ZSB0aHJlYWRzLiBJdCdzIHVwIHRvIHRoZSBkYXRhIHN0cnVjdHVyZSB0byBkZWNpZGUgd2hhdCB0
aGF0CisgICAgLy8gbWVhbnMuCisgICAgTW9kZUF0b21pYworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V1RGCisKKyNlbmRpZiAvLyBBdG9taWNNb2RlX2gKKwpJbmRleDogU291cmNlL1dURi93dGYvQml0
bWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQml0bWFwLmgJKHJldmlzaW9uIDE1
NDkzMykKKysrIFNvdXJjZS9XVEYvd3RmL0JpdG1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0xOSw2ICsxOSw3IEBACiAj
aWZuZGVmIEJpdG1hcF9oCiAjZGVmaW5lIEJpdG1hcF9oCiAKKyNpbmNsdWRlIDx3dGYvQXRvbWlj
TW9kZS5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0ZpeGVkQXJy
YXkuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0yNywxNiArMjgsNyBAQAog
CiBuYW1lc3BhY2UgV1RGIHsKIAotZW51bSBCaXRtYXBBdG9taWNNb2RlIHsKLSAgICAvLyBUaGlz
IG1ha2VzIGNvbmN1cnJlbnRUZXN0QW5kU2V0IGJlaGF2ZSBqdXN0IGxpa2UgdGVzdEFuZFNldC4K
LSAgICBCaXRtYXBOb3RBdG9taWMsCi0KLSAgICAvLyBUaGlzIG1ha2VzIGNvbmN1cnJlbnRUZXN0
QW5kU2V0IHVzZSBjb21wYXJlQW5kU3dhcCwgc28gdGhhdCBpdCdzCi0gICAgLy8gYXRvbWljIGV2
ZW4gd2hlbiB1c2VkIGNvbmN1cnJlbnRseS4KLSAgICBCaXRtYXBBdG9taWMKLX07Ci0KLXRlbXBs
YXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01vZGUgPSBCaXRtYXBOb3RB
dG9taWM+Cit0ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQXRvbWljTW9kZSBhdG9taWNNb2RlID0gTW9k
ZU5vdEF0b21pYz4KIGNsYXNzIEJpdG1hcCB7CiBwcml2YXRlOgogICAgIHR5cGVkZWYgdWludDMy
X3QgV29yZFR5cGU7CkBAIC03MiwyNSArNjQsMjUgQEAgcHJpdmF0ZToKICAgICBGaXhlZEFycmF5
PFdvcmRUeXBlLCB3b3Jkcz4gYml0czsKIH07CiAKLXRlbXBsYXRlPHNpemVfdCBzaXplLCBCaXRt
YXBBdG9taWNNb2RlIGF0b21pY01vZGU+Cit0ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQXRvbWljTW9k
ZSBhdG9taWNNb2RlPgogaW5saW5lIEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6Qml0bWFwKCkK
IHsKICAgICBjbGVhckFsbCgpOwogfQogCi10ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQml0bWFwQXRv
bWljTW9kZSBhdG9taWNNb2RlPgordGVtcGxhdGU8c2l6ZV90IHNpemUsIEF0b21pY01vZGUgYXRv
bWljTW9kZT4KIGlubGluZSBib29sIEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6Z2V0KHNpemVf
dCBuKSBjb25zdAogewogICAgIHJldHVybiAhIShiaXRzW24gLyB3b3JkU2l6ZV0gJiAob25lIDw8
IChuICUgd29yZFNpemUpKSk7CiB9CiAKLXRlbXBsYXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9t
aWNNb2RlIGF0b21pY01vZGU+Cit0ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQXRvbWljTW9kZSBhdG9t
aWNNb2RlPgogaW5saW5lIHZvaWQgQml0bWFwPHNpemUsIGF0b21pY01vZGU+OjpzZXQoc2l6ZV90
IG4pCiB7CiAgICAgYml0c1tuIC8gd29yZFNpemVdIHw9IChvbmUgPDwgKG4gJSB3b3JkU2l6ZSkp
OwogfQogCi10ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQml0bWFwQXRvbWljTW9kZSBhdG9taWNNb2Rl
PgordGVtcGxhdGU8c2l6ZV90IHNpemUsIEF0b21pY01vZGUgYXRvbWljTW9kZT4KIGlubGluZSBi
b29sIEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6dGVzdEFuZFNldChzaXplX3QgbikKIHsKICAg
ICBXb3JkVHlwZSBtYXNrID0gb25lIDw8IChuICUgd29yZFNpemUpOwpAQCAtMTAwLDcgKzkyLDcg
QEAgaW5saW5lIGJvb2wgQml0bWFwPHNpemUsIGF0b21pY01vZGU+Ojp0ZQogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLXRlbXBsYXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21p
Y01vZGU+Cit0ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQXRvbWljTW9kZSBhdG9taWNNb2RlPgogaW5s
aW5lIGJvb2wgQml0bWFwPHNpemUsIGF0b21pY01vZGU+Ojp0ZXN0QW5kQ2xlYXIoc2l6ZV90IG4p
CiB7CiAgICAgV29yZFR5cGUgbWFzayA9IG9uZSA8PCAobiAlIHdvcmRTaXplKTsKQEAgLTExMCwx
MyArMTAyLDEzIEBAIGlubGluZSBib29sIEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6dGUKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi10ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQml0bWFwQXRvbWlj
TW9kZSBhdG9taWNNb2RlPgordGVtcGxhdGU8c2l6ZV90IHNpemUsIEF0b21pY01vZGUgYXRvbWlj
TW9kZT4KIGlubGluZSBib29sIEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6Y29uY3VycmVudFRl
c3RBbmRTZXQoc2l6ZV90IG4pCiB7Ci0gICAgaWYgKGF0b21pY01vZGUgPT0gQml0bWFwTm90QXRv
bWljKQorICAgIGlmIChhdG9taWNNb2RlID09IE1vZGVOb3RBdG9taWMpCiAgICAgICAgIHJldHVy
biB0ZXN0QW5kU2V0KG4pOwogCi0gICAgQVNTRVJUKGF0b21pY01vZGUgPT0gQml0bWFwQXRvbWlj
KTsKKyAgICBBU1NFUlQoYXRvbWljTW9kZSA9PSBNb2RlQXRvbWljKTsKICAgICAKICAgICBXb3Jk
VHlwZSBtYXNrID0gb25lIDw8IChuICUgd29yZFNpemUpOwogICAgIHNpemVfdCBpbmRleCA9IG4g
LyB3b3JkU2l6ZTsKQEAgLTEzMCwxMyArMTIyLDEzIEBAIGlubGluZSBib29sIEJpdG1hcDxzaXpl
LCBhdG9taWNNb2RlPjo6Y28KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXRlbXBsYXRlPHNpemVf
dCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01vZGU+Cit0ZW1wbGF0ZTxzaXplX3Qgc2l6
ZSwgQXRvbWljTW9kZSBhdG9taWNNb2RlPgogaW5saW5lIGJvb2wgQml0bWFwPHNpemUsIGF0b21p
Y01vZGU+Ojpjb25jdXJyZW50VGVzdEFuZENsZWFyKHNpemVfdCBuKQogewotICAgIGlmIChhdG9t
aWNNb2RlID09IEJpdG1hcE5vdEF0b21pYykKKyAgICBpZiAoYXRvbWljTW9kZSA9PSBNb2RlTm90
QXRvbWljKQogICAgICAgICByZXR1cm4gdGVzdEFuZENsZWFyKG4pOwogCi0gICAgQVNTRVJUKGF0
b21pY01vZGUgPT0gQml0bWFwQXRvbWljKTsKKyAgICBBU1NFUlQoYXRvbWljTW9kZSA9PSBNb2Rl
QXRvbWljKTsKICAgICAKICAgICBXb3JkVHlwZSBtYXNrID0gb25lIDw8IChuICUgd29yZFNpemUp
OwogICAgIHNpemVfdCBpbmRleCA9IG4gLyB3b3JkU2l6ZTsKQEAgLTE1MCwxOSArMTQyLDE5IEBA
IGlubGluZSBib29sIEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6Y28KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdGVtcGxhdGU8c2l6ZV90IHNpemUsIEJpdG1hcEF0b21pY01vZGUgYXRvbWljTW9k
ZT4KK3RlbXBsYXRlPHNpemVfdCBzaXplLCBBdG9taWNNb2RlIGF0b21pY01vZGU+CiBpbmxpbmUg
dm9pZCBCaXRtYXA8c2l6ZSwgYXRvbWljTW9kZT46OmNsZWFyKHNpemVfdCBuKQogewogICAgIGJp
dHNbbiAvIHdvcmRTaXplXSAmPSB+KG9uZSA8PCAobiAlIHdvcmRTaXplKSk7CiB9CiAKLXRlbXBs
YXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01vZGU+Cit0ZW1wbGF0ZTxz
aXplX3Qgc2l6ZSwgQXRvbWljTW9kZSBhdG9taWNNb2RlPgogaW5saW5lIHZvaWQgQml0bWFwPHNp
emUsIGF0b21pY01vZGU+OjpjbGVhckFsbCgpCiB7CiAgICAgbWVtc2V0KGJpdHMuZGF0YSgpLCAw
LCBzaXplb2YoYml0cykpOwogfQogCi10ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQml0bWFwQXRvbWlj
TW9kZSBhdG9taWNNb2RlPgordGVtcGxhdGU8c2l6ZV90IHNpemUsIEF0b21pY01vZGUgYXRvbWlj
TW9kZT4KIGlubGluZSBzaXplX3QgQml0bWFwPHNpemUsIGF0b21pY01vZGU+OjpuZXh0UG9zc2li
bHlVbnNldChzaXplX3Qgc3RhcnQpIGNvbnN0CiB7CiAgICAgaWYgKCF+Yml0c1tzdGFydCAvIHdv
cmRTaXplXSkKQEAgLTE3MCw3ICsxNjIsNyBAQCBpbmxpbmUgc2l6ZV90IEJpdG1hcDxzaXplLCBh
dG9taWNNb2RlPjo6CiAgICAgcmV0dXJuIHN0YXJ0ICsgMTsKIH0KIAotdGVtcGxhdGU8c2l6ZV90
IHNpemUsIEJpdG1hcEF0b21pY01vZGUgYXRvbWljTW9kZT4KK3RlbXBsYXRlPHNpemVfdCBzaXpl
LCBBdG9taWNNb2RlIGF0b21pY01vZGU+CiBpbmxpbmUgaW50NjRfdCBCaXRtYXA8c2l6ZSwgYXRv
bWljTW9kZT46OmZpbmRSdW5PZlplcm9zKHNpemVfdCBydW5MZW5ndGgpIGNvbnN0CiB7CiAgICAg
aWYgKCFydW5MZW5ndGgpIApAQCAtMTkwLDcgKzE4Miw3IEBAIGlubGluZSBpbnQ2NF90IEJpdG1h
cDxzaXplLCBhdG9taWNNb2RlPjoKICAgICByZXR1cm4gLTE7CiB9CiAKLXRlbXBsYXRlPHNpemVf
dCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01vZGU+Cit0ZW1wbGF0ZTxzaXplX3Qgc2l6
ZSwgQXRvbWljTW9kZSBhdG9taWNNb2RlPgogaW5saW5lIHNpemVfdCBCaXRtYXA8c2l6ZSwgYXRv
bWljTW9kZT46OmNvdW50KHNpemVfdCBzdGFydCkgY29uc3QKIHsKICAgICBzaXplX3QgcmVzdWx0
ID0gMDsKQEAgLTIwMyw3ICsxOTUsNyBAQCBpbmxpbmUgc2l6ZV90IEJpdG1hcDxzaXplLCBhdG9t
aWNNb2RlPjo6CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdGVtcGxhdGU8c2l6ZV90IHNpemUs
IEJpdG1hcEF0b21pY01vZGUgYXRvbWljTW9kZT4KK3RlbXBsYXRlPHNpemVfdCBzaXplLCBBdG9t
aWNNb2RlIGF0b21pY01vZGU+CiBpbmxpbmUgc2l6ZV90IEJpdG1hcDxzaXplLCBhdG9taWNNb2Rl
Pjo6aXNFbXB0eSgpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3b3Jkczsg
KytpKQpAQCAtMjEyLDcgKzIwNCw3IEBAIGlubGluZSBzaXplX3QgQml0bWFwPHNpemUsIGF0b21p
Y01vZGU+OjoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdGVtcGxhdGU8c2l6ZV90IHNpemUsIEJp
dG1hcEF0b21pY01vZGUgYXRvbWljTW9kZT4KK3RlbXBsYXRlPHNpemVfdCBzaXplLCBBdG9taWNN
b2RlIGF0b21pY01vZGU+CiBpbmxpbmUgc2l6ZV90IEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6
aXNGdWxsKCkgY29uc3QKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzOyArK2kp
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTU0OTMzKQorKysgU291cmNlL1dU
Ri93dGYvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsNiArMyw3IEBAIHNldChX
VEZfSEVBREVSUwogICAgIEFWTFRyZWUuaAogICAgIEFsaWdubWVudC5oCiAgICAgQXNzZXJ0aW9u
cy5oCisgICAgQXRvbWljTW9kZS5oCiAgICAgQXRvbWljcy5oCiAgICAgQml0QXJyYXkuaAogICAg
IEJpdFZlY3Rvci5oCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9EZWZlcnJhYmxlUmVmQ291bnRlZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0RlZmVycmFibGVSZWZDb3VudGVkLmgJKHJl
dmlzaW9uIDE1NDkzMykKKysrIFNvdXJjZS9XVEYvd3RmL0RlZmVycmFibGVSZWZDb3VudGVkLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDExIEBACiAjZGVmaW5lIERlZmVycmFibGVSZWZD
b3VudGVkX2gKIAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0F0
b21pY01vZGUuaD4KKyNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0
QWxsb2NCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKQEAgLTM4LDYgKzQx
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyBzcGVjaWZpY2FsbHkgaGFwcGVuZWQgLSB0aGlzIGNh
biBiZSB1c2VmdWwgZWl0aGVyIGZvciBkZWJ1Z2dpbmcsIG9yCiAvLyBzb21ldGltZXMgZXZlbiBm
b3Igc29tZSBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHkuCiAKK3RlbXBsYXRlPEF0b21pY01vZGUg
YXRvbWljTW9kZT4KIGNsYXNzIERlZmVycmFibGVSZWZDb3VudGVkQmFzZSB7CiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGRlZmVycmVkRmxhZyA9IDE7CiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG5vcm1hbEluY3JlbWVudCA9IDI7CkBAIC00NSw3ICs0OSwxOSBAQCBjbGFzcyBEZWZlcnJh
YmxlUmVmQ291bnRlZEJhc2UgewogcHVibGljOgogICAgIHZvaWQgcmVmKCkKICAgICB7CisgICAg
ICAgIGlmIChhdG9taWNNb2RlID09IE1vZGVOb3RBdG9taWMpIHsKKyAgICAgICAgICAgIG1fcmVm
Q291bnQgKz0gbm9ybWFsSW5jcmVtZW50OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisjaWYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisgICAgICAgIHVuc2lnbmVkIG9sZFZhbHVl
OworICAgICAgICBkbyB7CisgICAgICAgICAgICBvbGRWYWx1ZSA9IG1fcmVmQ291bnQ7CisgICAg
ICAgIH0gd2hpbGUgKCF3ZWFrQ29tcGFyZUFuZFN3YXAoJm1fcmVmQ291bnQsIG9sZFZhbHVlLCBv
bGRWYWx1ZSArIG5vcm1hbEluY3JlbWVudCkpOworI2Vsc2UgLy8gRU5BQkxFKENPTVBBUkVfQU5E
X1NXQVApCisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBtX3Jl
ZkNvdW50ICs9IG5vcm1hbEluY3JlbWVudDsKKyNlbmRpZiAvLyBFTkFCTEUoQ09NUEFSRV9BTkRf
U1dBUCkKICAgICB9CiAgICAgCiAgICAgYm9vbCBoYXNPbmVSZWYoKSBjb25zdApAQCAtNzUsMzcg
KzkxLDgyIEBAIHByb3RlY3RlZDoKICAgICAKICAgICBib29sIGRlcmVmQmFzZSgpCiAgICAgewor
ICAgICAgICBpZiAoYXRvbWljTW9kZSA9PSBNb2RlTm90QXRvbWljKSB7CisgICAgICAgICAgICBt
X3JlZkNvdW50IC09IG5vcm1hbEluY3JlbWVudDsKKyAgICAgICAgICAgIHJldHVybiAhbV9yZWZD
b3VudDsKKyAgICAgICAgfQorI2lmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQorICAgICAgICB1
bnNpZ25lZCBvbGRWYWx1ZTsKKyAgICAgICAgdW5zaWduZWQgbmV3VmFsdWU7CisgICAgICAgIGRv
IHsKKyAgICAgICAgICAgIG9sZFZhbHVlID0gbV9yZWZDb3VudDsKKyAgICAgICAgICAgIG5ld1Zh
bHVlID0gb2xkVmFsdWUgLSBub3JtYWxJbmNyZW1lbnQ7CisgICAgICAgIH0gd2hpbGUgKCF3ZWFr
Q29tcGFyZUFuZFN3YXAoJm1fcmVmQ291bnQsIG9sZFZhbHVlLCBuZXdWYWx1ZSkpOworICAgICAg
ICByZXR1cm4gIW5ld1ZhbHVlOworI2Vsc2UgLy8gRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCisg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBtX3JlZkNvdW50IC09
IG5vcm1hbEluY3JlbWVudDsKICAgICAgICAgcmV0dXJuICFtX3JlZkNvdW50OworI2VuZGlmIC8v
IEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQogICAgIH0KIAogICAgIGJvb2wgc2V0SXNEZWZlcnJl
ZEJhc2UoYm9vbCB2YWx1ZSkKICAgICB7CisgICAgICAgIGlmIChhdG9taWNNb2RlID09IE1vZGVO
b3RBdG9taWMpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSkgeworICAgICAgICAgICAgICAgIG1f
cmVmQ291bnQgfD0gZGVmZXJyZWRGbGFnOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fcmVmQ291bnQgJj0gfmRlZmVycmVkRmxhZzsK
KyAgICAgICAgICAgIHJldHVybiAhbV9yZWZDb3VudDsKKyAgICAgICAgfQorI2lmIEVOQUJMRShD
T01QQVJFX0FORF9TV0FQKQorICAgICAgICB1bnNpZ25lZCBvbGRWYWx1ZTsKKyAgICAgICAgdW5z
aWduZWQgbmV3VmFsdWU7CisgICAgICAgIGJvb2wgcmVzdWx0OworICAgICAgICBkbyB7CisgICAg
ICAgICAgICBvbGRWYWx1ZSA9IG1fcmVmQ291bnQ7CisgICAgICAgICAgICBpZiAodmFsdWUpIHsK
KyAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IG9sZFZhbHVlIHwgZGVmZXJyZWRGbGFnOworICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBuZXdWYWx1ZSA9IG9sZFZhbHVlICYgfmRlZmVycmVkRmxhZzsKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSAhbmV3VmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hp
bGUgKCF3ZWFrQ29tcGFyZUFuZFN3YXAoJm1fcmVmQ291bnQsIG9sZFZhbHVlLCBuZXdWYWx1ZSkp
OworICAgICAgICByZXR1cm4gcmVzdWx0OworI2Vsc2UgLy8gRU5BQkxFKENPTVBBUkVfQU5EX1NX
QVApCisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBpZiAodmFs
dWUpIHsKICAgICAgICAgICAgIG1fcmVmQ291bnQgfD0gZGVmZXJyZWRGbGFnOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIG1fcmVmQ291bnQgJj0gfmRlZmVy
cmVkRmxhZzsKICAgICAgICAgcmV0dXJuICFtX3JlZkNvdW50OworI2VuZGlmIC8vIEVOQUJMRShD
T01QQVJFX0FORF9TV0FQKQogICAgIH0KICAgICAKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9y
ZWZDb3VudDsKKworI2lmICFFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKKyAgICBNdXRleCBtX2xv
Y2s7CisjZW5kaWYgLy8gIUVOQUJMRShDT01QQVJFX0FORF9TV0FQKQogfTsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLWNsYXNzIERlZmVycmFibGVSZWZDb3VudGVkIDogcHVibGljIERlZmVycmFi
bGVSZWZDb3VudGVkQmFzZSB7Cit0ZW1wbGF0ZTxBdG9taWNNb2RlIGF0b21pY01vZGUsIHR5cGVu
YW1lIFQ+CitjbGFzcyBEZWZlcnJhYmxlUmVmQ291bnRlZCA6IHB1YmxpYyBEZWZlcnJhYmxlUmVm
Q291bnRlZEJhc2U8YXRvbWljTW9kZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERlZmVy
cmFibGVSZWZDb3VudGVkKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
dm9pZCBkZXJlZigpCiAgICAgewotICAgICAgICBpZiAoZGVyZWZCYXNlKCkpCisgICAgICAgIGlm
ICh0aGlzLT5kZXJlZkJhc2UoKSkKICAgICAgICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxUKj4o
dGhpcyk7CiAgICAgfQogICAgIAogICAgIGJvb2wgc2V0SXNEZWZlcnJlZChib29sIHZhbHVlKQog
ICAgIHsKLSAgICAgICAgaWYgKCFzZXRJc0RlZmVycmVkQmFzZSh2YWx1ZSkpCisgICAgICAgIGlm
ICghdGhpcy0+c2V0SXNEZWZlcnJlZEJhc2UodmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8VCo+KHRoaXMpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>