<?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>185413</bug_id>
          
          <creation_ts>2018-05-07 21:35:22 -0700</creation_ts>
          <short_desc>Introduce WebResourceLoadStatisticsStoreClient</short_desc>
          <delta_ts>2018-08-01 14:29:53 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1421629</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-05-07 21:35:22 -0700</bug_when>
    <thetext>Introduce WebResourceLoadStatisticsStoreClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421630</commentid>
    <comment_count>1</comment_count>
      <attachid>339796</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-05-07 21:36:14 -0700</bug_when>
    <thetext>Created attachment 339796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421801</commentid>
    <comment_count>2</comment_count>
      <attachid>339835</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-05-08 11:05:06 -0700</bug_when>
    <thetext>Created attachment 339835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421810</commentid>
    <comment_count>3</comment_count>
      <attachid>339838</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-05-08 11:12:11 -0700</bug_when>
    <thetext>Created attachment 339838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446992</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-01 14:29:53 -0700</bug_when>
    <thetext>This isn&apos;t needed any more</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339796</attachid>
            <date>2018-05-07 21:36:14 -0700</date>
            <delta_ts>2018-05-08 11:05:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185413-20180507213611.patch</filename>
            <type>text/plain</type>
            <size>21722</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzE0NzgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTA1LTA3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50cm9kdWNlIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZUNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1NDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUncyBhIHJlZmVyZW5jZSBjeWNsZSBzdGls
bCwgYnV0IG5vdyBpdCdzIG1vcmUgb2J2aW91cyBhbmQgZml4YWJsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5k
ZXJPcGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlQ29va2llUGFy
dGl0aW9uaW5nRm9yRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Y2xlYXJQYXJ0aXRpb25pbmdTdGF0ZUZvckRvbWFpbnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlQ2xpZW50Ojp+V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQW5kU2V0VGVzdGlu
Z0NhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6aGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxl
cik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaDoKKwogMjAxOC0wNS0wNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWJzdHJhY3QgbG9naWMgdG8gbG9nIGNvbnNvbGUgbWVzc2FnZXMgYW5kIHNl
bmQgQ1NQIHZpb2xhdGlvbiByZXBvcnRzIGludG8gYSBjbGllbnQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAkocmV2aXNpb24gMjMxNDY1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDE0
ICsxNTQsMTAgQEAgc3RhdGljIFZlY3RvcjxPcGVyYXRpbmdEYXRlPiBtZXJnZU9wZXJhdAogICAg
IHJldHVybiBtZXJnZWREYXRlczsKIH0KIAotV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRl
c3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVtZXJhbCwgVXBkYXRlUHJldmFsZW50RG9tYWluc1Rv
UGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyJiYgdXBkYXRlUHJldmFsZW50RG9tYWluc1Rv
UGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyLCBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVI
YW5kbGVyJiYgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciwgR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlciYmIGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIsIFJlbW92ZUFsbFN0b3JhZ2VB
Y2Nlc3NIYW5kbGVyJiYgcmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIsIFJlbW92ZVByZXZh
bGVudERvbWFpbnNIYW5kbGVyJiYgcmVtb3ZlRG9tYWluc0hhbmRsZXIpCitXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShjb25zdCBT
dHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIEZ1bmN0aW9uPHZvaWQoY29u
c3QgU3RyaW5nJik+JiYgdGVzdGluZ0NhbGxiYWNrLCBib29sIGlzRXBoZW1lcmFsLCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fc3RhdGlzdGlj
c1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUg
UHJvY2VzcyBEYXRhIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6
UU9TOjpVdGlsaXR5KSkKICAgICAsIG1fcGVyc2lzdGVudFN0b3JhZ2UoKnRoaXMsIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIGlzRXBoZW1lcmFsID8gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BlcnNpc3RlbnRTdG9yYWdlOjpJc1JlYWRPbmx5OjpZZXMgOiBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6OklzUmVhZE9ubHk6Ok5vKQotICAgICwgbV91cGRhdGVQ
cmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIoV1RGTW92ZSh1
cGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIpKQot
ICAgICwgbV9oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKFdURk1vdmUoaGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcikpCi0gICAgLCBtX2dyYW50U3RvcmFnZUFjY2Vzc0hhbmRs
ZXIoV1RGTW92ZShncmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKSkKLSAgICAsIG1fcmVtb3ZlQWxs
U3RvcmFnZUFjY2Vzc0hhbmRsZXIoV1RGTW92ZShyZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxl
cikpCi0gICAgLCBtX3JlbW92ZURvbWFpbnNIYW5kbGVyKFdURk1vdmUocmVtb3ZlRG9tYWluc0hh
bmRsZXIpKQorICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9kYWlseVRhc2tzVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpw
ZXJmb3JtRGFpbHlUYXNrcykKICAgICAsIG1fc3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjayhXVEZN
b3ZlKHRlc3RpbmdDYWxsYmFjaykpCiB7CkBAIC0zNTEsNyArMzQ3LDggQEAgdm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmhhcwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKLSAgICAgICAgbV9oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKHN1YkZyYW1l
UHJpbWFyeURvbWFpbiwgdG9wRnJhbWVQcmltYXJ5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9j
bGllbnQtPmhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShzdWJGcmFtZVByaW1hcnlEb21haW4sIHRv
cEZyYW1lUHJpbWFyeURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CiAgICAgfSk7CiB9CiAKQEAgLTM4NiwxMSArMzgzLDEzIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpyZXEKIAogICAgICAgICBzdWJGcmFtZVN0YXRpc3RpYy50aW1lc0Fj
Y2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJKys7CiAKLSAgICAgICAgbV9n
cmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKHN1YkZyYW1lUHJpbWFyeURvbWFpbiwgdG9wRnJhbWVQ
cmltYXJ5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXSAoYm9vbCB2YWx1ZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt2YWx1ZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gewotICAgICAgICAgICAgICAg
IGNhbGxiYWNrKHZhbHVlKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KSB7CisgICAgICAgICAgICBt
X2NsaWVudC0+Z3JhbnRTdG9yYWdlQWNjZXNzKHN1YkZyYW1lUHJpbWFyeURvbWFpbiwgdG9wRnJh
bWVQcmltYXJ5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIFtjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSAoYm9vbCB2YWx1ZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbdmFsdWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsKKyAgICAgICAg
ICAgICAgICAgICAgY2FsbGJhY2sodmFsdWUpOworICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICB9CiAgICAgfSk7CiB9CiAKQEAgLTQxMyw3
ICs0MTIsOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxCiAgICAg
aWYgKCFjb29raWVzQmxvY2tlZCAmJiAhc2hvdWxkUGFydGl0aW9uQ29va2llcyhkb21haW5Jbk5l
ZWRPZlN0b3JhZ2VBY2Nlc3NTdGF0aXN0aWMpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2dy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nl
c3MpLCBXVEZNb3ZlKG9wZW5lckRvbWFpbiksIHN0ZDo6bnVsbG9wdCwgb3BlbmVyUGFnZUlELCBb
XShib29sKSB7IH0pOworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmdyYW50
U3RvcmFnZUFjY2VzcyhXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyksIFdURk1v
dmUob3BlbmVyRG9tYWluKSwgc3RkOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQsIFtdKGJvb2wpIHsg
fSk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgUkVMRUFTRV9MT0dfSU5GT19JRiht
X2RlYnVnTG9nZ2luZ0VuYWJsZWQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkdyYW50
IHN0b3JhZ2UgYWNjZXNzIGZvciAle3B1YmxpY31zIHVuZGVyIG9wZW5lciAle3B1YmxpY31zLCAl
e3B1YmxpY31zIHVzZXIgaW50ZXJhY3Rpb24uIiwgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNz
LnV0ZjgoKS5kYXRhKCksIG9wZW5lckRvbWFpbi51dGY4KCkuZGF0YSgpLCAoaXNUcmlnZ2VyZWRC
eVVzZXJHZXN0dXJlID8gIndpdGgiIDogIndpdGhvdXQiKSk7CiAjZW5kaWYKQEAgLTQyMyw3ICs0
MjMsOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVtCiB7CiAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgpIHsKLSAgICAgICAgbV9y
ZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlcigpOworICAgICAgICBpZiAobV9jbGllbnQpCisg
ICAgICAgICAgICBtX2NsaWVudC0+cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpOwogICAgIH0pOwog
fQogCkBAIC0xMDc4LDcgKzEwNzksOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6dXBkCiAjZW5kaWYKIAogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkb21haW5zVG9QYXJ0aXRpb24gPSBjcm9z
c1RocmVhZENvcHkoZG9tYWluc1RvUGFydGl0aW9uKSwgZG9tYWluc1RvQmxvY2sgPSBjcm9zc1Ro
cmVhZENvcHkoZG9tYWluc1RvQmxvY2spLCBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxv
Y2sgPSBjcm9zc1RocmVhZENvcHkoZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrKSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgewotICAgICAgICBtX3VwZGF0ZVByZXZh
bGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlcihkb21haW5zVG9QYXJ0
aXRpb24sIGRvbWFpbnNUb0Jsb2NrLCBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2ss
IFNob3VsZENsZWFyRmlyc3Q6Ok5vKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAg
ICAgbV9jbGllbnQtPnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29r
aWVzKGRvbWFpbnNUb1BhcnRpdGlvbiwgZG9tYWluc1RvQmxvY2ssIGRvbWFpbnNUb05laXRoZXJQ
YXJ0aXRpb25Ob3JCbG9jaywgU2hvdWxkQ2xlYXJGaXJzdDo6Tm8pOwogICAgICAgICBjYWxsYmFj
aygpOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICBSRUxFQVNFX0xPR19JTkZP
X0lGKG1fZGVidWdMb2dnaW5nRW5hYmxlZCwgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAi
RG9uZSB1cGRhdGluZyBjb29raWUgcGFydGl0aW9uaW5nIGFuZCBibG9ja2luZy4iKTsKQEAgLTEw
OTUsNyArMTA5Nyw4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGQK
ICAgICB9CiAgICAgCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBzaG91bGRD
bGVhckZpcnN0LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGRvbWFpbnNUb1BhcnRp
dGlvbiA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zVG9QYXJ0aXRpb24pLCBkb21haW5zVG9CbG9j
ayA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zVG9CbG9jayksIGRvbWFpbnNUb05laXRoZXJQYXJ0
aXRpb25Ob3JCbG9jayA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zVG9OZWl0aGVyUGFydGl0aW9u
Tm9yQmxvY2spXSAoKSB7Ci0gICAgICAgIG1fdXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0
aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyKGRvbWFpbnNUb1BhcnRpdGlvbiwgZG9tYWluc1RvQmxv
Y2ssIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywgc2hvdWxkQ2xlYXJGaXJzdCk7
CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT51cGRhdGVQcmV2
YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhkb21haW5zVG9QYXJ0aXRpb24s
IGRvbWFpbnNUb0Jsb2NrLCBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2ssIHNob3Vs
ZENsZWFyRmlyc3QpOwogICAgIH0pOwogCiAgICAgaWYgKHNob3VsZENsZWFyRmlyc3QgPT0gU2hv
dWxkQ2xlYXJGaXJzdDo6WWVzKQpAQCAtMTEyNiw3ICsxMTI5LDggQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNsZQogICAgIH0KIAogICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkb21haW5zID0g
Y3Jvc3NUaHJlYWRDb3B5KGRvbWFpbnMpXSAoKSB7Ci0gICAgICAgIG1fcmVtb3ZlRG9tYWluc0hh
bmRsZXIoZG9tYWlucyk7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xp
ZW50LT5yZW1vdmVQcmV2YWxlbnREb21haW5zKGRvbWFpbnMpOwogICAgIH0pOwogCiAgICAgZm9y
IChhdXRvJiBkb21haW4gOiBkb21haW5zKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAkocmV2aXNp
b24gMjMxNDYwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDE2ICs1OSwyMyBAQCBjbGFzcyBX
ZWJQcm9jZXNzUHJveHk7CiAKIGVudW0gY2xhc3MgU2hvdWxkQ2xlYXJGaXJzdDsKIAorY2xhc3Mg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIHZvaWQgcmVmKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tp
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRvbWFpbnNUb0Jsb2NrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1Rv
TmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBTaG91bGRDbGVhckZpcnN0KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdHJpbmcmIHJlc291cmNl
RG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3RyaW5nJiByZXNvdXJj
ZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2Vzcygp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYpID0gMDsKKyAgICB2aXJ0dWFsIH5XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmVDbGllbnQoKSB7IH07Cit9OworCiBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUgZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXIgewogcHVibGljOgotICAgIHVzaW5nIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRp
dGlvbk9yQmxvY2tDb29raWVzSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZG9tYWluc1RvUGFydGl0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9t
YWluc1RvQmxvY2ssIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9OZWl0aGVyUGFydGl0
aW9uTm9yQmxvY2ssIFNob3VsZENsZWFyRmlyc3QpPjsKLSAgICB1c2luZyBIYXNTdG9yYWdlQWNj
ZXNzRm9yRnJhbWVIYW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYgcmVz
b3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgcGFnZUlELCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBoYXNBY2Nlc3Mp
PiYmIGNhbGxiYWNrKT47Ci0gICAgdXNpbmcgR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlciA9IFdU
Rjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJp
bmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVp
bnQ2NF90IHBhZ2VJRCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgd2FzR3JhbnRlZCk+JiYgY2Fs
bGJhY2spPjsKLSAgICB1c2luZyBSZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlciA9IFdURjo6
RnVuY3Rpb248dm9pZCgpPjsKLSAgICB1c2luZyBSZW1vdmVQcmV2YWxlbnREb21haW5zSGFuZGxl
ciA9IFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT47Ci0gICAgc3Rh
dGljIFJlZjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIEZ1bmN0aW9uPHZvaWQgKGNvbnN0
IFN0cmluZyYpPiYmIHRlc3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVtZXJhbCwgVXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyJiYgdXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyID0gW10oY29uc3Qg
V1RGOjpWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdURjo6VmVjdG9yPFN0cmluZz4mLCBjb25zdCBX
VEY6OlZlY3RvcjxTdHJpbmc+JiwgU2hvdWxkQ2xlYXJGaXJzdCkgeyB9LCBIYXNTdG9yYWdlQWNj
ZXNzRm9yRnJhbWVIYW5kbGVyJiYgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciA9IFtd
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90LCB1aW50NjRfdCwgV1RGOjpG
dW5jdGlvbjx2b2lkKGJvb2wpPiYmKSB7IH0sIEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXImJiBn
cmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyID0gW10oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
Jiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4sIHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQo
Ym9vbCk+JiYpIHsgfSwgUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXImJiByZW1vdmVBbGxT
dG9yYWdlQWNjZXNzSGFuZGxlciA9IFtdKCkgeyB9LCBSZW1vdmVQcmV2YWxlbnREb21haW5zSGFu
ZGxlciYmIHJlbW92ZURvbWFpbnNIYW5kbGVyID0gW10gKGNvbnN0IFdURjo6VmVjdG9yPFN0cmlu
Zz4mKSB7IH0pCisgICAgc3RhdGljIFJlZjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIEZ1
bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgdGVzdGluZ0NhbGxiYWNrLCBib29sIGlzRXBo
ZW1lcmFsLCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVDbGllbnQqIGNsaWVudCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBXVEZNb3ZlKHRlc3RpbmdD
YWxsYmFjayksIGlzRXBoZW1lcmFsLCBXVEZNb3ZlKHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1Bh
cnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlciksIFdURk1vdmUoaGFzU3RvcmFnZUFjY2Vzc0Zv
ckZyYW1lSGFuZGxlciksIFdURk1vdmUoZ3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlciksIFdURk1v
dmUocmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIpLCBXVEZNb3ZlKHJlbW92ZURvbWFpbnNI
YW5kbGVyKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGTW92ZSh0
ZXN0aW5nQ2FsbGJhY2spLCBpc0VwaGVtZXJhbCwgY2xpZW50KSk7CiAgICAgfQogCiAgICAgfldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSgpOwpAQCAtMTUyLDcgKzE1OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGxvZ1Rlc3RpbmdFdmVudChjb25zdCBTdHJpbmcmKTsKIAogcHJpdmF0ZToK
LSAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoY29uc3QgU3RyaW5nJiwgRnVuY3Rp
b248dm9pZChjb25zdCBTdHJpbmcmKT4mJiB0ZXN0aW5nQ2FsbGJhY2ssIGJvb2wgaXNFcGhlbWVy
YWwsIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxl
ciYmLCBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyJiYsIEdyYW50U3RvcmFnZUFjY2Vz
c0hhbmRsZXImJiwgUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXImJiwgUmVtb3ZlUHJldmFs
ZW50RG9tYWluc0hhbmRsZXImJik7CisgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
KGNvbnN0IFN0cmluZyYsIEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgdGVzdGluZ0Nh
bGxiYWNrLCBib29sIGlzRXBoZW1lcmFsLCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVD
bGllbnQqKTsKIAogICAgIHZvaWQgcmVtb3ZlRGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKIApAQCAtMjExLDExICsyMTgsNyBAQCBwcml2YXRlOgogICAgIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZSBtX3BlcnNpc3RlbnRTdG9yYWdlOwogICAg
IFZlY3RvcjxPcGVyYXRpbmdEYXRlPiBtX29wZXJhdGluZ0RhdGVzOwogCi0gICAgVXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyIG1fdXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyOwotICAgIEhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIgbV9oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5k
bGVyOwotICAgIEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIgbV9ncmFudFN0b3JhZ2VBY2Nlc3NI
YW5kbGVyOwotICAgIFJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyIG1fcmVtb3ZlQWxsU3Rv
cmFnZUFjY2Vzc0hhbmRsZXI7Ci0gICAgUmVtb3ZlUHJldmFsZW50RG9tYWluc0hhbmRsZXIgbV9y
ZW1vdmVEb21haW5zSGFuZGxlcjsKKyAgICBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlQ2xpZW50PiBtX2NsaWVudDsKIAogICAgIFdhbGxUaW1lIG1fZW5kT2ZHcmFuZGZhdGhl
cmluZ1RpbWVzdGFtcDsKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU+IG1fZGFpbHlUYXNrc1RpbWVyOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAJKHJldmlz
aW9uIDIzMTQ2MCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTk4LDcgKzExOTgsNyBAQCB2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OnVwZGF0ZVByZXZhbGVudERvCiAgICAgICAgIHByb2Nlc3NQb29s
LT5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlVwZGF0
ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzKG1fc2Vzc2lvbklELCBk
b21haW5zVG9QYXJ0aXRpb24sIGRvbWFpbnNUb0Jsb2NrLCBkb21haW5zVG9OZWl0aGVyUGFydGl0
aW9uTm9yQmxvY2ssIHNob3VsZENsZWFyRmlyc3QgPT0gU2hvdWxkQ2xlYXJGaXJzdDo6WWVzKSk7
CiB9CiAKLXZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFu
ZGxlcihjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFy
dHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2Vic2l0
ZURhdGFTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN0cmluZyYgcmVzb3Vy
Y2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgcGFnZUlELCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNB
Y2Nlc3MpPiYmIGNhbGxiYWNrKQogewogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9j
ZXNzUG9vbHMoKSkKICAgICAgICAgcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCktPmhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShtX3Nlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGZpcnN0UGFy
dHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykpOwpAQCAtMTIxMCwx
MyArMTIxMCwxMyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmdldEFsbFN0b3JhZ2VBY2NlCiAg
ICAgICAgIHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpLT5nZXRBbGxTdG9yYWdlQWNjZXNz
RW50cmllcyhtX3Nlc3Npb25JRCwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCi12b2lkIFdlYnNp
dGVEYXRhU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3RyaW5nJiByZXNv
dXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sIHdhc0dyYW50ZWQpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJzaXRlRGF0YVN0
b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHdh
c0dyYW50ZWQpPiYmIGNhbGxiYWNrKQogewogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBw
cm9jZXNzUG9vbHMoKSkKICAgICAgICAgcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCktPmdy
YW50U3RvcmFnZUFjY2VzcyhtX3Nlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlE
b21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCi12b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKCkKK3ZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpCiB7CiAgICAgZm9yIChhdXRv
JiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKSB7CiAgICAgICAgIGlmIChhdXRvIG5ldHdv
cmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCkBAIC0xNDQ5LDE5ICsx
NDQ5LDkgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjplbmFibGVSZXNvdXJjZUxvYQogICAgIH0K
IAogI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQotICAgIG1fcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRl
KG1fY29uZmlndXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBXVEZNb3Zl
KGNhbGxiYWNrKSwgbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0gKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9QYXJ0
aXRpb24sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywgU2hvdWxkQ2xlYXJG
aXJzdCBzaG91bGRDbGVhckZpcnN0KSB7Ci0gICAgICAgIHVwZGF0ZVByZXZhbGVudERvbWFpbnNU
b1BhcnRpdGlvbk9yQmxvY2tDb29raWVzKGRvbWFpbnNUb1BhcnRpdGlvbiwgZG9tYWluc1RvQmxv
Y2ssIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywgc2hvdWxkQ2xlYXJGaXJzdCk7
Ci0gICAgfSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKGNvbnN0IFN0
cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNhbGxiYWNrKSB7Ci0gICAgICAgIGhhc1N0b3JhZ2VBY2Nl
c3NGb3JGcmFtZUhhbmRsZXIocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1l
SUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykpOwotICAgIH0sIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyldIChjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25z
dCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgd2Fz
R3JhbnRlZCk+JiYgY2FsbGJhY2spIHsKLSAgICAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxl
cihyZXNvdXJjZURvbWFpbiwgZmlyc3RQYXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBXVEZN
b3ZlKGNhbGxiYWNrKSk7Ci0gICAgfSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKV0gKCkgewotICAgICAgICByZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlcigpOwotICAg
IH0sIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIChjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZG9tYWluc1RvUmVtb3ZlKSB7Ci0gICAgICAgIHJlbW92ZVByZXZhbGVudERvbWFp
bnMoZG9tYWluc1RvUmVtb3ZlKTsKLSAgICB9KTsKKyAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZShtX2NvbmZpZ3VyYXRp
b24ucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGTW92ZShjYWxsYmFjayksIG1f
c2Vzc2lvbklELmlzRXBoZW1lcmFsKCksIHRoaXMpOwogI2Vsc2UKLSAgICBtX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZShtX2Nv
bmZpZ3VyYXRpb24ucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGTW92ZShjYWxs
YmFjayksIG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpOworICAgIG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKG1fY29uZmln
dXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBXVEZNb3ZlKGNhbGxiYWNr
KSwgbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSwgbnVsbHB0cik7CiAjZW5kaWYKIAogICAgIGZv
ciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgJ
KHJldmlzaW9uIDIzMTQ2MCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiAj
aW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luSGFzaC5oPgpAQCAtNjYsNyArNjcsMTEgQEAgc3RydWN0IFBsdWdpbk1vZHVsZUluZm87
CiAKIGVudW0gY2xhc3MgU2hvdWxkQ2xlYXJGaXJzdCB7IE5vLCBZZXMgfTsKIAotY2xhc3MgV2Vi
c2l0ZURhdGFTdG9yZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYnNpdGVEYXRhU3RvcmU+LCBwdWJs
aWMgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIsIHB1YmxpYyBJZGVudGlmaWVkPFdlYnNpdGVE
YXRhU3RvcmU+ICB7CitjbGFzcyBXZWJzaXRlRGF0YVN0b3JlIDogcHVibGljIFJlZkNvdW50ZWQ8
V2Vic2l0ZURhdGFTdG9yZT4sIHB1YmxpYyBXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlciwgcHVi
bGljIElkZW50aWZpZWQ8V2Vic2l0ZURhdGFTdG9yZT4KKyNpZiBIQVZFKENGTkVUV09SS19TVE9S
QUdFX1BBUlRJVElPTklORykKKyAgICAsIHB1YmxpYyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmVDbGllbnQKKyNlbmRpZgorICAgIHsKIHB1YmxpYzoKICAgICBjb25zdGV4cHIgc3RhdGlj
IHVpbnQ2NF90IGRlZmF1bHRDYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSA9IDUwICogMTAyNCAq
IDEwMjQ7CiAKQEAgLTEyMywxNCArMTI4LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZURh
dGFGb3JUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnMsIEZ1bmN0aW9uPHZvaWQoSGFzaFNl
dDxTdHJpbmc+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKIAogI2lmIEhBVkUoQ0ZORVRXT1JL
X1NUT1JBR0VfUEFSVElUSU9OSU5HKQotICAgIHZvaWQgdXBkYXRlUHJldmFsZW50RG9tYWluc1Rv
UGFydGl0aW9uT3JCbG9ja0Nvb2tpZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1Bh
cnRpdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2NrLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBTaG91bGRDbGVh
ckZpcnN0KTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3Qg
U3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spOworICAgIHZvaWQgdXBkYXRlUHJldmFs
ZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGRvbWFpbnNUb1BhcnRpdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2Nr
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2Nr
LCBTaG91bGRDbGVhckZpcnN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0
UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjaykgb3ZlcnJpZGU7
CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxTdHJpbmc+JiYgZG9tYWlucyk+JiYpOwotICAgIHZvaWQgZ3JhbnRTdG9yYWdl
QWNjZXNzSGFuZGxlcihjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcm
IGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2
NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgd2FzR3JhbnRlZCk+
JiYgY2FsbGJhY2spOwotICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIoKTsK
LSAgICB2b2lkIHJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRv
bWFpbnMpOwotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3Qs
IFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlE
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQgKGJvb2wpPiYmIGNhbGxiYWNrKTsKLSAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJhY2spOworICAgIHZvaWQgZ3JhbnRT
dG9yYWdlQWNjZXNzKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYg
Zmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0
X3QgcGFnZUlELCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRl
OworICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpIG92ZXJyaWRlOworICAgIHZvaWQg
cmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucykgb3Zl
cnJpZGU7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwg
U3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CisgICAgdm9pZCByZWYoKSBvdmVycmlkZSB7IFJlZkNvdW50ZWQ8V2Vic2l0ZURh
dGFTdG9yZT46OnJlZigpOyB9CisgICAgdm9pZCBkZXJlZigpIG92ZXJyaWRlIHsgUmVmQ291bnRl
ZDxXZWJzaXRlRGF0YVN0b3JlPjo6ZGVyZWYoKTsgfQogI2VuZGlmCiAgICAgdm9pZCBuZXR3b3Jr
UHJvY2Vzc0RpZENyYXNoKCk7CiAgICAgdm9pZCByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2Fy
eSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339835</attachid>
            <date>2018-05-08 11:05:06 -0700</date>
            <delta_ts>2018-05-08 11:12:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185413-20180508110505.patch</filename>
            <type>text/plain</type>
            <size>21915</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzE0NzgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTA1LTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50cm9kdWNlIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZUNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1NDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUncyBhIHJlZmVyZW5jZSBjeWNsZSBzdGls
bCwgYnV0IG5vdyBpdCdzIG1vcmUgb2J2aW91cyBhbmQgZml4YWJsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5k
ZXJPcGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlQ29va2llUGFy
dGl0aW9uaW5nRm9yRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Y2xlYXJQYXJ0aXRpb25pbmdTdGF0ZUZvckRvbWFpbnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlQ2xpZW50Ojp+V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQW5kU2V0VGVzdGlu
Z0NhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6aGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxl
cik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaDoKKwogMjAxOC0wNS0wNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWJzdHJhY3QgbG9naWMgdG8gbG9nIGNvbnNvbGUgbWVzc2FnZXMgYW5kIHNl
bmQgQ1NQIHZpb2xhdGlvbiByZXBvcnRzIGludG8gYSBjbGllbnQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAkocmV2aXNpb24gMjMxNDY1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDE0
ICsxNTQsMTAgQEAgc3RhdGljIFZlY3RvcjxPcGVyYXRpbmdEYXRlPiBtZXJnZU9wZXJhdAogICAg
IHJldHVybiBtZXJnZWREYXRlczsKIH0KIAotV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRl
c3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVtZXJhbCwgVXBkYXRlUHJldmFsZW50RG9tYWluc1Rv
UGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyJiYgdXBkYXRlUHJldmFsZW50RG9tYWluc1Rv
UGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyLCBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVI
YW5kbGVyJiYgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciwgR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlciYmIGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIsIFJlbW92ZUFsbFN0b3JhZ2VB
Y2Nlc3NIYW5kbGVyJiYgcmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIsIFJlbW92ZVByZXZh
bGVudERvbWFpbnNIYW5kbGVyJiYgcmVtb3ZlRG9tYWluc0hhbmRsZXIpCitXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShjb25zdCBT
dHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIEZ1bmN0aW9uPHZvaWQoY29u
c3QgU3RyaW5nJik+JiYgdGVzdGluZ0NhbGxiYWNrLCBib29sIGlzRXBoZW1lcmFsLCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fc3RhdGlzdGlj
c1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUg
UHJvY2VzcyBEYXRhIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6
UU9TOjpVdGlsaXR5KSkKICAgICAsIG1fcGVyc2lzdGVudFN0b3JhZ2UoKnRoaXMsIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIGlzRXBoZW1lcmFsID8gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BlcnNpc3RlbnRTdG9yYWdlOjpJc1JlYWRPbmx5OjpZZXMgOiBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6OklzUmVhZE9ubHk6Ok5vKQotICAgICwgbV91cGRhdGVQ
cmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIoV1RGTW92ZSh1
cGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIpKQot
ICAgICwgbV9oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKFdURk1vdmUoaGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcikpCi0gICAgLCBtX2dyYW50U3RvcmFnZUFjY2Vzc0hhbmRs
ZXIoV1RGTW92ZShncmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKSkKLSAgICAsIG1fcmVtb3ZlQWxs
U3RvcmFnZUFjY2Vzc0hhbmRsZXIoV1RGTW92ZShyZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxl
cikpCi0gICAgLCBtX3JlbW92ZURvbWFpbnNIYW5kbGVyKFdURk1vdmUocmVtb3ZlRG9tYWluc0hh
bmRsZXIpKQorICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9kYWlseVRhc2tzVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpw
ZXJmb3JtRGFpbHlUYXNrcykKICAgICAsIG1fc3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjayhXVEZN
b3ZlKHRlc3RpbmdDYWxsYmFjaykpCiB7CkBAIC0zNTEsNyArMzQ3LDEwIEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXMKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCi0gICAgICAgIG1faGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihzdWJGcmFt
ZVByaW1hcnlEb21haW4sIHRvcEZyYW1lUHJpbWFyeURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1f
Y2xpZW50LT5oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoc3ViRnJhbWVQcmltYXJ5RG9tYWluLCB0
b3BGcmFtZVByaW1hcnlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsYmFjayhmYWxzZSk7CiAgICAgfSk7CiB9
CiAKQEAgLTM4NiwxMSArMzg1LDE0IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpyZXEKIAogICAgICAgICBzdWJGcmFtZVN0YXRpc3RpYy50aW1lc0FjY2Vzc2VkQXNGaXJz
dFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJKys7CiAKLSAgICAgICAgbV9ncmFudFN0b3JhZ2VB
Y2Nlc3NIYW5kbGVyKHN1YkZyYW1lUHJpbWFyeURvbWFpbiwgdG9wRnJhbWVQcmltYXJ5RG9tYWlu
LCBmcmFtZUlELCBwYWdlSUQsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCB2
YWx1ZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt2YWx1ZSwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNrKHZh
bHVlKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KSB7CisgICAgICAgICAgICBtX2NsaWVudC0+Z3Jh
bnRTdG9yYWdlQWNjZXNzKHN1YkZyYW1lUHJpbWFyeURvbWFpbiwgdG9wRnJhbWVQcmltYXJ5RG9t
YWluLCBmcmFtZUlELCBwYWdlSUQsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9v
bCB2YWx1ZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdmFs
dWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FsbGJhY2sodmFsdWUpOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsK
ICAgICB9KTsKIH0KIApAQCAtNDEzLDcgKzQxNSw4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpyZXEKICAgICBpZiAoIWNvb2tpZXNCbG9ja2VkICYmICFzaG91bGRQYXJ0
aXRpb25Db29raWVzKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzc1N0YXRpc3RpYykpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fZ3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihXVEZNb3ZlKGRv
bWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyksIFdURk1vdmUob3BlbmVyRG9tYWluKSwgc3RkOjpu
dWxsb3B0LCBvcGVuZXJQYWdlSUQsIFtdKGJvb2wpIHsgfSk7CisgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICBtX2NsaWVudC0+Z3JhbnRTdG9yYWdlQWNjZXNzKFdURk1vdmUoZG9tYWluSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzKSwgV1RGTW92ZShvcGVuZXJEb21haW4pLCBzdGQ6Om51bGxvcHQsIG9w
ZW5lclBhZ2VJRCwgW10oYm9vbCkgeyB9KTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBSRUxFQVNFX0xPR19JTkZPX0lGKG1fZGVidWdMb2dnaW5nRW5hYmxlZCwgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RlYnVnLCAiR3JhbnQgc3RvcmFnZSBhY2Nlc3MgZm9yICV7cHVibGljfXMgdW5k
ZXIgb3BlbmVyICV7cHVibGljfXMsICV7cHVibGljfXMgdXNlciBpbnRlcmFjdGlvbi4iLCBkb21h
aW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MudXRmOCgpLmRhdGEoKSwgb3BlbmVyRG9tYWluLnV0Zjgo
KS5kYXRhKCksIChpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUgPyAid2l0aCIgOiAid2l0aG91dCIp
KTsKICNlbmRpZgpAQCAtNDIzLDcgKzQyNiw4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpyZW0KIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKV0gKCkgewotICAgICAgICBtX3JlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKCk7Cisg
ICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5yZW1vdmVBbGxTdG9y
YWdlQWNjZXNzKCk7CiAgICAgfSk7CiB9CiAKQEAgLTEwNzgsNyArMTA4Miw4IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGQKICNlbmRpZgogCiAgICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGRv
bWFpbnNUb1BhcnRpdGlvbiA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zVG9QYXJ0aXRpb24pLCBk
b21haW5zVG9CbG9jayA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zVG9CbG9jayksIGRvbWFpbnNU
b05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jayA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zVG9OZWl0
aGVyUGFydGl0aW9uTm9yQmxvY2spLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSB7
Ci0gICAgICAgIG1fdXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tp
ZXNIYW5kbGVyKGRvbWFpbnNUb1BhcnRpdGlvbiwgZG9tYWluc1RvQmxvY2ssIGRvbWFpbnNUb05l
aXRoZXJQYXJ0aXRpb25Ob3JCbG9jaywgU2hvdWxkQ2xlYXJGaXJzdDo6Tm8pOworICAgICAgICBp
ZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+dXBkYXRlUHJldmFsZW50RG9tYWlu
c1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXMoZG9tYWluc1RvUGFydGl0aW9uLCBkb21haW5zVG9C
bG9jaywgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBTaG91bGRDbGVhckZpcnN0
OjpObyk7CiAgICAgICAgIGNhbGxiYWNrKCk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgICAgIFJFTEVBU0VfTE9HX0lORk9fSUYobV9kZWJ1Z0xvZ2dpbmdFbmFibGVkLCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWcsICJEb25lIHVwZGF0aW5nIGNvb2tpZSBwYXJ0aXRpb25pbmcg
YW5kIGJsb2NraW5nLiIpOwpAQCAtMTA5NSw3ICsxMTAwLDggQEAgdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnVwZAogICAgIH0KICAgICAKICAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW3RoaXMsIHNob3VsZENsZWFyRmlyc3QsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgZG9tYWluc1RvUGFydGl0aW9uID0gY3Jvc3NUaHJlYWRDb3B5KGRvbWFpbnNUb1Bh
cnRpdGlvbiksIGRvbWFpbnNUb0Jsb2NrID0gY3Jvc3NUaHJlYWRDb3B5KGRvbWFpbnNUb0Jsb2Nr
KSwgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrID0gY3Jvc3NUaHJlYWRDb3B5KGRv
bWFpbnNUb05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jayldICgpIHsKLSAgICAgICAgbV91cGRhdGVQ
cmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIoZG9tYWluc1Rv
UGFydGl0aW9uLCBkb21haW5zVG9CbG9jaywgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJs
b2NrLCBzaG91bGRDbGVhckZpcnN0KTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAg
ICAgbV9jbGllbnQtPnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29r
aWVzKGRvbWFpbnNUb1BhcnRpdGlvbiwgZG9tYWluc1RvQmxvY2ssIGRvbWFpbnNUb05laXRoZXJQ
YXJ0aXRpb25Ob3JCbG9jaywgc2hvdWxkQ2xlYXJGaXJzdCk7CiAgICAgfSk7CiAKICAgICBpZiAo
c2hvdWxkQ2xlYXJGaXJzdCA9PSBTaG91bGRDbGVhckZpcnN0OjpZZXMpCkBAIC0xMTI2LDcgKzEx
MzIsOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlCiAgICAgfQog
CiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGRvbWFpbnMgPSBjcm9zc1RocmVhZENvcHkoZG9tYWlucyldICgpIHsKLSAg
ICAgICAgbV9yZW1vdmVEb21haW5zSGFuZGxlcihkb21haW5zKTsKKyAgICAgICAgaWYgKG1fY2xp
ZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPnJlbW92ZVByZXZhbGVudERvbWFpbnMoZG9tYWlu
cyk7CiAgICAgfSk7CiAKICAgICBmb3IgKGF1dG8mIGRvbWFpbiA6IGRvbWFpbnMpIHsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oCShyZXZpc2lvbiAyMzE0NjApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTksMTYgKzU5LDI1IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogZW51bSBjbGFzcyBTaG91
bGRDbGVhckZpcnN0OwogCitjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVDbGll
bnQgeworcHVibGljOgorI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2Nr
Q29va2llcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvUGFydGl0aW9uLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21h
aW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2ssIFNob3VsZENsZWFyRmlyc3QpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN0cmluZyYgcmVz
b3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdHJpbmcmIHJl
c291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNj
ZXNzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikgPSAwOworI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIHJlZigpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSA9IDA7CisgICAgdmlydHVhbCB+V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlQ2xpZW50KCkgeyB9OworfTsKKwogY2xhc3MgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlIGZpbmFsIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29y
a1F1ZXVlTWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICB1c2luZyBVcGRhdGVQcmV2YWxl
bnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9u
PHZvaWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2NrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlu
c1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBTaG91bGRDbGVhckZpcnN0KT47Ci0gICAgdXNp
bmcgSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChj
b25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21h
aW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpGdW5jdGlvbjx2b2lk
KGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjayk+OwotICAgIHVzaW5nIEdyYW50U3RvcmFnZUFj
Y2Vzc0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiByZXNvdXJjZURv
bWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6RnVuY3Rpb248dm9pZChib29sIHdh
c0dyYW50ZWQpPiYmIGNhbGxiYWNrKT47Ci0gICAgdXNpbmcgUmVtb3ZlQWxsU3RvcmFnZUFjY2Vz
c0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoKT47Ci0gICAgdXNpbmcgUmVtb3ZlUHJldmFs
ZW50RG9tYWluc0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJp
bmc+Jik+OwotICAgIHN0YXRpYyBSZWY8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBGdW5j
dGlvbjx2b2lkIChjb25zdCBTdHJpbmcmKT4mJiB0ZXN0aW5nQ2FsbGJhY2ssIGJvb2wgaXNFcGhl
bWVyYWwsIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFu
ZGxlciYmIHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFu
ZGxlciA9IFtdKGNvbnN0IFdURjo6VmVjdG9yPFN0cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxT
dHJpbmc+JiwgY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYsIFNob3VsZENsZWFyRmlyc3QpIHsg
fSwgSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciYmIGhhc1N0b3JhZ2VBY2Nlc3NGb3JG
cmFtZUhhbmRsZXIgPSBbXShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCwg
dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJikgeyB9LCBHcmFudFN0b3JhZ2VB
Y2Nlc3NIYW5kbGVyJiYgZ3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlciA9IFtdKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+LCB1aW50NjRfdCwgV1RG
OjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmKSB7IH0sIFJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5k
bGVyJiYgcmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIgPSBbXSgpIHsgfSwgUmVtb3ZlUHJl
dmFsZW50RG9tYWluc0hhbmRsZXImJiByZW1vdmVEb21haW5zSGFuZGxlciA9IFtdIChjb25zdCBX
VEY6OlZlY3RvcjxTdHJpbmc+JikgeyB9KQorICAgIHN0YXRpYyBSZWY8V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGlyZWN0b3J5LCBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRlc3RpbmdDYWxs
YmFjaywgYm9vbCBpc0VwaGVtZXJhbCwgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlQ2xp
ZW50KiBjbGllbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwg
V1RGTW92ZSh0ZXN0aW5nQ2FsbGJhY2spLCBpc0VwaGVtZXJhbCwgV1RGTW92ZSh1cGRhdGVQcmV2
YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIpLCBXVEZNb3ZlKGhh
c1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIpLCBXVEZNb3ZlKGdyYW50U3RvcmFnZUFjY2Vz
c0hhbmRsZXIpLCBXVEZNb3ZlKHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKSwgV1RGTW92
ZShyZW1vdmVEb21haW5zSGFuZGxlcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnksIFdURk1vdmUodGVzdGluZ0NhbGxiYWNrKSwgaXNFcGhlbWVyYWwsIGNsaWVudCkpOwog
ICAgIH0KIAogICAgIH5XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoKTsKQEAgLTE1Miw3
ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2dUZXN0aW5nRXZlbnQoY29uc3QgU3RyaW5n
Jik7CiAKIHByaXZhdGU6Ci0gICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKGNvbnN0
IFN0cmluZyYsIEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgdGVzdGluZ0NhbGxiYWNr
LCBib29sIGlzRXBoZW1lcmFsLCBVcGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJs
b2NrQ29va2llc0hhbmRsZXImJiwgSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciYmLCBH
cmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyJiYsIFJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVy
JiYsIFJlbW92ZVByZXZhbGVudERvbWFpbnNIYW5kbGVyJiYpOworICAgIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZShjb25zdCBTdHJpbmcmLCBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmlu
ZyYpPiYmIHRlc3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVtZXJhbCwgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlQ2xpZW50Kik7CiAKICAgICB2b2lkIHJlbW92ZURhdGFSZWNvcmRzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKQEAgLTIxMSwxMSArMjIwLDcgQEAgcHJpdmF0
ZToKICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UgbV9wZXJzaXN0
ZW50U3RvcmFnZTsKICAgICBWZWN0b3I8T3BlcmF0aW5nRGF0ZT4gbV9vcGVyYXRpbmdEYXRlczsK
IAotICAgIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFu
ZGxlciBtX3VwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFu
ZGxlcjsKLSAgICBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyIG1faGFzU3RvcmFnZUFj
Y2Vzc0ZvckZyYW1lSGFuZGxlcjsKLSAgICBHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyIG1fZ3Jh
bnRTdG9yYWdlQWNjZXNzSGFuZGxlcjsKLSAgICBSZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxl
ciBtX3JlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyOwotICAgIFJlbW92ZVByZXZhbGVudERv
bWFpbnNIYW5kbGVyIG1fcmVtb3ZlRG9tYWluc0hhbmRsZXI7CisgICAgUmVmUHRyPFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZUNsaWVudD4gbV9jbGllbnQ7CiAKICAgICBXYWxsVGltZSBt
X2VuZE9mR3JhbmRmYXRoZXJpbmdUaW1lc3RhbXA7CiAgICAgUnVuTG9vcDo6VGltZXI8V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlPiBtX2RhaWx5VGFza3NUaW1lcjsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCShyZXZpc2lvbiAyMzE0NjApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5OCw3
ICsxMTk4LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjp1cGRhdGVQcmV2YWxlbnREbwogICAg
ICAgICBwcm9jZXNzUG9vbC0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpVcGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2ll
cyhtX3Nlc3Npb25JRCwgZG9tYWluc1RvUGFydGl0aW9uLCBkb21haW5zVG9CbG9jaywgZG9tYWlu
c1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBzaG91bGRDbGVhckZpcnN0ID09IFNob3VsZENs
ZWFyRmlyc3Q6OlllcykpOwogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6Omhhc1N0b3JhZ2VB
Y2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3Qg
U3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdl
SUQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJh
Y2spCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25z
dCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4s
IHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjaykKIHsKICAgICBmb3IgKGF1dG8mIHBy
b2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpCiAgICAgICAgIHByb2Nlc3NQb29sLT5uZXR3b3Jr
UHJvY2VzcygpLT5oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUobV9zZXNzaW9uSUQsIHJlc291cmNl
RG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIFdURk1vdmUoY2FsbGJh
Y2spKTsKQEAgLTEyMTAsMTMgKzEyMTAsMTMgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpnZXRB
bGxTdG9yYWdlQWNjZQogICAgICAgICBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKS0+Z2V0
QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMobV9zZXNzaW9uSUQsIFdURk1vdmUoY2FsbGJhY2spKTsK
IH0KIAotdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNv
bnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFp
biwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCB3YXNHcmFudGVkKT4mJiBjYWxsYmFjaykKK3Zv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN0cmluZyYgcmVz
b3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCB3YXNHcmFudGVkKT4mJiBjYWxsYmFjaykKIHsKICAgICBmb3IgKGF1dG8m
IHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpCiAgICAgICAgIHByb2Nlc3NQb29sLT5uZXR3
b3JrUHJvY2VzcygpLT5ncmFudFN0b3JhZ2VBY2Nlc3MobV9zZXNzaW9uSUQsIHJlc291cmNlRG9t
YWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIFdURk1vdmUoY2FsbGJhY2sp
KTsKIH0KIAotdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFu
ZGxlcigpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKQog
ewogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgewogICAgICAg
ICBpZiAoYXV0byBuZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2Vzcygp
KQpAQCAtMTQ0OSwxOSArMTQ0OSw5IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZW5hYmxlUmVz
b3VyY2VMb2EKICAgICB9CiAKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklO
RykKLSAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmNyZWF0ZShtX2NvbmZpZ3VyYXRpb24ucmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeSwgV1RGTW92ZShjYWxsYmFjayksIG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCksIFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIChjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZG9tYWluc1RvUGFydGl0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxv
Y2ssIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxv
Y2ssIFNob3VsZENsZWFyRmlyc3Qgc2hvdWxkQ2xlYXJGaXJzdCkgewotICAgICAgICB1cGRhdGVQ
cmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhkb21haW5zVG9QYXJ0aXRp
b24sIGRvbWFpbnNUb0Jsb2NrLCBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2ssIHNo
b3VsZENsZWFyRmlyc3QpOwotICAgIH0sIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyldIChjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0
UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjaykgewotICAgICAg
ICBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKHJlc291cmNlRG9tYWluLCBmaXJzdFBh
cnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICB9LCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSAoY29uc3QgU3RyaW5nJiByZXNv
dXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sIHdhc0dyYW50ZWQpPiYmIGNhbGxiYWNrKSB7Ci0gICAgICAgIGdyYW50U3Rv
cmFnZUFjY2Vzc0hhbmRsZXIocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1l
SUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykpOwotICAgIH0sIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyldICgpIHsKLSAgICAgICAgcmVtb3ZlQWxsU3RvcmFnZUFjY2Vz
c0hhbmRsZXIoKTsKLSAgICB9LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
XSAoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1JlbW92ZSkgewotICAgICAgICByZW1v
dmVQcmV2YWxlbnREb21haW5zKGRvbWFpbnNUb1JlbW92ZSk7Ci0gICAgfSk7CisgICAgbV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVh
dGUobV9jb25maWd1cmF0aW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIFdURk1v
dmUoY2FsbGJhY2spLCBtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpLCB0aGlzKTsKICNlbHNlCi0g
ICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpjcmVhdGUobV9jb25maWd1cmF0aW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnksIFdURk1vdmUoY2FsbGJhY2spLCBtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsKKyAgICBt
X3Jlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmNyZWF0ZShtX2NvbmZpZ3VyYXRpb24ucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwg
V1RGTW92ZShjYWxsYmFjayksIG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCksIG51bGxwdHIpOwog
I2VuZGlmCiAKICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAyMzE0NjApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tp
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KQEAgLTY2LDcgKzY3LDcgQEAgc3RydWN0IFBs
dWdpbk1vZHVsZUluZm87CiAKIGVudW0gY2xhc3MgU2hvdWxkQ2xlYXJGaXJzdCB7IE5vLCBZZXMg
fTsKIAotY2xhc3MgV2Vic2l0ZURhdGFTdG9yZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYnNpdGVE
YXRhU3RvcmU+LCBwdWJsaWMgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIsIHB1YmxpYyBJZGVu
dGlmaWVkPFdlYnNpdGVEYXRhU3RvcmU+ICB7CitjbGFzcyBXZWJzaXRlRGF0YVN0b3JlIDogcHVi
bGljIFJlZkNvdW50ZWQ8V2Vic2l0ZURhdGFTdG9yZT4sIHB1YmxpYyBXZWJQcm9jZXNzTGlmZXRp
bWVPYnNlcnZlciwgcHVibGljIElkZW50aWZpZWQ8V2Vic2l0ZURhdGFTdG9yZT4sIHB1YmxpYyBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVDbGllbnQgewogcHVibGljOgogICAgIGNvbnN0
ZXhwciBzdGF0aWMgdWludDY0X3QgZGVmYXVsdENhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhID0g
NTAgKiAxMDI0ICogMTAyNDsKIApAQCAtMTIzLDE1ICsxMjQsMTggQEAgcHVibGljOgogICAgIHZv
aWQgcmVtb3ZlRGF0YUZvclRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zKE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlucywgRnVuY3Rpb248
dm9pZChIYXNoU2V0PFN0cmluZz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogCiAjaWYgSEFW
RShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCi0gICAgdm9pZCB1cGRhdGVQcmV2YWxl
bnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZG9tYWluc1RvUGFydGl0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ss
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2ss
IFNob3VsZENsZWFyRmlyc3QpOwotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFu
ZGxlcihjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFy
dHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjayk7CisgICAgdm9pZCB1
cGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZG9tYWluc1RvUGFydGl0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9t
YWluc1RvQmxvY2ssIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9OZWl0aGVyUGFydGl0
aW9uTm9yQmxvY2ssIFNob3VsZENsZWFyRmlyc3QpIG92ZXJyaWRlOworICAgIHZvaWQgaGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0
cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlE
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNhbGxiYWNr
KSBvdmVycmlkZTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBkb21haW5zKT4mJik7Ci0gICAgdm9pZCBn
cmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgdWludDY0X3QgcGFnZUlELCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCB3
YXNHcmFudGVkKT4mJiBjYWxsYmFjayk7Ci0gICAgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNz
SGFuZGxlcigpOwotICAgIHZvaWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZG9tYWlucyk7Ci0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1
YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBwYWdlSUQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJh
Y2spOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0
LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFjayk7CisgICAg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBk
b21haW5zKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3Vi
RnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZy
YW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgorICAgIHZvaWQgcmVmKCkgb3ZlcnJpZGUgeyBS
ZWZDb3VudGVkPFdlYnNpdGVEYXRhU3RvcmU+OjpyZWYoKTsgfQorICAgIHZvaWQgZGVyZWYoKSBv
dmVycmlkZSB7IFJlZkNvdW50ZWQ8V2Vic2l0ZURhdGFTdG9yZT46OmRlcmVmKCk7IH0KKwogICAg
IHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOwogICAgIHZvaWQgcmVzb2x2ZURpcmVjdG9y
aWVzSWZOZWNlc3NhcnkoKTsKICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkQXBwbGljYXRpb25D
YWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnk7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339838</attachid>
            <date>2018-05-08 11:12:11 -0700</date>
            <delta_ts>2018-08-01 14:29:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185413-20180508111211.patch</filename>
            <type>text/plain</type>
            <size>22023</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzE0NzgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTA1LTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50cm9kdWNlIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZUNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1NDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUncyBhIHJlZmVyZW5jZSBjeWNsZSBzdGls
bCwgYnV0IG5vdyBpdCdzIG1vcmUgb2J2aW91cyBhbmQgZml4YWJsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5k
ZXJPcGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlQ29va2llUGFy
dGl0aW9uaW5nRm9yRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Y2xlYXJQYXJ0aXRpb25pbmdTdGF0ZUZvckRvbWFpbnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlQ2xpZW50Ojp+V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQW5kU2V0VGVzdGlu
Z0NhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6aGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxl
cik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaDoKKwogMjAxOC0wNS0wNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWJzdHJhY3QgbG9naWMgdG8gbG9nIGNvbnNvbGUgbWVzc2FnZXMgYW5kIHNl
bmQgQ1NQIHZpb2xhdGlvbiByZXBvcnRzIGludG8gYSBjbGllbnQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAkocmV2aXNpb24gMjMxNDY1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDE0
ICsxNTQsMTAgQEAgc3RhdGljIFZlY3RvcjxPcGVyYXRpbmdEYXRlPiBtZXJnZU9wZXJhdAogICAg
IHJldHVybiBtZXJnZWREYXRlczsKIH0KIAotV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRl
c3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVtZXJhbCwgVXBkYXRlUHJldmFsZW50RG9tYWluc1Rv
UGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyJiYgdXBkYXRlUHJldmFsZW50RG9tYWluc1Rv
UGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5kbGVyLCBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVI
YW5kbGVyJiYgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciwgR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlciYmIGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIsIFJlbW92ZUFsbFN0b3JhZ2VB
Y2Nlc3NIYW5kbGVyJiYgcmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIsIFJlbW92ZVByZXZh
bGVudERvbWFpbnNIYW5kbGVyJiYgcmVtb3ZlRG9tYWluc0hhbmRsZXIpCitXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShjb25zdCBT
dHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIEZ1bmN0aW9uPHZvaWQoY29u
c3QgU3RyaW5nJik+JiYgdGVzdGluZ0NhbGxiYWNrLCBib29sIGlzRXBoZW1lcmFsLCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fc3RhdGlzdGlj
c1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUg
UHJvY2VzcyBEYXRhIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6
UU9TOjpVdGlsaXR5KSkKICAgICAsIG1fcGVyc2lzdGVudFN0b3JhZ2UoKnRoaXMsIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIGlzRXBoZW1lcmFsID8gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BlcnNpc3RlbnRTdG9yYWdlOjpJc1JlYWRPbmx5OjpZZXMgOiBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6OklzUmVhZE9ubHk6Ok5vKQotICAgICwgbV91cGRhdGVQ
cmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIoV1RGTW92ZSh1
cGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIpKQot
ICAgICwgbV9oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKFdURk1vdmUoaGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcikpCi0gICAgLCBtX2dyYW50U3RvcmFnZUFjY2Vzc0hhbmRs
ZXIoV1RGTW92ZShncmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKSkKLSAgICAsIG1fcmVtb3ZlQWxs
U3RvcmFnZUFjY2Vzc0hhbmRsZXIoV1RGTW92ZShyZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxl
cikpCi0gICAgLCBtX3JlbW92ZURvbWFpbnNIYW5kbGVyKFdURk1vdmUocmVtb3ZlRG9tYWluc0hh
bmRsZXIpKQorICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9kYWlseVRhc2tzVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpw
ZXJmb3JtRGFpbHlUYXNrcykKICAgICAsIG1fc3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjayhXVEZN
b3ZlKHRlc3RpbmdDYWxsYmFjaykpCiB7CkBAIC0zNTEsNyArMzQ3LDEwIEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXMKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCi0gICAgICAgIG1faGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihzdWJGcmFt
ZVByaW1hcnlEb21haW4sIHRvcEZyYW1lUHJpbWFyeURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1f
Y2xpZW50LT5oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoc3ViRnJhbWVQcmltYXJ5RG9tYWluLCB0
b3BGcmFtZVByaW1hcnlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsYmFjayhmYWxzZSk7CiAgICAgfSk7CiB9
CiAKQEAgLTM4NiwxMSArMzg1LDE3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpyZXEKIAogICAgICAgICBzdWJGcmFtZVN0YXRpc3RpYy50aW1lc0FjY2Vzc2VkQXNGaXJz
dFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJKys7CiAKLSAgICAgICAgbV9ncmFudFN0b3JhZ2VB
Y2Nlc3NIYW5kbGVyKHN1YkZyYW1lUHJpbWFyeURvbWFpbiwgdG9wRnJhbWVQcmltYXJ5RG9tYWlu
LCBmcmFtZUlELCBwYWdlSUQsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9vbCB2
YWx1ZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt2YWx1ZSwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNrKHZh
bHVlKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KSB7CisgICAgICAgICAgICBtX2NsaWVudC0+Z3Jh
bnRTdG9yYWdlQWNjZXNzKHN1YkZyYW1lUHJpbWFyeURvbWFpbiwgdG9wRnJhbWVQcmltYXJ5RG9t
YWluLCBmcmFtZUlELCBwYWdlSUQsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYm9v
bCB2YWx1ZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdmFs
dWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FsbGJhY2sodmFsdWUpOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KICAgICB9
KTsKIH0KIApAQCAtNDEzLDcgKzQxOCw4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpyZXEKICAgICBpZiAoIWNvb2tpZXNCbG9ja2VkICYmICFzaG91bGRQYXJ0aXRpb25D
b29raWVzKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzc1N0YXRpc3RpYykpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fZ3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihXVEZNb3ZlKGRvbWFpbklu
TmVlZE9mU3RvcmFnZUFjY2VzcyksIFdURk1vdmUob3BlbmVyRG9tYWluKSwgc3RkOjpudWxsb3B0
LCBvcGVuZXJQYWdlSUQsIFtdKGJvb2wpIHsgfSk7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAg
ICBtX2NsaWVudC0+Z3JhbnRTdG9yYWdlQWNjZXNzKFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9y
YWdlQWNjZXNzKSwgV1RGTW92ZShvcGVuZXJEb21haW4pLCBzdGQ6Om51bGxvcHQsIG9wZW5lclBh
Z2VJRCwgW10oYm9vbCkgeyB9KTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBSRUxF
QVNFX0xPR19JTkZPX0lGKG1fZGVidWdMb2dnaW5nRW5hYmxlZCwgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnLCAiR3JhbnQgc3RvcmFnZSBhY2Nlc3MgZm9yICV7cHVibGljfXMgdW5kZXIgb3Bl
bmVyICV7cHVibGljfXMsICV7cHVibGljfXMgdXNlciBpbnRlcmFjdGlvbi4iLCBkb21haW5Jbk5l
ZWRPZlN0b3JhZ2VBY2Nlc3MudXRmOCgpLmRhdGEoKSwgb3BlbmVyRG9tYWluLnV0ZjgoKS5kYXRh
KCksIChpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUgPyAid2l0aCIgOiAid2l0aG91dCIpKTsKICNl
bmRpZgpAQCAtNDIzLDcgKzQyOSw4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpyZW0KIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0g
KCkgewotICAgICAgICBtX3JlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKCk7CisgICAgICAg
IGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5yZW1vdmVBbGxTdG9yYWdlQWNj
ZXNzKCk7CiAgICAgfSk7CiB9CiAKQEAgLTEwNzgsNyArMTA4NSw4IEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGQKICNlbmRpZgogCiAgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGRvbWFpbnNU
b1BhcnRpdGlvbiA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zVG9QYXJ0aXRpb24pLCBkb21haW5z
VG9CbG9jayA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zVG9CbG9jayksIGRvbWFpbnNUb05laXRo
ZXJQYXJ0aXRpb25Ob3JCbG9jayA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zVG9OZWl0aGVyUGFy
dGl0aW9uTm9yQmxvY2spLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSB7Ci0gICAg
ICAgIG1fdXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNIYW5k
bGVyKGRvbWFpbnNUb1BhcnRpdGlvbiwgZG9tYWluc1RvQmxvY2ssIGRvbWFpbnNUb05laXRoZXJQ
YXJ0aXRpb25Ob3JCbG9jaywgU2hvdWxkQ2xlYXJGaXJzdDo6Tm8pOworICAgICAgICBpZiAobV9j
bGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+dXBkYXRlUHJldmFsZW50RG9tYWluc1RvUGFy
dGl0aW9uT3JCbG9ja0Nvb2tpZXMoZG9tYWluc1RvUGFydGl0aW9uLCBkb21haW5zVG9CbG9jaywg
ZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBTaG91bGRDbGVhckZpcnN0OjpObyk7
CiAgICAgICAgIGNhbGxiYWNrKCk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAg
IFJFTEVBU0VfTE9HX0lORk9fSUYobV9kZWJ1Z0xvZ2dpbmdFbmFibGVkLCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGVidWcsICJEb25lIHVwZGF0aW5nIGNvb2tpZSBwYXJ0aXRpb25pbmcgYW5kIGJs
b2NraW5nLiIpOwpAQCAtMTA5NSw3ICsxMTAzLDggQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OnVwZAogICAgIH0KICAgICAKICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goW3RoaXMsIHNob3VsZENsZWFyRmlyc3QsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgZG9tYWluc1RvUGFydGl0aW9uID0gY3Jvc3NUaHJlYWRDb3B5KGRvbWFpbnNUb1BhcnRpdGlv
biksIGRvbWFpbnNUb0Jsb2NrID0gY3Jvc3NUaHJlYWRDb3B5KGRvbWFpbnNUb0Jsb2NrKSwgZG9t
YWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrID0gY3Jvc3NUaHJlYWRDb3B5KGRvbWFpbnNU
b05laXRoZXJQYXJ0aXRpb25Ob3JCbG9jayldICgpIHsKLSAgICAgICAgbV91cGRhdGVQcmV2YWxl
bnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIoZG9tYWluc1RvUGFydGl0
aW9uLCBkb21haW5zVG9CbG9jaywgZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBz
aG91bGRDbGVhckZpcnN0KTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9j
bGllbnQtPnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzKGRv
bWFpbnNUb1BhcnRpdGlvbiwgZG9tYWluc1RvQmxvY2ssIGRvbWFpbnNUb05laXRoZXJQYXJ0aXRp
b25Ob3JCbG9jaywgc2hvdWxkQ2xlYXJGaXJzdCk7CiAgICAgfSk7CiAKICAgICBpZiAoc2hvdWxk
Q2xlYXJGaXJzdCA9PSBTaG91bGRDbGVhckZpcnN0OjpZZXMpCkBAIC0xMTI2LDcgKzExMzUsOCBA
QCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlCiAgICAgfQogCiAgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGRvbWFpbnMgPSBjcm9zc1RocmVhZENvcHkoZG9tYWlucyldICgpIHsKLSAgICAgICAg
bV9yZW1vdmVEb21haW5zSGFuZGxlcihkb21haW5zKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICAgICAgbV9jbGllbnQtPnJlbW92ZVByZXZhbGVudERvbWFpbnMoZG9tYWlucyk7CiAg
ICAgfSk7CiAKICAgICBmb3IgKGF1dG8mIGRvbWFpbiA6IGRvbWFpbnMpIHsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oCShyZXZpc2lvbiAyMzE0NjApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtNTksMTYg
KzU5LDI1IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogZW51bSBjbGFzcyBTaG91bGRDbGVh
ckZpcnN0OwogCitjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVDbGllbnQgewor
cHVibGljOgorI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2ll
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvUGFydGl0aW9uLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9O
ZWl0aGVyUGFydGl0aW9uTm9yQmxvY2ssIFNob3VsZENsZWFyRmlyc3QpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdHJpbmcmIHJlc291cmNl
RG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JikgPSAwOworI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIHJlZigpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSA9IDA7CisgICAgdmlydHVhbCB+V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlQ2xpZW50KCkgeyB9OworfTsKKwogY2xhc3MgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlIGZpbmFsIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICB1c2luZyBVcGRhdGVQcmV2YWxlbnREb21h
aW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1BhcnRpdGlvbiwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRvbWFpbnNUb0Jsb2NrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvTmVp
dGhlclBhcnRpdGlvbk5vckJsb2NrLCBTaG91bGRDbGVhckZpcnN0KT47Ci0gICAgdXNpbmcgSGFz
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBT
dHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wg
aGFzQWNjZXNzKT4mJiBjYWxsYmFjayk+OwotICAgIHVzaW5nIEdyYW50U3RvcmFnZUFjY2Vzc0hh
bmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwg
Y29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6RnVuY3Rpb248dm9pZChib29sIHdhc0dyYW50
ZWQpPiYmIGNhbGxiYWNrKT47Ci0gICAgdXNpbmcgUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRs
ZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoKT47Ci0gICAgdXNpbmcgUmVtb3ZlUHJldmFsZW50RG9t
YWluc0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+
OwotICAgIHN0YXRpYyBSZWY8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBGdW5jdGlvbjx2
b2lkIChjb25zdCBTdHJpbmcmKT4mJiB0ZXN0aW5nQ2FsbGJhY2ssIGJvb2wgaXNFcGhlbWVyYWws
IFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlciYm
IHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlciA9
IFtdKGNvbnN0IFdURjo6VmVjdG9yPFN0cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxTdHJpbmc+
JiwgY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYsIFNob3VsZENsZWFyRmlyc3QpIHsgfSwgSGFz
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciYmIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhh
bmRsZXIgPSBbXShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCwgdWludDY0
X3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJikgeyB9LCBHcmFudFN0b3JhZ2VBY2Nlc3NI
YW5kbGVyJiYgZ3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlciA9IFtdKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+LCB1aW50NjRfdCwgV1RGOjpGdW5j
dGlvbjx2b2lkKGJvb2wpPiYmKSB7IH0sIFJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyJiYg
cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIgPSBbXSgpIHsgfSwgUmVtb3ZlUHJldmFsZW50
RG9tYWluc0hhbmRsZXImJiByZW1vdmVEb21haW5zSGFuZGxlciA9IFtdIChjb25zdCBXVEY6OlZl
Y3RvcjxTdHJpbmc+JikgeyB9KQorICAgIHN0YXRpYyBSZWY8V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5LCBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIHRlc3RpbmdDYWxsYmFjaywg
Ym9vbCBpc0VwaGVtZXJhbCwgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlQ2xpZW50KiBj
bGllbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGTW92
ZSh0ZXN0aW5nQ2FsbGJhY2spLCBpc0VwaGVtZXJhbCwgV1RGTW92ZSh1cGRhdGVQcmV2YWxlbnRE
b21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llc0hhbmRsZXIpLCBXVEZNb3ZlKGhhc1N0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIpLCBXVEZNb3ZlKGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRs
ZXIpLCBXVEZNb3ZlKHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKSwgV1RGTW92ZShyZW1v
dmVEb21haW5zSGFuZGxlcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnks
IFdURk1vdmUodGVzdGluZ0NhbGxiYWNrKSwgaXNFcGhlbWVyYWwsIGNsaWVudCkpOwogICAgIH0K
IAogICAgIH5XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoKTsKQEAgLTE1Miw3ICsxNjEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2dUZXN0aW5nRXZlbnQoY29uc3QgU3RyaW5nJik7CiAK
IHByaXZhdGU6Ci0gICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKGNvbnN0IFN0cmlu
ZyYsIEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgdGVzdGluZ0NhbGxiYWNrLCBib29s
IGlzRXBoZW1lcmFsLCBVcGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29v
a2llc0hhbmRsZXImJiwgSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlciYmLCBHcmFudFN0
b3JhZ2VBY2Nlc3NIYW5kbGVyJiYsIFJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyJiYsIFJl
bW92ZVByZXZhbGVudERvbWFpbnNIYW5kbGVyJiYpOworICAgIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZShjb25zdCBTdHJpbmcmLCBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYm
IHRlc3RpbmdDYWxsYmFjaywgYm9vbCBpc0VwaGVtZXJhbCwgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlQ2xpZW50Kik7CiAKICAgICB2b2lkIHJlbW92ZURhdGFSZWNvcmRzKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAKQEAgLTIxMSwxMSArMjIwLDcgQEAgcHJpdmF0ZToKICAg
ICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UgbV9wZXJzaXN0ZW50U3Rv
cmFnZTsKICAgICBWZWN0b3I8T3BlcmF0aW5nRGF0ZT4gbV9vcGVyYXRpbmdEYXRlczsKIAotICAg
IFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlciBt
X3VwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzSGFuZGxlcjsK
LSAgICBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyIG1faGFzU3RvcmFnZUFjY2Vzc0Zv
ckZyYW1lSGFuZGxlcjsKLSAgICBHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyIG1fZ3JhbnRTdG9y
YWdlQWNjZXNzSGFuZGxlcjsKLSAgICBSZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlciBtX3Jl
bW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyOwotICAgIFJlbW92ZVByZXZhbGVudERvbWFpbnNI
YW5kbGVyIG1fcmVtb3ZlRG9tYWluc0hhbmRsZXI7CisgICAgUmVmUHRyPFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZUNsaWVudD4gbV9jbGllbnQ7CiAKICAgICBXYWxsVGltZSBtX2VuZE9m
R3JhbmRmYXRoZXJpbmdUaW1lc3RhbXA7CiAgICAgUnVuTG9vcDo6VGltZXI8V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlPiBtX2RhaWx5VGFza3NUaW1lcjsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCShyZXZpc2lvbiAyMzE0NjApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5OCw3ICsxMTk4
LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjp1cGRhdGVQcmV2YWxlbnREbwogICAgICAgICBw
cm9jZXNzUG9vbC0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpVcGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhtX3Nl
c3Npb25JRCwgZG9tYWluc1RvUGFydGl0aW9uLCBkb21haW5zVG9CbG9jaywgZG9tYWluc1RvTmVp
dGhlclBhcnRpdGlvbk5vckJsb2NrLCBzaG91bGRDbGVhckZpcnN0ID09IFNob3VsZENsZWFyRmly
c3Q6OlllcykpOwogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NG
b3JGcmFtZUhhbmRsZXIoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5n
JiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCit2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdHJp
bmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjaykKIHsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQ
b29sIDogcHJvY2Vzc1Bvb2xzKCkpCiAgICAgICAgIHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2Vz
cygpLT5oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUobV9zZXNzaW9uSUQsIHJlc291cmNlRG9tYWlu
LCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIFdURk1vdmUoY2FsbGJhY2spKTsK
QEAgLTEyMTAsMTMgKzEyMTAsMTMgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpnZXRBbGxTdG9y
YWdlQWNjZQogICAgICAgICBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKS0+Z2V0QWxsU3Rv
cmFnZUFjY2Vzc0VudHJpZXMobV9zZXNzaW9uSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAot
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN0
cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXVEY6OkNvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCB3YXNHcmFudGVkKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCB3YXNHcmFudGVkKT4mJiBjYWxsYmFjaykKIHsKICAgICBmb3IgKGF1dG8mIHByb2Nl
c3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpCiAgICAgICAgIHByb2Nlc3NQb29sLT5uZXR3b3JrUHJv
Y2VzcygpLT5ncmFudFN0b3JhZ2VBY2Nlc3MobV9zZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCBm
aXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0K
IAotdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlcigp
Cit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKQogewogICAg
IGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgewogICAgICAgICBpZiAo
YXV0byBuZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQpAQCAt
MTQ0OSwxOSArMTQ0OSw5IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZW5hYmxlUmVzb3VyY2VM
b2EKICAgICB9CiAKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKLSAg
ICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmNyZWF0ZShtX2NvbmZpZ3VyYXRpb24ucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eSwgV1RGTW92ZShjYWxsYmFjayksIG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCksIFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9t
YWluc1RvUGFydGl0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2ssIFNo
b3VsZENsZWFyRmlyc3Qgc2hvdWxkQ2xlYXJGaXJzdCkgewotICAgICAgICB1cGRhdGVQcmV2YWxl
bnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhkb21haW5zVG9QYXJ0aXRpb24sIGRv
bWFpbnNUb0Jsb2NrLCBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2ssIHNob3VsZENs
ZWFyRmlyc3QpOwotICAgIH0sIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
IChjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjaykgewotICAgICAgICBoYXNT
dG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9t
YWluLCBmcmFtZUlELCBwYWdlSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICB9LCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSAoY29uc3QgU3RyaW5nJiByZXNvdXJjZURv
bWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sIHdhc0dyYW50ZWQpPiYmIGNhbGxiYWNrKSB7Ci0gICAgICAgIGdyYW50U3RvcmFnZUFj
Y2Vzc0hhbmRsZXIocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBh
Z2VJRCwgV1RGTW92ZShjYWxsYmFjaykpOwotICAgIH0sIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldICgpIHsKLSAgICAgICAgcmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRs
ZXIoKTsKLSAgICB9LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSAoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1JlbW92ZSkgewotICAgICAgICByZW1vdmVQcmV2
YWxlbnREb21haW5zKGRvbWFpbnNUb1JlbW92ZSk7Ci0gICAgfSk7CisgICAgbV9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUobV9j
b25maWd1cmF0aW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIFdURk1vdmUoY2Fs
bGJhY2spLCBtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpLCB0aGlzKTsKICNlbHNlCi0gICAgbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpj
cmVhdGUobV9jb25maWd1cmF0aW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIFdU
Rk1vdmUoY2FsbGJhY2spLCBtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsKKyAgICBtX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0
ZShtX2NvbmZpZ3VyYXRpb24ucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgV1RGTW92
ZShjYWxsYmFjayksIG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCksIG51bGxwdHIpOwogI2VuZGlm
CiAKICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oCShyZXZpc2lvbiAyMzE0NjApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3
LDcgQEAKIAogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KQEAgLTY2LDcgKzY3LDcgQEAgc3RydWN0IFBsdWdpbk1v
ZHVsZUluZm87CiAKIGVudW0gY2xhc3MgU2hvdWxkQ2xlYXJGaXJzdCB7IE5vLCBZZXMgfTsKIAot
Y2xhc3MgV2Vic2l0ZURhdGFTdG9yZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYnNpdGVEYXRhU3Rv
cmU+LCBwdWJsaWMgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIsIHB1YmxpYyBJZGVudGlmaWVk
PFdlYnNpdGVEYXRhU3RvcmU+ICB7CitjbGFzcyBXZWJzaXRlRGF0YVN0b3JlIDogcHVibGljIFJl
ZkNvdW50ZWQ8V2Vic2l0ZURhdGFTdG9yZT4sIHB1YmxpYyBXZWJQcm9jZXNzTGlmZXRpbWVPYnNl
cnZlciwgcHVibGljIElkZW50aWZpZWQ8V2Vic2l0ZURhdGFTdG9yZT4sIHB1YmxpYyBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVDbGllbnQgewogcHVibGljOgogICAgIGNvbnN0ZXhwciBz
dGF0aWMgdWludDY0X3QgZGVmYXVsdENhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhID0gNTAgKiAx
MDI0ICogMTAyNDsKIApAQCAtMTIzLDE1ICsxMjQsMTggQEAgcHVibGljOgogICAgIHZvaWQgcmVt
b3ZlRGF0YUZvclRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zKE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlucywgRnVuY3Rpb248dm9pZChI
YXNoU2V0PFN0cmluZz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogCiAjaWYgSEFWRShDRk5F
VFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCi0gICAgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21h
aW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlu
c1RvUGFydGl0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9yQmxvY2ssIFNob3Vs
ZENsZWFyRmlyc3QpOwotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihj
b25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21h
aW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjayk7CisgICAgdm9pZCB1cGRhdGVQ
cmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZG9tYWluc1RvUGFydGl0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1Rv
QmxvY2ssIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9OZWl0aGVyUGFydGl0aW9uTm9y
QmxvY2ssIFNob3VsZENsZWFyRmlyc3QpIG92ZXJyaWRlOworICAgIHZvaWQgaGFzU3RvcmFnZUFj
Y2Vzc0ZvckZyYW1lKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYg
Zmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNhbGxiYWNrKSBvdmVy
cmlkZTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBkb21haW5zKT4mJik7Ci0gICAgdm9pZCBncmFudFN0
b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0
cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
dWludDY0X3QgcGFnZUlELCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCB3YXNHcmFu
dGVkKT4mJiBjYWxsYmFjayk7Ci0gICAgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxl
cigpOwotICAgIHZvaWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZG9tYWlucyk7Ci0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1l
SG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJhY2spOwot
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJp
bmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFjayk7CisgICAgdm9pZCBn
cmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3Ry
aW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1
aW50NjRfdCBwYWdlSUQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3Zl
cnJpZGU7CisgICAgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5z
KSBvdmVycmlkZTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVI
b3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBh
Z2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0
U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9z
dCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKICNlbmRpZgorICAgIHZvaWQgcmVmKCkgb3ZlcnJpZGUgeyBSZWZDb3Vu
dGVkPFdlYnNpdGVEYXRhU3RvcmU+OjpyZWYoKTsgfQorICAgIHZvaWQgZGVyZWYoKSBvdmVycmlk
ZSB7IFJlZkNvdW50ZWQ8V2Vic2l0ZURhdGFTdG9yZT46OmRlcmVmKCk7IH0KKwogICAgIHZvaWQg
bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOwogICAgIHZvaWQgcmVzb2x2ZURpcmVjdG9yaWVzSWZO
ZWNlc3NhcnkoKTsKICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkQXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmFwcGxpY2F0
aW9uQ2FjaGVEaXJlY3Rvcnk7IH0K
</data>
<flag name="review"
          id="358070"
          type_id="1"
          status="-"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>