<?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>192401</bug_id>
          
          <creation_ts>2018-12-05 07:25:17 -0800</creation_ts>
          <short_desc>Turn WritingDirection into an enum class</short_desc>
          <delta_ts>2018-12-05 09:51:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1485233</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-05 07:25:17 -0800</bug_when>
    <thetext>Work towards &lt;rdar://problem/42075638&gt;; splitting this off as a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485234</commentid>
    <comment_count>1</comment_count>
      <attachid>356604</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-05 07:30:07 -0800</bug_when>
    <thetext>Created attachment 356604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485241</commentid>
    <comment_count>2</comment_count>
      <attachid>356606</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-05 08:18:08 -0800</bug_when>
    <thetext>Created attachment 356606
Fix Win build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485270</commentid>
    <comment_count>3</comment_count>
      <attachid>356606</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-05 09:51:11 -0800</bug_when>
    <thetext>Comment on attachment 356606
Fix Win build

Clearing flags on attachment: 356606

Committed r238894: &lt;https://trac.webkit.org/changeset/238894&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485271</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-05 09:51:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356604</attachid>
            <date>2018-12-05 07:30:07 -0800</date>
            <delta_ts>2018-12-05 08:18:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192401-20181205073006.patch</filename>
            <type>text/plain</type>
            <size>24086</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4ODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIxYzYyOTk3NTZkOGJh
NzVhZTM4YzcxYTc3NDU1M2Y5YjE3MWJmNi4uYmRmMmRiYjBhMTFlMThiNzg0NmY3OTM3MzIwNzYx
ZjhlZjA2MzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE4LTEyLTA1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFR1cm4gV3JpdGlu
Z0RpcmVjdGlvbiBpbnRvIGFuIGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQwMQorICAgICAgICBXb3JrIHRvd2FyZHMgPHJkYXI6
Ly9wcm9ibGVtLzQyMDc1NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENoYW5nZSBXcml0aW5nRGlyZWN0aW9uIGZyb20gYW4gZW51bSB0byBhbiBl
bnVtIGNsYXNzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBlZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5k
OjpzcGxpdEFuY2VzdG9yc1dpdGhVbmljb2RlQmlkaSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
eVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0
aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjp0ZXh0RGlyZWN0
aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6dGV4dERpcmVjdGlv
bkZvclNlbGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9uU3RhcnQgY29uc3Qp
OgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzdGF0ZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6c3RhdGVUZXh0V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6
c3RhdGVUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0KToKKyAgICAgICAgKiBlZGl0aW5n
L1dyaXRpbmdEaXJlY3Rpb24uaDoKKworICAgICAgICBBZGRpdGlvbmFsbHkgd3JhcCB0aGlzIGVu
dW0gaW4gYG5hbWVzcGFjZSBXZWJDb3JlYCwgYW5kIHVwZGF0ZSB0aGUgY29weXJpZ2h0IHllYXIu
CisKKyAgICAgICAgKiBlZGl0aW5nL2lvcy9FZGl0b3JJT1MubW06CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnNldFRleHRBbGlnbm1lbnRGb3JDaGFuZ2VkQmFzZVdyaXRpbmdEaXJlY3Rpb24p
OgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6c2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24pOgorCiAyMDE4LTEyLTAzICBNaWNoYWVsIENh
dGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gVXNlIFNv
dXBTZXNzaW9uIGluc3RlYWQgb2YgU291cFNlc3Npb25Bc3luYwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxOGJiNmFk
NjgyOGY5NjliZTcyNzJhNWM3ZTJlZjU2MTBiMGVhMTEyLi43NzU1MDc1NmE4MDZiNjk1ZjA3OGQ5
NWNmY2NkMDFmZmRlMmIxZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTEyLTA1
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFR1cm4g
V3JpdGluZ0RpcmVjdGlvbiBpbnRvIGFuIGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQwMQorICAgICAgICBXb3JrIHRvd2FyZHMg
PHJkYXI6Ly9wcm9ibGVtLzQyMDc1NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENoYW5nZSBXcml0aW5nRGlyZWN0aW9uIGZyb20gYW4gZW51bSB0
byBhbiBlbnVtIGNsYXNzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6
c2V0VGV4dERpcmVjdGlvbik6CisKIDIwMTgtMTItMDMgIFl1c3VrZSBTdXp1a2kgIDx5dXN1a2Vz
dXp1a2lAc2xvd3N0YXJ0Lm9yZz4KIAogICAgICAgICBVc2UgV2FsbFRpbWUgZm9yIGZpbGUgdGlt
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCmluZGV4IDQ1MjI2ZmQ0ZDQ5NGQ1NzlmNTYzY2Uy
ZDBhZmU3YmU2YjBiMzUyN2IuLmU2OGI0OGM2ZThlMDViODAxMDBiYzkwMDcxYWNlODQ3YWY2NDdk
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0x
Mi0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBU
dXJuIFdyaXRpbmdEaXJlY3Rpb24gaW50byBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI0MDEKKyAgICAgICAgV29yayB0b3dh
cmRzIDxyZGFyOi8vcHJvYmxlbS80MjA3NTYzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgV3JpdGluZ0RpcmVjdGlvbiBmcm9tIGFuIGVu
dW0gdG8gYW4gZW51bSBjbGFzcy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVJT1MubW06CisgICAgICAgICgtW1dlYkZyYW1lIHNlbGVj
dGlvbkJhc2VXcml0aW5nRGlyZWN0aW9uXSk6CisgICAgICAgICgtW1dlYkZyYW1lIHNldEJhc2VX
cml0aW5nRGlyZWN0aW9uOl0pOgorCiAyMDE4LTExLTI5ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lICpPYnNlcnZlZENvbnRlbnRNb2RpZmllcihzKSB0
byAqT2JzZXJ2ZWRET01UaW1lcihzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDFl
ZmFmNTJjYzAxN2NhNjg4OTdhZmU4NTg0YjU2ZGU1ZTdiMmQ2NzQuLjFjYTc5ODVlYWZjOTQ2N2Qw
ZTM1NzUxZWQxOTQ4MWRhNTNhYjc4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxOC0xMi0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBUdXJuIFdyaXRpbmdEaXJlY3Rpb24gaW50byBhbiBlbnVtIGNs
YXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI0
MDEKKyAgICAgICAgV29yayB0b3dhcmRzIDxyZGFyOi8vcHJvYmxlbS80MjA3NTYzOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgV3JpdGlu
Z0RpcmVjdGlvbiBmcm9tIGFuIGVudW0gdG8gYW4gZW51bSBjbGFzcy4gTm8gY2hhbmdlIGluIGJl
aGF2aW9yLgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1b
V2ViSFRNTFZpZXcgdG9nZ2xlQmFzZVdyaXRpbmdEaXJlY3Rpb246XSk6CisgICAgICAgICgtW1dl
YkhUTUxWaWV3IGNoYW5nZUJhc2VXcml0aW5nRGlyZWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyBfY2hhbmdlQmFzZVdyaXRpbmdEaXJlY3Rpb25UbzpdKToKKwogMjAxOC0xMi0wMiAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHJ1bnRpbWUg
ZmVhdHVyZSBmbGFnIGZvciBMYXlvdXRGb3JtYXR0aW5nQ29udGV4dC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggMzcwMGYzNzcxZWY1OTIzZDY1
YmM3YWJiMjZiY2U2YjhiMDVmZTI5Ny4uYzNkODE0YWQxZDNmZGE2YWY4Njk2ODhiZmMyY2ExYjc5
Yzk1YzZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHAKQEAgLTQ4NCw3ICs0ODQsNyBAQCBIVE1MRWxlbWVudCogQXBwbHlTdHlsZUNvbW1hbmQ6OnNw
bGl0QW5jZXN0b3JzV2l0aFVuaWNvZGVCaWRpKE5vZGUqIG5vZGUsIGJvb2wgYgogICAgIEhUTUxF
bGVtZW50KiB1bnNwbGl0QW5jZXN0b3IgPSBudWxscHRyOwogCiAgICAgV3JpdGluZ0RpcmVjdGlv
biBoaWdoZXN0QW5jZXN0b3JEaXJlY3Rpb247Ci0gICAgaWYgKGFsbG93ZWREaXJlY3Rpb24gIT0g
TmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24KKyAgICBpZiAoYWxsb3dlZERpcmVjdGlvbiAhPSBXcml0
aW5nRGlyZWN0aW9uOjpOYXR1cmFsCiAgICAgICAgICYmIGhpZ2hlc3RBbmNlc3RvclVuaWNvZGVC
aWRpICE9IENTU1ZhbHVlQmlkaU92ZXJyaWRlCiAgICAgICAgICYmIGlzPEhUTUxFbGVtZW50Pigq
aGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpKQogICAgICAgICAmJiBFZGl0aW5nU3R5bGU6
OmNyZWF0ZShoaWdoZXN0QW5jZXN0b3JXaXRoVW5pY29kZUJpZGksIEVkaXRpbmdTdHlsZTo6QWxs
UHJvcGVydGllcyktPnRleHREaXJlY3Rpb24oaGlnaGVzdEFuY2VzdG9yRGlyZWN0aW9uKQpAQCAt
NjE0LDcgKzYxNCw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGUo
RWRpdGluZ1N0eWxlJiBzdHlsZSkKICAgICAvLyBhbmQgcHJldmVudCB1cyBmcm9tIGFkZGluZyBy
ZWR1bmRhbnQgb25lcywgYXMgZGVzY3JpYmVkIGluOgogICAgIC8vIDxyZGFyOi8vcHJvYmxlbS8z
NzI0MzQ0PiBCb2xkaW5nIGFuZCB1bmJvbGRpbmcgY3JlYXRlcyBleHRyYW5lb3VzIHRhZ3MKICAg
ICBQb3NpdGlvbiByZW1vdmVTdGFydCA9IHN0YXJ0LnVwc3RyZWFtKCk7Ci0gICAgV3JpdGluZ0Rp
cmVjdGlvbiB0ZXh0RGlyZWN0aW9uID0gTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb247CisgICAgV3Jp
dGluZ0RpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uID0gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDsK
ICAgICBib29sIGhhc1RleHREaXJlY3Rpb24gPSBzdHlsZS50ZXh0RGlyZWN0aW9uKHRleHREaXJl
Y3Rpb24pOwogICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlV2l0aG91dEVtYmVkZGluZzsK
ICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBlbWJlZGRpbmdTdHlsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCBlYTk4ODVlNGJmZWZhZTI4OGE4MzZmZjhkZTc4
NjJkNGQ3YmNlNGY0Li42NDIxNmM5ODYwNjRiNjdlZTM5OTVlMDAxMzg5ZDFjOGFkYjQ3MzhhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCkBAIC01NjcsMTMgKzU2Nywx
MyBAQCBib29sIEVkaXRpbmdTdHlsZTo6dGV4dERpcmVjdGlvbihXcml0aW5nRGlyZWN0aW9uJiB3
cml0aW5nRGlyZWN0aW9uKSBjb25zdAogICAgICAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVl
PihkaXJlY3Rpb24pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHdyaXRp
bmdEaXJlY3Rpb24gPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKmRpcmVjdGlvbikudmFs
dWVJRCgpID09IENTU1ZhbHVlTHRyID8gTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0aW9uIDogUmln
aHRUb0xlZnRXcml0aW5nRGlyZWN0aW9uOworICAgICAgICB3cml0aW5nRGlyZWN0aW9uID0gZG93
bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpkaXJlY3Rpb24pLnZhbHVlSUQoKSA9PSBDU1NWYWx1
ZUx0ciA/IFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0IDogV3JpdGluZ0RpcmVjdGlvbjo6
UmlnaHRUb0xlZnQ7CiAKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgaWYgKHVu
aWNvZGVCaWRpVmFsdWUgPT0gQ1NTVmFsdWVOb3JtYWwpIHsKLSAgICAgICAgd3JpdGluZ0RpcmVj
dGlvbiA9IE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uOworICAgICAgICB3cml0aW5nRGlyZWN0aW9u
ID0gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCkBAIC0xNDY4LDEzICsxNDY4LDEzIEBAIFdyaXRpbmdEaXJlY3Rpb24gRWRpdGluZ1N0eWxl
Ojp0ZXh0RGlyZWN0aW9uRm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mCiAgICAg
aGFzTmVzdGVkT3JNdWx0aXBsZUVtYmVkZGluZ3MgPSB0cnVlOwogCiAgICAgaWYgKHNlbGVjdGlv
bi5pc05vbmUoKSkKLSAgICAgICAgcmV0dXJuIE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uOworICAg
ICAgICByZXR1cm4gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDsKIAogICAgIFBvc2l0aW9uIHBv
c2l0aW9uID0gc2VsZWN0aW9uLnN0YXJ0KCkuZG93bnN0cmVhbSgpOwogCiAgICAgTm9kZSogbm9k
ZSA9IHBvc2l0aW9uLmRlcHJlY2F0ZWROb2RlKCk7CiAgICAgaWYgKCFub2RlKQotICAgICAgICBy
ZXR1cm4gTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb247CisgICAgICAgIHJldHVybiBXcml0aW5nRGly
ZWN0aW9uOjpOYXR1cmFsOwogCiAgICAgUG9zaXRpb24gZW5kOwogICAgIGlmIChzZWxlY3Rpb24u
aXNSYW5nZSgpKSB7CkBAIC0xNDkxLDcgKzE0OTEsNyBAQCBXcml0aW5nRGlyZWN0aW9uIEVkaXRp
bmdTdHlsZTo6dGV4dERpcmVjdGlvbkZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JgogCiAgICAgICAgICAgICBDU1NWYWx1ZUlEIHVuaWNvZGVCaWRpVmFsdWUgPSBkb3duY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZT4oKnVuaWNvZGVCaWRpKS52YWx1ZUlEKCk7CiAgICAgICAgICAgICBp
ZiAodW5pY29kZUJpZGlWYWx1ZSA9PSBDU1NWYWx1ZUVtYmVkIHx8IHVuaWNvZGVCaWRpVmFsdWUg
PT0gQ1NTVmFsdWVCaWRpT3ZlcnJpZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5hdHVyYWxX
cml0aW5nRGlyZWN0aW9uOworICAgICAgICAgICAgICAgIHJldHVybiBXcml0aW5nRGlyZWN0aW9u
OjpOYXR1cmFsOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNTA3LDcgKzE1MDcsNyBAQCBXcml0
aW5nRGlyZWN0aW9uIEVkaXRpbmdTdHlsZTo6dGV4dERpcmVjdGlvbkZvclNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJgogICAgIC8vIFRoZSBzZWxlY3Rpb24gaXMgZWl0aGVyIGEgY2Fy
ZXQgd2l0aCBubyB0eXBpbmcgYXR0cmlidXRlcyBvciBhIHJhbmdlIGluIHdoaWNoIG5vIGVtYmVk
ZGluZyBpcyBhZGRlZCwgc28ganVzdCB1c2UgdGhlIHN0YXJ0IHBvc2l0aW9uCiAgICAgLy8gdG8g
ZGVjaWRlLgogICAgIE5vZGUqIGJsb2NrID0gZW5jbG9zaW5nQmxvY2sobm9kZSk7Ci0gICAgV3Jp
dGluZ0RpcmVjdGlvbiBmb3VuZERpcmVjdGlvbiA9IE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uOwor
ICAgIGF1dG8gZm91bmREaXJlY3Rpb24gPSBXcml0aW5nRGlyZWN0aW9uOjpOYXR1cmFsOwogCiAg
ICAgZm9yICg7IG5vZGUgIT0gYmxvY2s7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsKICAg
ICAgICAgaWYgKCFub2RlLT5pc1N0eWxlZEVsZW1lbnQoKSkKQEAgLTE1MjMsNyArMTUyMyw3IEBA
IFdyaXRpbmdEaXJlY3Rpb24gRWRpdGluZ1N0eWxlOjp0ZXh0RGlyZWN0aW9uRm9yU2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAg
ICBpZiAodW5pY29kZUJpZGlWYWx1ZSA9PSBDU1NWYWx1ZUJpZGlPdmVycmlkZSkKLSAgICAgICAg
ICAgIHJldHVybiBOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBX
cml0aW5nRGlyZWN0aW9uOjpOYXR1cmFsOwogCiAgICAgICAgIEFTU0VSVCh1bmljb2RlQmlkaVZh
bHVlID09IENTU1ZhbHVlRW1iZWQpOwogICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IGRpcmVjdGlv
biA9IGNvbXB1dGVkU3R5bGUucHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBA
IC0xNTM0LDE0ICsxNTM0LDE0IEBAIFdyaXRpbmdEaXJlY3Rpb24gRWRpdGluZ1N0eWxlOjp0ZXh0
RGlyZWN0aW9uRm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mCiAgICAgICAgIGlm
IChkaXJlY3Rpb25WYWx1ZSAhPSBDU1NWYWx1ZUx0ciAmJiBkaXJlY3Rpb25WYWx1ZSAhPSBDU1NW
YWx1ZVJ0bCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChmb3VuZERpcmVj
dGlvbiAhPSBOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbikKLSAgICAgICAgICAgIHJldHVybiBOYXR1
cmFsV3JpdGluZ0RpcmVjdGlvbjsKKyAgICAgICAgaWYgKGZvdW5kRGlyZWN0aW9uICE9IFdyaXRp
bmdEaXJlY3Rpb246Ok5hdHVyYWwpCisgICAgICAgICAgICByZXR1cm4gV3JpdGluZ0RpcmVjdGlv
bjo6TmF0dXJhbDsKIAogICAgICAgICAvLyBJbiB0aGUgcmFuZ2UgY2FzZSwgbWFrZSBzdXJlIHRo
YXQgdGhlIGVtYmVkZGluZyBlbGVtZW50IHBlcnNpc3RzIHVudGlsIHRoZSBlbmQgb2YgdGhlIHJh
bmdlLgogICAgICAgICBpZiAoc2VsZWN0aW9uLmlzUmFuZ2UoKSAmJiAhZW5kLmRlcHJlY2F0ZWRO
b2RlKCktPmlzRGVzY2VuZGFudE9mKCpub2RlKSkKLSAgICAgICAgICAgIHJldHVybiBOYXR1cmFs
V3JpdGluZ0RpcmVjdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBXcml0aW5nRGlyZWN0aW9uOjpO
YXR1cmFsOwogICAgICAgICAKLSAgICAgICAgZm91bmREaXJlY3Rpb24gPSBkaXJlY3Rpb25WYWx1
ZSA9PSBDU1NWYWx1ZUx0ciA/IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiA6IFJpZ2h0VG9M
ZWZ0V3JpdGluZ0RpcmVjdGlvbjsKKyAgICAgICAgZm91bmREaXJlY3Rpb24gPSBkaXJlY3Rpb25W
YWx1ZSA9PSBDU1NWYWx1ZUx0ciA/IFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0IDogV3Jp
dGluZ0RpcmVjdGlvbjo6UmlnaHRUb0xlZnQ7CiAgICAgfQogICAgIGhhc05lc3RlZE9yTXVsdGlw
bGVFbWJlZGRpbmdzID0gZmFsc2U7CiAgICAgcmV0dXJuIGZvdW5kRGlyZWN0aW9uOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGFkY2NmOTRlODg4YmMzOTRlYzFjOGRiOTQyOTBkMTM5
YzQyZWQ4NmIuLjY5YzE2YTk0ZGQ5ZGJkODNhMDlkMGU2ZGYzM2NhODNkOGIzMmY5NTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTE3ODAsMTEgKzE3ODAsMTEgQEAgdm9pZCBFZGl0
b3I6OnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb24gZGlyZWN0aW9uKQog
ICAgICAgICAKICAgICBFbGVtZW50KiBmb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50KCkuZm9jdXNl
ZEVsZW1lbnQoKTsKICAgICBpZiAoZm9jdXNlZEVsZW1lbnQgJiYgZm9jdXNlZEVsZW1lbnQtPmlz
VGV4dEZpZWxkKCkpIHsKLSAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBOYXR1cmFsV3JpdGluZ0Rp
cmVjdGlvbikKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBXcml0aW5nRGlyZWN0aW9uOjpOYXR1
cmFsKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8mIGZvY3VzZWRGb3JtRWxl
bWVudCA9IGRvd25jYXN0PEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50PigqZm9jdXNlZEVsZW1l
bnQpOwotICAgICAgICBhdXRvIGRpcmVjdGlvblZhbHVlID0gZGlyZWN0aW9uID09IExlZnRUb1Jp
Z2h0V3JpdGluZ0RpcmVjdGlvbiA/ICJsdHIiIDogInJ0bCI7CisgICAgICAgIGF1dG8gZGlyZWN0
aW9uVmFsdWUgPSBkaXJlY3Rpb24gPT0gV3JpdGluZ0RpcmVjdGlvbjo6TGVmdFRvUmlnaHQgPyAi
bHRyIiA6ICJydGwiOwogICAgICAgICBhdXRvIHdyaXRpbmdEaXJlY3Rpb25JbnB1dFR5cGVOYW1l
ID0gaW5wdXRUeXBlTmFtZUZvckVkaXRpbmdBY3Rpb24oRWRpdEFjdGlvbjo6U2V0V3JpdGluZ0Rp
cmVjdGlvbik7CiAgICAgICAgIGlmICghZGlzcGF0Y2hCZWZvcmVJbnB1dEV2ZW50KGZvY3VzZWRG
b3JtRWxlbWVudCwgd3JpdGluZ0RpcmVjdGlvbklucHV0VHlwZU5hbWUsIGRpcmVjdGlvblZhbHVl
KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3OTYsMTMgKzE3OTYsMTMgQEAgdm9pZCBFZGl0
b3I6OnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb24gZGlyZWN0aW9uKQog
ICAgIH0KIAogICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBzdHlsZSA9IE11dGFi
bGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpOwotICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eURpcmVjdGlvbiwgZGlyZWN0aW9uID09IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlv
biA/ICJsdHIiIDogZGlyZWN0aW9uID09IFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbiA/ICJy
dGwiIDogImluaGVyaXQiLCBmYWxzZSk7CisgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3Bl
cnR5RGlyZWN0aW9uLCBkaXJlY3Rpb24gPT0gV3JpdGluZ0RpcmVjdGlvbjo6TGVmdFRvUmlnaHQg
PyAibHRyIiA6IGRpcmVjdGlvbiA9PSBXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdCA/ICJy
dGwiIDogImluaGVyaXQiLCBmYWxzZSk7CiAgICAgYXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0
aW9uKHN0eWxlLmdldCgpLCBFZGl0QWN0aW9uOjpTZXRXcml0aW5nRGlyZWN0aW9uKTsKIH0KIAog
V3JpdGluZ0RpcmVjdGlvbiBFZGl0b3I6OmJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9u
U3RhcnQoKSBjb25zdAogewotICAgIFdyaXRpbmdEaXJlY3Rpb24gcmVzdWx0ID0gTGVmdFRvUmln
aHRXcml0aW5nRGlyZWN0aW9uOworICAgIGF1dG8gcmVzdWx0ID0gV3JpdGluZ0RpcmVjdGlvbjo6
TGVmdFRvUmlnaHQ7CiAKICAgICBQb3NpdGlvbiBwb3MgPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNl
bGVjdGlvbigpLnZpc2libGVTdGFydCgpLmRlZXBFcXVpdmFsZW50KCk7CiAgICAgTm9kZSogbm9k
ZSA9IHBvcy5kZXByZWNhdGVkTm9kZSgpOwpAQCAtMTgyMSw5ICsxODIxLDkgQEAgV3JpdGluZ0Rp
cmVjdGlvbiBFZGl0b3I6OmJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9uU3RhcnQoKSBj
b25zdAogCiAgICAgc3dpdGNoIChyZW5kZXJlci0+c3R5bGUoKS5kaXJlY3Rpb24oKSkgewogICAg
IGNhc2UgVGV4dERpcmVjdGlvbjo6TFRSOgotICAgICAgICByZXR1cm4gTGVmdFRvUmlnaHRXcml0
aW5nRGlyZWN0aW9uOworICAgICAgICByZXR1cm4gV3JpdGluZ0RpcmVjdGlvbjo6TGVmdFRvUmln
aHQ7CiAgICAgY2FzZSBUZXh0RGlyZWN0aW9uOjpSVEw6Ci0gICAgICAgIHJldHVybiBSaWdodFRv
TGVmdFdyaXRpbmdEaXJlY3Rpb247CisgICAgICAgIHJldHVybiBXcml0aW5nRGlyZWN0aW9uOjpS
aWdodFRvTGVmdDsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDhjZDY2ZmVlNzU3OGJkZjk3YTAxN2Iw
YTU2MjRmMWJhN2E2ZjczM2IuLjU2Y2E1YmYwYTdmODkzNDBlYzdiMjQyZjAxNWIwZTU3OGNjMzlk
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtMTQzMCwx
NyArMTQzMCwxNyBAQCBzdGF0aWMgVHJpU3RhdGUgc3RhdGVTdXBlcnNjcmlwdChGcmFtZSYgZnJh
bWUsIEV2ZW50KikKIAogc3RhdGljIFRyaVN0YXRlIHN0YXRlVGV4dFdyaXRpbmdEaXJlY3Rpb25M
ZWZ0VG9SaWdodChGcmFtZSYgZnJhbWUsIEV2ZW50KikKIHsKLSAgICByZXR1cm4gc3RhdGVUZXh0
V3JpdGluZ0RpcmVjdGlvbihmcmFtZSwgTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0aW9uKTsKKyAg
ICByZXR1cm4gc3RhdGVUZXh0V3JpdGluZ0RpcmVjdGlvbihmcmFtZSwgV3JpdGluZ0RpcmVjdGlv
bjo6TGVmdFRvUmlnaHQpOwogfQogCiBzdGF0aWMgVHJpU3RhdGUgc3RhdGVUZXh0V3JpdGluZ0Rp
cmVjdGlvbk5hdHVyYWwoRnJhbWUmIGZyYW1lLCBFdmVudCopCiB7Ci0gICAgcmV0dXJuIHN0YXRl
VGV4dFdyaXRpbmdEaXJlY3Rpb24oZnJhbWUsIE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uKTsKKyAg
ICByZXR1cm4gc3RhdGVUZXh0V3JpdGluZ0RpcmVjdGlvbihmcmFtZSwgV3JpdGluZ0RpcmVjdGlv
bjo6TmF0dXJhbCk7CiB9CiAKIHN0YXRpYyBUcmlTdGF0ZSBzdGF0ZVRleHRXcml0aW5nRGlyZWN0
aW9uUmlnaHRUb0xlZnQoRnJhbWUmIGZyYW1lLCBFdmVudCopCiB7Ci0gICAgcmV0dXJuIHN0YXRl
VGV4dFdyaXRpbmdEaXJlY3Rpb24oZnJhbWUsIFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbik7
CisgICAgcmV0dXJuIHN0YXRlVGV4dFdyaXRpbmdEaXJlY3Rpb24oZnJhbWUsIFdyaXRpbmdEaXJl
Y3Rpb246OlJpZ2h0VG9MZWZ0KTsKIH0KIAogc3RhdGljIFRyaVN0YXRlIHN0YXRlVW5kZXJsaW5l
KEZyYW1lJiBmcmFtZSwgRXZlbnQqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9Xcml0aW5nRGlyZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyaXRpbmdEaXJl
Y3Rpb24uaAppbmRleCA3NjhiM2MyNWQxNDZjYjY1Y2Y2ZDg2MmFkZjliNGQ3M2QzNzZlMzZlLi4z
NDQ3OGFlZDgxZDQzZDc4YTljZDA4ZGQwNjA3Njc3ZWJkMTE1YTMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1dyaXRpbmdEaXJlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1dyaXRpbmdEaXJlY3Rpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw5ICsyMywyOSBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCiAgKi8KIAotI2lmbmRlZiBXcml0aW5nRGlyZWN0aW9uX2gKLSNkZWZpbmUgV3JpdGluZ0Rp
cmVjdGlvbl9oCisjcHJhZ21hIG9uY2UKIAotZW51bSBXcml0aW5nRGlyZWN0aW9uIHsgTmF0dXJh
bFdyaXRpbmdEaXJlY3Rpb24sIExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiwgUmlnaHRUb0xl
ZnRXcml0aW5nRGlyZWN0aW9uIH07CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAotI2VuZGlm
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgV3JpdGluZ0RpcmVjdGlvbiA6IHVp
bnQ4X3QgeworICAgIE5hdHVyYWwsCisgICAgTGVmdFRvUmlnaHQsCisgICAgUmlnaHRUb0xlZnQK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6V3JpdGluZ0RpcmVjdGlvbj4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OldyaXRpbmdEaXJl
Y3Rpb24sCisgICAgICAgIFdlYkNvcmU6OldyaXRpbmdEaXJlY3Rpb246Ok5hdHVyYWwsCisgICAg
ICAgIFdlYkNvcmU6OldyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0LAorICAgICAgICBXZWJD
b3JlOjpXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdAorICAgID47Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRv
cklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCBl
OGI2MjJhYTgyMGNmOWFhYjU2ZjJiYzU4NDYxNjg4ZDZjOTM4YjdiLi5mMzdmZGU3ZmY0NWRiYjU1
YTU1NjAyOTgyZWVmMmM4OWNjNGU0Yzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2lvcy9FZGl0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRp
dG9ySU9TLm1tCkBAIC05NywxMyArOTcsMTMgQEAgdm9pZCBFZGl0b3I6OnNldFRleHRBbGlnbm1l
bnRGb3JDaGFuZ2VkQmFzZVdyaXRpbmdEaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbiBkaXIKICAg
ICBjYXNlIFRleHRBbGlnbk1vZGU6OlN0YXJ0OgogICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6RW5k
OiB7CiAgICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7Ci0gICAgICAgIGNhc2UgTmF0dXJhbFdy
aXRpbmdEaXJlY3Rpb246CisgICAgICAgIGNhc2UgV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDoK
ICAgICAgICAgICAgIC8vIG5vLW9wCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBM
ZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb246CisgICAgICAgIGNhc2UgV3JpdGluZ0RpcmVjdGlv
bjo6TGVmdFRvUmlnaHQ6CiAgICAgICAgICAgICBuZXdWYWx1ZSA9ICJsZWZ0IjsKICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbjoKKyAg
ICAgICAgY2FzZSBXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdDoKICAgICAgICAgICAgIG5l
d1ZhbHVlID0gInJpZ2h0IjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMzEs
NyArMTMxLDcgQEAgdm9pZCBFZGl0b3I6OnNldFRleHRBbGlnbm1lbnRGb3JDaGFuZ2VkQmFzZVdy
aXRpbmdEaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbiBkaXIKICAgICBpZiAoZm9jdXNlZEVsZW1l
bnQgJiYgKGlzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KCpmb2N1c2VkRWxlbWVudCkgfHwgKGlzPEhU
TUxJbnB1dEVsZW1lbnQ+KCpmb2N1c2VkRWxlbWVudCkKICAgICAgICAgJiYgKGRvd25jYXN0PEhU
TUxJbnB1dEVsZW1lbnQ+KCpmb2N1c2VkRWxlbWVudCkuaXNUZXh0RmllbGQoKQogICAgICAgICAg
ICAgfHwgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmZvY3VzZWRFbGVtZW50KS5pc1NlYXJj
aEZpZWxkKCkpKSkpIHsKLSAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBOYXR1cmFsV3JpdGluZ0Rp
cmVjdGlvbikKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBXcml0aW5nRGlyZWN0aW9uOjpOYXR1
cmFsKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkb3duY2FzdDxIVE1MRWxlbWVudD4o
KmZvY3VzZWRFbGVtZW50KS5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFsaWdu
QXR0ciwgbmV3VmFsdWUpOwogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnVwZGF0ZVN0eWxl
SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcAppbmRleCBhM2U1ZWFlODk0ZDY0Mjc2MzdkZDg0NWVkYWFkZTcxYzYxNTFjMWFhLi5jNzc1
ZGVlYWUwYTlmM2I2YTg5YjFkNTAzZDA0ZWM4OTZiZjUyYmEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC00MjksMTMgKzQyOSwxMyBAQCB2
b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4
dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBtX2NsaWVudC5zdG9wU3BlYWtpbmcoKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0
aW9uOgotICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oTmF0
dXJhbFdyaXRpbmdEaXJlY3Rpb24pOworICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdy
aXRpbmdEaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQ6Ci0gICAgICAgIGZyYW1l
LT5lZGl0b3IoKS5zZXRCYXNlV3JpdGluZ0RpcmVjdGlvbihMZWZ0VG9SaWdodFdyaXRpbmdEaXJl
Y3Rpb24pOworICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24o
V3JpdGluZ0RpcmVjdGlvbjo6TGVmdFRvUmlnaHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0OgotICAgICAgICBmcmFtZS0+ZWRpdG9yKCku
c2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oUmlnaHRUb0xlZnRXcml0aW5nRGlyZWN0aW9uKTsKKyAg
ICAgICAgZnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdEaXJl
Y3Rpb246OlJpZ2h0VG9MZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdUZXh0RGlyZWN0aW9uRGVmYXVsdDoKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmNv
bW1hbmQoIk1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwiKS5leGVjdXRlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYmYzMTMzNDY2NGIxNTEzYzU4ZjQ1OTYw
MWZjNjRkODEwYjZmNDM2ZC4uNzdiZmM5ODIxYTVkY2YwNTQ0MDhiMjhlNzEwYzFiM2FkZjIzNjQ5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDMzOCwxMyArNDMzOCwx
MyBAQCB2b2lkIEludGVybmFsczo6c2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oQmFzZVdyaXRpbmdE
aXJlY3Rpb24gZGlyZWN0aW9uKQogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC0+
ZnJhbWUoKSkgewogICAgICAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKICAgICAgICAgICAg
IGNhc2UgQmFzZVdyaXRpbmdEaXJlY3Rpb246Okx0cjoKLSAgICAgICAgICAgICAgICBmcmFtZS0+
ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0
aW9uKTsKKyAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJl
Y3Rpb24oV3JpdGluZ0RpcmVjdGlvbjo6TGVmdFRvUmlnaHQpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBCYXNlV3JpdGluZ0RpcmVjdGlvbjo6UnRsOgotICAgICAg
ICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5zZXRCYXNlV3JpdGluZ0RpcmVjdGlvbihSaWdodFRv
TGVmdFdyaXRpbmdEaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5z
ZXRCYXNlV3JpdGluZ0RpcmVjdGlvbihXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdCk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEJhc2VXcml0aW5nRGlyZWN0
aW9uOjpOYXR1cmFsOgotICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5zZXRCYXNlV3Jp
dGluZ0RpcmVjdGlvbihOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbik7CisgICAgICAgICAgICAgICAg
ZnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb246
Ok5hdHVyYWwpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5k
ZXggMjMzMmE1NjljZDA3OGNiYjA1NTk5YzJhZTIyMTk5OTkxZGMzYzg2Yi4uN2IxNWM2NTcxMjE3
OTY0MGFmNDk3ZjJmMTljNzE5OTZiNzEzNDUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtODAyLDExICs4MDIsMTEgQEAgdm9pZCBXZWJG
cmFtZTo6c2V0VGV4dERpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvbikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgaWYgKGRpcmVjdGlvbiA9PSAiYXV0byIpCi0gICAgICAgIG1fY29yZUZy
YW1lLT5lZGl0b3IoKS5zZXRCYXNlV3JpdGluZ0RpcmVjdGlvbihOYXR1cmFsV3JpdGluZ0RpcmVj
dGlvbik7CisgICAgICAgIG1fY29yZUZyYW1lLT5lZGl0b3IoKS5zZXRCYXNlV3JpdGluZ0RpcmVj
dGlvbihXcml0aW5nRGlyZWN0aW9uOjpOYXR1cmFsKTsKICAgICBlbHNlIGlmIChkaXJlY3Rpb24g
PT0gImx0ciIpCi0gICAgICAgIG1fY29yZUZyYW1lLT5lZGl0b3IoKS5zZXRCYXNlV3JpdGluZ0Rp
cmVjdGlvbihMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24pOworICAgICAgICBtX2NvcmVGcmFt
ZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbjo6TGVm
dFRvUmlnaHQpOwogICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PSAicnRsIikKLSAgICAgICAgbV9j
b3JlRnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFJpZ2h0VG9MZWZ0V3Jp
dGluZ0RpcmVjdGlvbik7CisgICAgICAgIG1fY29yZUZyYW1lLT5lZGl0b3IoKS5zZXRCYXNlV3Jp
dGluZ0RpcmVjdGlvbihXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdCk7CiB9CiAKIHZvaWQg
V2ViRnJhbWU6OmRvY3VtZW50TG9hZGVyRGV0YWNoZWQodWludDY0X3QgbmF2aWdhdGlvbklEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUlPUy5tbQppbmRleCBmYjdlZjhmMTQwYmZmNjUwYWUwZjI0NzQ2OWY5MjRjN2VjN2Q4ZDA4Li5h
NGYwZjU5OWNmMjA2ZDVlYzA2MzJjZDc5MWVmOWJiZjBhMmIwNWQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUlPUy5tbQpAQCAt
NTMzLDEwICs1MzMsMTAgQEAgLSAoV0tXcml0aW5nRGlyZWN0aW9uKXNlbGVjdGlvbkJhc2VXcml0
aW5nRGlyZWN0aW9uCiB7CiAgICAgRnJhbWUgKmZyYW1lID0gW3NlbGYgY29yZUZyYW1lXTsKICAg
ICBzd2l0Y2ggKGZyYW1lLT5lZGl0b3IoKS5iYXNlV3JpdGluZ0RpcmVjdGlvbkZvclNlbGVjdGlv
blN0YXJ0KCkpIHsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbjoKKyAgICBj
YXNlIFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0OgogICAgICAgICByZXR1cm4gV0tXcml0
aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQ7CiAKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ0Rp
cmVjdGlvbjoKKyAgICBjYXNlIFdyaXRpbmdEaXJlY3Rpb246OlJpZ2h0VG9MZWZ0OgogICAgICAg
ICByZXR1cm4gV0tXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAKICAgICBkZWZhdWx0OgpA
QCAtNTczLDE2ICs1NzMsMTYgQEAgLSAodm9pZClzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbjooV0tX
cml0aW5nRGlyZWN0aW9uKWRpcmVjdGlvbgogICAgIGlmICghZnJhbWUtPnNlbGVjdGlvbigpLnNl
bGVjdGlvbigpLmlzQ29udGVudEVkaXRhYmxlKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAg
ICBXcml0aW5nRGlyZWN0aW9uIHdjRGlyZWN0aW9uID0gTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0
aW9uOworICAgIGF1dG8gd2NEaXJlY3Rpb24gPSBXcml0aW5nRGlyZWN0aW9uOjpMZWZ0VG9SaWdo
dDsKICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewogICAgICAgICBjYXNlIFdLV3JpdGluZ0RpcmVj
dGlvbk5hdHVyYWw6Ci0gICAgICAgICAgICB3Y0RpcmVjdGlvbiA9IE5hdHVyYWxXcml0aW5nRGly
ZWN0aW9uOworICAgICAgICAgICAgd2NEaXJlY3Rpb24gPSBXcml0aW5nRGlyZWN0aW9uOjpOYXR1
cmFsOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV0tXcml0aW5nRGlyZWN0aW9u
TGVmdFRvUmlnaHQ6Ci0gICAgICAgICAgICB3Y0RpcmVjdGlvbiA9IExlZnRUb1JpZ2h0V3JpdGlu
Z0RpcmVjdGlvbjsKKyAgICAgICAgICAgIHdjRGlyZWN0aW9uID0gV3JpdGluZ0RpcmVjdGlvbjo6
TGVmdFRvUmlnaHQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXS1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDoKLSAgICAgICAgICAgIHdjRGlyZWN0aW9uID0gUmlnaHRUb0xl
ZnRXcml0aW5nRGlyZWN0aW9uOworICAgICAgICAgICAgd2NEaXJlY3Rpb24gPSBXcml0aW5nRGly
ZWN0aW9uOjpSaWdodFRvTGVmdDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCA4OGE5ZTRiMTc1ZTJkOWQwMmY2
NzQxYjc0NmM2MmYxOGY1ODI3OGFiLi5hOTE5YzQ3YjQ2NGI3OGU3Yjc2N2JkMGU0MDU0ZjUyZGI5
Y2Y2Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KQEAgLTU1MjAsMTggKzU1MjAsMTggQEAgLSAodm9pZCl0b2dnbGVCYXNlV3JpdGluZ0Rp
cmVjdGlvbjooaWQpc2VuZGVyCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFdyaXRpbmdEaXJlY3Rpb24gZGlyZWN0aW9uID0gUmlnaHRUb0xlZnRXcml0aW5nRGly
ZWN0aW9uOworICAgIGF1dG8gZGlyZWN0aW9uID0gV3JpdGluZ0RpcmVjdGlvbjo6UmlnaHRUb0xl
ZnQ7CiAgICAgc3dpdGNoIChjb3JlRnJhbWUtPmVkaXRvcigpLmJhc2VXcml0aW5nRGlyZWN0aW9u
Rm9yU2VsZWN0aW9uU3RhcnQoKSkgewotICAgICAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ0Rp
cmVjdGlvbjoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJpZ2h0VG9MZWZ0V3Jp
dGluZ0RpcmVjdGlvbjoKLSAgICAgICAgICAgIGRpcmVjdGlvbiA9IExlZnRUb1JpZ2h0V3JpdGlu
Z0RpcmVjdGlvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAvLyBUaGUgd3JpdGluZ0Rp
cmVjdGlvbkZvclNlbGVjdGlvblN0YXJ0IG1ldGhvZCB3aWxsIG5ldmVyIHJldHVybiAibmF0dXJh
bCIuIEl0Ci0gICAgICAgIC8vIHdpbGwgYWx3YXlzIHJldHVybiBhIGNvbmNyZXRlIGRpcmVjdGlv
bi4gU28sIGtlZXAgdGhlIGNvbXBpbGVyIGhhcHB5LCBhbmQgYXNzZXJ0IG5vdCByZWFjaGVkLgot
ICAgICAgICBjYXNlIE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uOgotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIFdyaXRpbmdEaXJl
Y3Rpb246OkxlZnRUb1JpZ2h0OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFdyaXRpbmdEaXJl
Y3Rpb246OlJpZ2h0VG9MZWZ0OgorICAgICAgICBkaXJlY3Rpb24gPSBXcml0aW5nRGlyZWN0aW9u
OjpMZWZ0VG9SaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgLy8gVGhlIHdyaXRpbmdEaXJlY3Rp
b25Gb3JTZWxlY3Rpb25TdGFydCBtZXRob2Qgd2lsbCBuZXZlciByZXR1cm4gIm5hdHVyYWwiLiBJ
dAorICAgIC8vIHdpbGwgYWx3YXlzIHJldHVybiBhIGNvbmNyZXRlIGRpcmVjdGlvbi4gU28sIGtl
ZXAgdGhlIGNvbXBpbGVyIGhhcHB5LCBhbmQgYXNzZXJ0IG5vdCByZWFjaGVkLgorICAgIGNhc2Ug
V3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29y
ZShbc2VsZiBfZnJhbWVdKSkKQEAgLTU1NTIsNyArNTU1Miw3IEBAIC0gKHZvaWQpY2hhbmdlQmFz
ZVdyaXRpbmdEaXJlY3Rpb246KGlkKXNlbmRlcgogICAgIEFTU0VSVCh3cml0aW5nRGlyZWN0aW9u
ICE9IE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwpOwogCiAgICAgaWYgKEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQotICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLnNl
dEJhc2VXcml0aW5nRGlyZWN0aW9uKHdyaXRpbmdEaXJlY3Rpb24gPT0gTlNXcml0aW5nRGlyZWN0
aW9uTGVmdFRvUmlnaHQgPyBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24gOiBSaWdodFRvTGVm
dFdyaXRpbmdEaXJlY3Rpb24pOworICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLnNldEJhc2VX
cml0aW5nRGlyZWN0aW9uKHdyaXRpbmdEaXJlY3Rpb24gPT0gTlNXcml0aW5nRGlyZWN0aW9uTGVm
dFRvUmlnaHQgPyBXcml0aW5nRGlyZWN0aW9uOjpMZWZ0VG9SaWdodCA6IFdyaXRpbmdEaXJlY3Rp
b246OlJpZ2h0VG9MZWZ0KTsKIH0KIAogc3RhdGljIEJPT0wgd3JpdGluZ0RpcmVjdGlvbktleUJp
bmRpbmdzRW5hYmxlZCgpCkBAIC01NTczLDcgKzU1NzMsNyBAQCAtICh2b2lkKV9jaGFuZ2VCYXNl
V3JpdGluZ0RpcmVjdGlvblRvOihOU1dyaXRpbmdEaXJlY3Rpb24pZGlyZWN0aW9uCiAgICAgfQog
CiAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQotICAgICAg
ICBjb3JlRnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKGRpcmVjdGlvbiA9
PSBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA/IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVj
dGlvbiA6IFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbik7CisgICAgICAgIGNvcmVGcmFtZS0+
ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oZGlyZWN0aW9uID09IE5TV3JpdGluZ0Rp
cmVjdGlvbkxlZnRUb1JpZ2h0ID8gV3JpdGluZ0RpcmVjdGlvbjo6TGVmdFRvUmlnaHQgOiBXcml0
aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdCk7CiB9CiAKIC0gKHZvaWQpbWFrZUJhc2VXcml0aW5n
RGlyZWN0aW9uTGVmdFRvUmlnaHQ6KGlkKXNlbmRlcgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356606</attachid>
            <date>2018-12-05 08:18:08 -0800</date>
            <delta_ts>2018-12-05 09:51:11 -0800</delta_ts>
            <desc>Fix Win build</desc>
            <filename>bug-192401-20181205081807.patch</filename>
            <type>text/plain</type>
            <size>25912</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4ODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIxYzYyOTk3NTZkOGJh
NzVhZTM4YzcxYTc3NDU1M2Y5YjE3MWJmNi4uYmRmMmRiYjBhMTFlMThiNzg0NmY3OTM3MzIwNzYx
ZjhlZjA2MzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE4LTEyLTA1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFR1cm4gV3JpdGlu
Z0RpcmVjdGlvbiBpbnRvIGFuIGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQwMQorICAgICAgICBXb3JrIHRvd2FyZHMgPHJkYXI6
Ly9wcm9ibGVtLzQyMDc1NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENoYW5nZSBXcml0aW5nRGlyZWN0aW9uIGZyb20gYW4gZW51bSB0byBhbiBl
bnVtIGNsYXNzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBlZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5k
OjpzcGxpdEFuY2VzdG9yc1dpdGhVbmljb2RlQmlkaSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
eVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0
aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjp0ZXh0RGlyZWN0
aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6dGV4dERpcmVjdGlv
bkZvclNlbGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9uU3RhcnQgY29uc3Qp
OgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzdGF0ZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6c3RhdGVUZXh0V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6
c3RhdGVUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0KToKKyAgICAgICAgKiBlZGl0aW5n
L1dyaXRpbmdEaXJlY3Rpb24uaDoKKworICAgICAgICBBZGRpdGlvbmFsbHkgd3JhcCB0aGlzIGVu
dW0gaW4gYG5hbWVzcGFjZSBXZWJDb3JlYCwgYW5kIHVwZGF0ZSB0aGUgY29weXJpZ2h0IHllYXIu
CisKKyAgICAgICAgKiBlZGl0aW5nL2lvcy9FZGl0b3JJT1MubW06CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnNldFRleHRBbGlnbm1lbnRGb3JDaGFuZ2VkQmFzZVdyaXRpbmdEaXJlY3Rpb24p
OgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6c2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24pOgorCiAyMDE4LTEyLTAzICBNaWNoYWVsIENh
dGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gVXNlIFNv
dXBTZXNzaW9uIGluc3RlYWQgb2YgU291cFNlc3Npb25Bc3luYwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxOGJiNmFk
NjgyOGY5NjliZTcyNzJhNWM3ZTJlZjU2MTBiMGVhMTEyLi43NzU1MDc1NmE4MDZiNjk1ZjA3OGQ5
NWNmY2NkMDFmZmRlMmIxZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTEyLTA1
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFR1cm4g
V3JpdGluZ0RpcmVjdGlvbiBpbnRvIGFuIGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQwMQorICAgICAgICBXb3JrIHRvd2FyZHMg
PHJkYXI6Ly9wcm9ibGVtLzQyMDc1NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENoYW5nZSBXcml0aW5nRGlyZWN0aW9uIGZyb20gYW4gZW51bSB0
byBhbiBlbnVtIGNsYXNzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6
c2V0VGV4dERpcmVjdGlvbik6CisKIDIwMTgtMTItMDMgIFl1c3VrZSBTdXp1a2kgIDx5dXN1a2Vz
dXp1a2lAc2xvd3N0YXJ0Lm9yZz4KIAogICAgICAgICBVc2UgV2FsbFRpbWUgZm9yIGZpbGUgdGlt
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCmluZGV4IDQ1MjI2ZmQ0ZDQ5NGQ1NzlmNTYzY2Uy
ZDBhZmU3YmU2YjBiMzUyN2IuLmU2OGI0OGM2ZThlMDViODAxMDBiYzkwMDcxYWNlODQ3YWY2NDdk
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0x
Mi0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBU
dXJuIFdyaXRpbmdEaXJlY3Rpb24gaW50byBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI0MDEKKyAgICAgICAgV29yayB0b3dh
cmRzIDxyZGFyOi8vcHJvYmxlbS80MjA3NTYzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgV3JpdGluZ0RpcmVjdGlvbiBmcm9tIGFuIGVu
dW0gdG8gYW4gZW51bSBjbGFzcy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVJT1MubW06CisgICAgICAgICgtW1dlYkZyYW1lIHNlbGVj
dGlvbkJhc2VXcml0aW5nRGlyZWN0aW9uXSk6CisgICAgICAgICgtW1dlYkZyYW1lIHNldEJhc2VX
cml0aW5nRGlyZWN0aW9uOl0pOgorCiAyMDE4LTExLTI5ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lICpPYnNlcnZlZENvbnRlbnRNb2RpZmllcihzKSB0
byAqT2JzZXJ2ZWRET01UaW1lcihzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDFl
ZmFmNTJjYzAxN2NhNjg4OTdhZmU4NTg0YjU2ZGU1ZTdiMmQ2NzQuLjFjYTc5ODVlYWZjOTQ2N2Qw
ZTM1NzUxZWQxOTQ4MWRhNTNhYjc4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxOC0xMi0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBUdXJuIFdyaXRpbmdEaXJlY3Rpb24gaW50byBhbiBlbnVtIGNs
YXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI0
MDEKKyAgICAgICAgV29yayB0b3dhcmRzIDxyZGFyOi8vcHJvYmxlbS80MjA3NTYzOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgV3JpdGlu
Z0RpcmVjdGlvbiBmcm9tIGFuIGVudW0gdG8gYW4gZW51bSBjbGFzcy4gTm8gY2hhbmdlIGluIGJl
aGF2aW9yLgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1b
V2ViSFRNTFZpZXcgdG9nZ2xlQmFzZVdyaXRpbmdEaXJlY3Rpb246XSk6CisgICAgICAgICgtW1dl
YkhUTUxWaWV3IGNoYW5nZUJhc2VXcml0aW5nRGlyZWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyBfY2hhbmdlQmFzZVdyaXRpbmdEaXJlY3Rpb25UbzpdKToKKwogMjAxOC0xMi0wMiAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHJ1bnRpbWUg
ZmVhdHVyZSBmbGFnIGZvciBMYXlvdXRGb3JtYXR0aW5nQ29udGV4dC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZwppbmRleCAyMjM5ZWFkN2Q1M2I3ZWFhMDg5YTQ3NzQ3MTJmYjU1MTNjMjg1YTBm
Li5hOWFjYjBkZjdlMGU3YWIwYTcxNWFkNmFjN2YyYmVjYTVhMGM0YjY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMTItMDUgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVHVybiBXcml0aW5nRGlyZWN0
aW9uIGludG8gYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNDAxCisgICAgICAgIFdvcmsgdG93YXJkcyA8cmRhcjovL3Byb2Js
ZW0vNDIwNzU2Mzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2hhbmdlIFdyaXRpbmdEaXJlY3Rpb24gZnJvbSBhbiBlbnVtIHRvIGFuIGVudW0gY2xh
c3MuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAg
ICAgICAgKFdlYkZyYW1lOjpzZXRUZXh0RGlyZWN0aW9uKToKKwogMjAxOC0xMi0wMyAgWXVzdWtl
IFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgogCiAgICAgICAgIFVzZSBXYWxs
VGltZSBmb3IgZmlsZSB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwCmluZGV4IDM3MDBmMzc3MWVmNTkyM2Q2NWJjN2FiYjI2YmNlNmI4YjA1ZmUyOTcu
LmMzZDgxNGFkMWQzZmRhNmFmODY5Njg4YmZjMmNhMWI3OWM5NWM2YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC00ODQsNyArNDg0LDcgQEAg
SFRNTEVsZW1lbnQqIEFwcGx5U3R5bGVDb21tYW5kOjpzcGxpdEFuY2VzdG9yc1dpdGhVbmljb2Rl
QmlkaShOb2RlKiBub2RlLCBib29sIGIKICAgICBIVE1MRWxlbWVudCogdW5zcGxpdEFuY2VzdG9y
ID0gbnVsbHB0cjsKIAogICAgIFdyaXRpbmdEaXJlY3Rpb24gaGlnaGVzdEFuY2VzdG9yRGlyZWN0
aW9uOwotICAgIGlmIChhbGxvd2VkRGlyZWN0aW9uICE9IE5hdHVyYWxXcml0aW5nRGlyZWN0aW9u
CisgICAgaWYgKGFsbG93ZWREaXJlY3Rpb24gIT0gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbAog
ICAgICAgICAmJiBoaWdoZXN0QW5jZXN0b3JVbmljb2RlQmlkaSAhPSBDU1NWYWx1ZUJpZGlPdmVy
cmlkZQogICAgICAgICAmJiBpczxIVE1MRWxlbWVudD4oKmhpZ2hlc3RBbmNlc3RvcldpdGhVbmlj
b2RlQmlkaSkKICAgICAgICAgJiYgRWRpdGluZ1N0eWxlOjpjcmVhdGUoaGlnaGVzdEFuY2VzdG9y
V2l0aFVuaWNvZGVCaWRpLCBFZGl0aW5nU3R5bGU6OkFsbFByb3BlcnRpZXMpLT50ZXh0RGlyZWN0
aW9uKGhpZ2hlc3RBbmNlc3RvckRpcmVjdGlvbikKQEAgLTYxNCw3ICs2MTQsNyBAQCB2b2lkIEFw
cGx5U3R5bGVDb21tYW5kOjphcHBseUlubGluZVN0eWxlKEVkaXRpbmdTdHlsZSYgc3R5bGUpCiAg
ICAgLy8gYW5kIHByZXZlbnQgdXMgZnJvbSBhZGRpbmcgcmVkdW5kYW50IG9uZXMsIGFzIGRlc2Ny
aWJlZCBpbjoKICAgICAvLyA8cmRhcjovL3Byb2JsZW0vMzcyNDM0ND4gQm9sZGluZyBhbmQgdW5i
b2xkaW5nIGNyZWF0ZXMgZXh0cmFuZW91cyB0YWdzCiAgICAgUG9zaXRpb24gcmVtb3ZlU3RhcnQg
PSBzdGFydC51cHN0cmVhbSgpOwotICAgIFdyaXRpbmdEaXJlY3Rpb24gdGV4dERpcmVjdGlvbiA9
IE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uOworICAgIFdyaXRpbmdEaXJlY3Rpb24gdGV4dERpcmVj
dGlvbiA9IFdyaXRpbmdEaXJlY3Rpb246Ok5hdHVyYWw7CiAgICAgYm9vbCBoYXNUZXh0RGlyZWN0
aW9uID0gc3R5bGUudGV4dERpcmVjdGlvbih0ZXh0RGlyZWN0aW9uKTsKICAgICBSZWZQdHI8RWRp
dGluZ1N0eWxlPiBzdHlsZVdpdGhvdXRFbWJlZGRpbmc7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHls
ZT4gZW1iZWRkaW5nU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAK
aW5kZXggZWE5ODg1ZTRiZmVmYWUyODhhODM2ZmY4ZGU3ODYyZDRkN2JjZTRmNC4uNjQyMTZjOTg2
MDY0YjY3ZWUzOTk1ZTAwMTM4OWQxYzhhZGI0NzM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcApAQCAtNTY3LDEzICs1NjcsMTMgQEAgYm9vbCBFZGl0aW5nU3R5bGU6
OnRleHREaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbiYgd3JpdGluZ0RpcmVjdGlvbikgY29uc3QK
ICAgICAgICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4oZGlyZWN0aW9uKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICB3cml0aW5nRGlyZWN0aW9uID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KCpkaXJlY3Rpb24pLnZhbHVlSUQoKSA9PSBDU1NWYWx1ZUx0ciA/
IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiA6IFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlv
bjsKKyAgICAgICAgd3JpdGluZ0RpcmVjdGlvbiA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
PigqZGlyZWN0aW9uKS52YWx1ZUlEKCkgPT0gQ1NTVmFsdWVMdHIgPyBXcml0aW5nRGlyZWN0aW9u
OjpMZWZ0VG9SaWdodCA6IFdyaXRpbmdEaXJlY3Rpb246OlJpZ2h0VG9MZWZ0OwogCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmICh1bmljb2RlQmlkaVZhbHVlID09IENTU1Zh
bHVlTm9ybWFsKSB7Ci0gICAgICAgIHdyaXRpbmdEaXJlY3Rpb24gPSBOYXR1cmFsV3JpdGluZ0Rp
cmVjdGlvbjsKKyAgICAgICAgd3JpdGluZ0RpcmVjdGlvbiA9IFdyaXRpbmdEaXJlY3Rpb246Ok5h
dHVyYWw7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMTQ2OCwxMyArMTQ2OCwx
MyBAQCBXcml0aW5nRGlyZWN0aW9uIEVkaXRpbmdTdHlsZTo6dGV4dERpcmVjdGlvbkZvclNlbGVj
dGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJgogICAgIGhhc05lc3RlZE9yTXVsdGlwbGVFbWJl
ZGRpbmdzID0gdHJ1ZTsKIAogICAgIGlmIChzZWxlY3Rpb24uaXNOb25lKCkpCi0gICAgICAgIHJl
dHVybiBOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbjsKKyAgICAgICAgcmV0dXJuIFdyaXRpbmdEaXJl
Y3Rpb246Ok5hdHVyYWw7CiAKICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IHNlbGVjdGlvbi5zdGFy
dCgpLmRvd25zdHJlYW0oKTsKIAogICAgIE5vZGUqIG5vZGUgPSBwb3NpdGlvbi5kZXByZWNhdGVk
Tm9kZSgpOwogICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIE5hdHVyYWxXcml0aW5nRGly
ZWN0aW9uOworICAgICAgICByZXR1cm4gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDsKIAogICAg
IFBvc2l0aW9uIGVuZDsKICAgICBpZiAoc2VsZWN0aW9uLmlzUmFuZ2UoKSkgewpAQCAtMTQ5MSw3
ICsxNDkxLDcgQEAgV3JpdGluZ0RpcmVjdGlvbiBFZGl0aW5nU3R5bGU6OnRleHREaXJlY3Rpb25G
b3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYKIAogICAgICAgICAgICAgQ1NTVmFs
dWVJRCB1bmljb2RlQmlkaVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp1bmlj
b2RlQmlkaSkudmFsdWVJRCgpOwogICAgICAgICAgICAgaWYgKHVuaWNvZGVCaWRpVmFsdWUgPT0g
Q1NTVmFsdWVFbWJlZCB8fCB1bmljb2RlQmlkaVZhbHVlID09IENTU1ZhbHVlQmlkaU92ZXJyaWRl
KQotICAgICAgICAgICAgICAgIHJldHVybiBOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbjsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDsKICAgICAgICAgfQog
ICAgIH0KIApAQCAtMTUwNyw3ICsxNTA3LDcgQEAgV3JpdGluZ0RpcmVjdGlvbiBFZGl0aW5nU3R5
bGU6OnRleHREaXJlY3Rpb25Gb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYKICAg
ICAvLyBUaGUgc2VsZWN0aW9uIGlzIGVpdGhlciBhIGNhcmV0IHdpdGggbm8gdHlwaW5nIGF0dHJp
YnV0ZXMgb3IgYSByYW5nZSBpbiB3aGljaCBubyBlbWJlZGRpbmcgaXMgYWRkZWQsIHNvIGp1c3Qg
dXNlIHRoZSBzdGFydCBwb3NpdGlvbgogICAgIC8vIHRvIGRlY2lkZS4KICAgICBOb2RlKiBibG9j
ayA9IGVuY2xvc2luZ0Jsb2NrKG5vZGUpOwotICAgIFdyaXRpbmdEaXJlY3Rpb24gZm91bmREaXJl
Y3Rpb24gPSBOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbjsKKyAgICBhdXRvIGZvdW5kRGlyZWN0aW9u
ID0gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDsKIAogICAgIGZvciAoOyBub2RlICE9IGJsb2Nr
OyBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpKSB7CiAgICAgICAgIGlmICghbm9kZS0+aXNTdHls
ZWRFbGVtZW50KCkpCkBAIC0xNTIzLDcgKzE1MjMsNyBAQCBXcml0aW5nRGlyZWN0aW9uIEVkaXRp
bmdTdHlsZTo6dGV4dERpcmVjdGlvbkZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JgogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKHVuaWNvZGVCaWRpVmFsdWUg
PT0gQ1NTVmFsdWVCaWRpT3ZlcnJpZGUpCi0gICAgICAgICAgICByZXR1cm4gTmF0dXJhbFdyaXRp
bmdEaXJlY3Rpb247CisgICAgICAgICAgICByZXR1cm4gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJh
bDsKIAogICAgICAgICBBU1NFUlQodW5pY29kZUJpZGlWYWx1ZSA9PSBDU1NWYWx1ZUVtYmVkKTsK
ICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiBkaXJlY3Rpb24gPSBjb21wdXRlZFN0eWxlLnByb3Bl
cnR5VmFsdWUoQ1NTUHJvcGVydHlEaXJlY3Rpb24pOwpAQCAtMTUzNCwxNCArMTUzNCwxNCBAQCBX
cml0aW5nRGlyZWN0aW9uIEVkaXRpbmdTdHlsZTo6dGV4dERpcmVjdGlvbkZvclNlbGVjdGlvbihj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJgogICAgICAgICBpZiAoZGlyZWN0aW9uVmFsdWUgIT0gQ1NT
VmFsdWVMdHIgJiYgZGlyZWN0aW9uVmFsdWUgIT0gQ1NTVmFsdWVSdGwpCiAgICAgICAgICAgICBj
b250aW51ZTsKIAotICAgICAgICBpZiAoZm91bmREaXJlY3Rpb24gIT0gTmF0dXJhbFdyaXRpbmdE
aXJlY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb247Cisg
ICAgICAgIGlmIChmb3VuZERpcmVjdGlvbiAhPSBXcml0aW5nRGlyZWN0aW9uOjpOYXR1cmFsKQor
ICAgICAgICAgICAgcmV0dXJuIFdyaXRpbmdEaXJlY3Rpb246Ok5hdHVyYWw7CiAKICAgICAgICAg
Ly8gSW4gdGhlIHJhbmdlIGNhc2UsIG1ha2Ugc3VyZSB0aGF0IHRoZSBlbWJlZGRpbmcgZWxlbWVu
dCBwZXJzaXN0cyB1bnRpbCB0aGUgZW5kIG9mIHRoZSByYW5nZS4KICAgICAgICAgaWYgKHNlbGVj
dGlvbi5pc1JhbmdlKCkgJiYgIWVuZC5kZXByZWNhdGVkTm9kZSgpLT5pc0Rlc2NlbmRhbnRPZigq
bm9kZSkpCi0gICAgICAgICAgICByZXR1cm4gTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb247CisgICAg
ICAgICAgICByZXR1cm4gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDsKICAgICAgICAgCi0gICAg
ICAgIGZvdW5kRGlyZWN0aW9uID0gZGlyZWN0aW9uVmFsdWUgPT0gQ1NTVmFsdWVMdHIgPyBMZWZ0
VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24gOiBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb247Cisg
ICAgICAgIGZvdW5kRGlyZWN0aW9uID0gZGlyZWN0aW9uVmFsdWUgPT0gQ1NTVmFsdWVMdHIgPyBX
cml0aW5nRGlyZWN0aW9uOjpMZWZ0VG9SaWdodCA6IFdyaXRpbmdEaXJlY3Rpb246OlJpZ2h0VG9M
ZWZ0OwogICAgIH0KICAgICBoYXNOZXN0ZWRPck11bHRpcGxlRW1iZWRkaW5ncyA9IGZhbHNlOwog
ICAgIHJldHVybiBmb3VuZERpcmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRl
eCBhZGNjZjk0ZTg4OGJjMzk0ZWMxYzhkYjk0MjkwZDEzOWM0MmVkODZiLi42OWMxNmE5NGRkOWRi
ZDgzYTA5ZDBlNmRmMzNjYTgzZDhiMzJmOTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CkBAIC0xNzgwLDExICsxNzgwLDExIEBAIHZvaWQgRWRpdG9yOjpzZXRCYXNlV3JpdGluZ0RpcmVj
dGlvbihXcml0aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICAgICAgCiAgICAgRWxlbWVudCog
Zm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCk7CiAgICAgaWYgKGZv
Y3VzZWRFbGVtZW50ICYmIGZvY3VzZWRFbGVtZW50LT5pc1RleHRGaWVsZCgpKSB7Ci0gICAgICAg
IGlmIChkaXJlY3Rpb24gPT0gTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24pCisgICAgICAgIGlmIChk
aXJlY3Rpb24gPT0gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbCkKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBhdXRvJiBmb2N1c2VkRm9ybUVsZW1lbnQgPSBkb3duY2FzdDxIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudD4oKmZvY3VzZWRFbGVtZW50KTsKLSAgICAgICAgYXV0byBkaXJl
Y3Rpb25WYWx1ZSA9IGRpcmVjdGlvbiA9PSBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24gPyAi
bHRyIiA6ICJydGwiOworICAgICAgICBhdXRvIGRpcmVjdGlvblZhbHVlID0gZGlyZWN0aW9uID09
IFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0ID8gImx0ciIgOiAicnRsIjsKICAgICAgICAg
YXV0byB3cml0aW5nRGlyZWN0aW9uSW5wdXRUeXBlTmFtZSA9IGlucHV0VHlwZU5hbWVGb3JFZGl0
aW5nQWN0aW9uKEVkaXRBY3Rpb246OlNldFdyaXRpbmdEaXJlY3Rpb24pOwogICAgICAgICBpZiAo
IWRpc3BhdGNoQmVmb3JlSW5wdXRFdmVudChmb2N1c2VkRm9ybUVsZW1lbnQsIHdyaXRpbmdEaXJl
Y3Rpb25JbnB1dFR5cGVOYW1lLCBkaXJlY3Rpb25WYWx1ZSkpCiAgICAgICAgICAgICByZXR1cm47
CkBAIC0xNzk2LDEzICsxNzk2LDEzIEBAIHZvaWQgRWRpdG9yOjpzZXRCYXNlV3JpdGluZ0RpcmVj
dGlvbihXcml0aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICB9CiAKICAgICBSZWZQdHI8TXV0
YWJsZVN0eWxlUHJvcGVydGllcz4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVh
dGUoKTsKLSAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24sIGRpcmVj
dGlvbiA9PSBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24gPyAibHRyIiA6IGRpcmVjdGlvbiA9
PSBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb24gPyAicnRsIiA6ICJpbmhlcml0IiwgZmFsc2Up
OworICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgZGlyZWN0aW9u
ID09IFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0ID8gImx0ciIgOiBkaXJlY3Rpb24gPT0g
V3JpdGluZ0RpcmVjdGlvbjo6UmlnaHRUb0xlZnQgPyAicnRsIiA6ICJpbmhlcml0IiwgZmFsc2Up
OwogICAgIGFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlvbihzdHlsZS5nZXQoKSwgRWRpdEFj
dGlvbjo6U2V0V3JpdGluZ0RpcmVjdGlvbik7CiB9CiAKIFdyaXRpbmdEaXJlY3Rpb24gRWRpdG9y
OjpiYXNlV3JpdGluZ0RpcmVjdGlvbkZvclNlbGVjdGlvblN0YXJ0KCkgY29uc3QKIHsKLSAgICBX
cml0aW5nRGlyZWN0aW9uIHJlc3VsdCA9IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbjsKKyAg
ICBhdXRvIHJlc3VsdCA9IFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0OwogCiAgICAgUG9z
aXRpb24gcG9zID0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQo
KS5kZWVwRXF1aXZhbGVudCgpOwogICAgIE5vZGUqIG5vZGUgPSBwb3MuZGVwcmVjYXRlZE5vZGUo
KTsKQEAgLTE4MjEsOSArMTgyMSw5IEBAIFdyaXRpbmdEaXJlY3Rpb24gRWRpdG9yOjpiYXNlV3Jp
dGluZ0RpcmVjdGlvbkZvclNlbGVjdGlvblN0YXJ0KCkgY29uc3QKIAogICAgIHN3aXRjaCAocmVu
ZGVyZXItPnN0eWxlKCkuZGlyZWN0aW9uKCkpIHsKICAgICBjYXNlIFRleHREaXJlY3Rpb246OkxU
UjoKLSAgICAgICAgcmV0dXJuIExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbjsKKyAgICAgICAg
cmV0dXJuIFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0OwogICAgIGNhc2UgVGV4dERpcmVj
dGlvbjo6UlRMOgotICAgICAgICByZXR1cm4gUmlnaHRUb0xlZnRXcml0aW5nRGlyZWN0aW9uOwor
ICAgICAgICByZXR1cm4gV3JpdGluZ0RpcmVjdGlvbjo6UmlnaHRUb0xlZnQ7CiAgICAgfQogICAg
IAogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcAppbmRleCA4Y2Q2NmZlZTc1NzhiZGY5N2EwMTdiMGE1NjI0ZjFiYTdhNmY3MzNiLi41NmNh
NWJmMGE3Zjg5MzQwZWM3YjI0MmYwMTViMGU1NzhjYzM5ZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTE0MzAsMTcgKzE0MzAsMTcgQEAgc3RhdGljIFRy
aVN0YXRlIHN0YXRlU3VwZXJzY3JpcHQoRnJhbWUmIGZyYW1lLCBFdmVudCopCiAKIHN0YXRpYyBU
cmlTdGF0ZSBzdGF0ZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQoRnJhbWUmIGZyYW1l
LCBFdmVudCopCiB7Ci0gICAgcmV0dXJuIHN0YXRlVGV4dFdyaXRpbmdEaXJlY3Rpb24oZnJhbWUs
IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbik7CisgICAgcmV0dXJuIHN0YXRlVGV4dFdyaXRp
bmdEaXJlY3Rpb24oZnJhbWUsIFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0KTsKIH0KIAog
c3RhdGljIFRyaVN0YXRlIHN0YXRlVGV4dFdyaXRpbmdEaXJlY3Rpb25OYXR1cmFsKEZyYW1lJiBm
cmFtZSwgRXZlbnQqKQogewotICAgIHJldHVybiBzdGF0ZVRleHRXcml0aW5nRGlyZWN0aW9uKGZy
YW1lLCBOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbik7CisgICAgcmV0dXJuIHN0YXRlVGV4dFdyaXRp
bmdEaXJlY3Rpb24oZnJhbWUsIFdyaXRpbmdEaXJlY3Rpb246Ok5hdHVyYWwpOwogfQogCiBzdGF0
aWMgVHJpU3RhdGUgc3RhdGVUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0KEZyYW1lJiBm
cmFtZSwgRXZlbnQqKQogewotICAgIHJldHVybiBzdGF0ZVRleHRXcml0aW5nRGlyZWN0aW9uKGZy
YW1lLCBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb24pOworICAgIHJldHVybiBzdGF0ZVRleHRX
cml0aW5nRGlyZWN0aW9uKGZyYW1lLCBXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdCk7CiB9
CiAKIHN0YXRpYyBUcmlTdGF0ZSBzdGF0ZVVuZGVybGluZShGcmFtZSYgZnJhbWUsIEV2ZW50KikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV3JpdGluZ0RpcmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Xcml0aW5nRGlyZWN0aW9uLmgKaW5kZXggNzY4YjNjMjVk
MTQ2Y2I2NWNmNmQ4NjJhZGY5YjRkNzNkMzc2ZTM2ZS4uMzQ0NzhhZWQ4MWQ0M2Q3OGE5Y2QwOGRk
MDYwNzY3N2ViZDExNWEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Xcml0
aW5nRGlyZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Xcml0aW5nRGlyZWN0
aW9uLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjMsOSArMjMsMjkgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgV3Jp
dGluZ0RpcmVjdGlvbl9oCi0jZGVmaW5lIFdyaXRpbmdEaXJlY3Rpb25faAorI3ByYWdtYSBvbmNl
CiAKLWVudW0gV3JpdGluZ0RpcmVjdGlvbiB7IE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uLCBMZWZ0
VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24sIFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbiB9Owor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNlbmRpZgorbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIGNsYXNzIFdyaXRpbmdEaXJlY3Rpb24gOiB1aW50OF90IHsKKyAgICBOYXR1cmFsLAor
ICAgIExlZnRUb1JpZ2h0LAorICAgIFJpZ2h0VG9MZWZ0Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OldyaXRpbmdEaXJlY3Rpb24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBXZWJDb3JlOjpXcml0aW5nRGlyZWN0aW9uLAorICAgICAgICBXZWJDb3Jl
OjpXcml0aW5nRGlyZWN0aW9uOjpOYXR1cmFsLAorICAgICAgICBXZWJDb3JlOjpXcml0aW5nRGly
ZWN0aW9uOjpMZWZ0VG9SaWdodCwKKyAgICAgICAgV2ViQ29yZTo6V3JpdGluZ0RpcmVjdGlvbjo6
UmlnaHRUb0xlZnQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KaW5kZXggZThiNjIyYWE4MjBjZjlhYWI1NmYyYmM1
ODQ2MTY4OGQ2YzkzOGI3Yi4uZjM3ZmRlN2ZmNDVkYmI1NWE1NTYwMjk4MmVlZjJjODljYzRlNGM3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQpAQCAtOTcsMTMgKzk3
LDEzIEBAIHZvaWQgRWRpdG9yOjpzZXRUZXh0QWxpZ25tZW50Rm9yQ2hhbmdlZEJhc2VXcml0aW5n
RGlyZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb24gZGlyCiAgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpT
dGFydDoKICAgICBjYXNlIFRleHRBbGlnbk1vZGU6OkVuZDogewogICAgICAgICBzd2l0Y2ggKGRp
cmVjdGlvbikgewotICAgICAgICBjYXNlIE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uOgorICAgICAg
ICBjYXNlIFdyaXRpbmdEaXJlY3Rpb246Ok5hdHVyYWw6CiAgICAgICAgICAgICAvLyBuby1vcAog
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0
aW9uOgorICAgICAgICBjYXNlIFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0OgogICAgICAg
ICAgICAgbmV3VmFsdWUgPSAibGVmdCI7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb246CisgICAgICAgIGNhc2UgV3JpdGluZ0RpcmVj
dGlvbjo6UmlnaHRUb0xlZnQ6CiAgICAgICAgICAgICBuZXdWYWx1ZSA9ICJyaWdodCI7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgRWRpdG9y
OjpzZXRUZXh0QWxpZ25tZW50Rm9yQ2hhbmdlZEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdE
aXJlY3Rpb24gZGlyCiAgICAgaWYgKGZvY3VzZWRFbGVtZW50ICYmIChpczxIVE1MVGV4dEFyZWFF
bGVtZW50PigqZm9jdXNlZEVsZW1lbnQpIHx8IChpczxIVE1MSW5wdXRFbGVtZW50PigqZm9jdXNl
ZEVsZW1lbnQpCiAgICAgICAgICYmIChkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZm9jdXNl
ZEVsZW1lbnQpLmlzVGV4dEZpZWxkKCkKICAgICAgICAgICAgIHx8IGRvd25jYXN0PEhUTUxJbnB1
dEVsZW1lbnQ+KCpmb2N1c2VkRWxlbWVudCkuaXNTZWFyY2hGaWVsZCgpKSkpKSB7Ci0gICAgICAg
IGlmIChkaXJlY3Rpb24gPT0gTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24pCisgICAgICAgIGlmIChk
aXJlY3Rpb24gPT0gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbCkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCpmb2N1c2VkRWxlbWVudCkuc2V0QXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhbGlnbkF0dHIsIG5ld1ZhbHVlKTsKICAgICAg
ICAgbV9mcmFtZS5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggYTNlNWVhZTg5NGQ2
NDI3NjM3ZGQ4NDVlZGFhZGU3MWM2MTUxYzFhYS4uYzc3NWRlZWFlMGE5ZjNiNmE4OWIxZDUwM2Qw
NGVjODk2YmY1MmJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcApAQCAtNDI5LDEzICs0MjksMTMgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28K
ICAgICAgICAgbV9jbGllbnQuc3RvcFNwZWFraW5nKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbjoKLSAgICAgICAgZnJhbWUtPmVk
aXRvcigpLnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uKTsK
KyAgICAgICAgZnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdE
aXJlY3Rpb246Ok5hdHVyYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ0xlZnRUb1JpZ2h0OgotICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRp
bmdEaXJlY3Rpb24oTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0aW9uKTsKKyAgICAgICAgZnJhbWUt
PmVkaXRvcigpLnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb246OkxlZnRU
b1JpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSaWdo
dFRvTGVmdDoKLSAgICAgICAgZnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5nRGlyZWN0aW9u
KFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbik7CisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5z
ZXRCYXNlV3JpdGluZ0RpcmVjdGlvbihXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbkRl
ZmF1bHQ6CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKCJNYWtlVGV4dFdyaXRpbmdE
aXJlY3Rpb25OYXR1cmFsIikuZXhlY3V0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IGJmMzEzMzQ2NjRiMTUxM2M1OGY0NTk2MDFmYzY0ZDgxMGI2ZjQzNmQuLjc3YmZj
OTgyMWE1ZGNmMDU0NDA4YjI4ZTcxMGMxYjNhZGYyMzY0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTQzMzgsMTMgKzQzMzgsMTMgQEAgdm9pZCBJbnRlcm5hbHM6OnNl
dEJhc2VXcml0aW5nRGlyZWN0aW9uKEJhc2VXcml0aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKICAg
ICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAg
IHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgICAgICAgICBjYXNlIEJhc2VXcml0aW5nRGlyZWN0
aW9uOjpMdHI6Ci0gICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5n
RGlyZWN0aW9uKExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbik7CisgICAgICAgICAgICAgICAg
ZnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb246
OkxlZnRUb1JpZ2h0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
QmFzZVdyaXRpbmdEaXJlY3Rpb246OlJ0bDoKLSAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9y
KCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oUmlnaHRUb0xlZnRXcml0aW5nRGlyZWN0aW9uKTsK
KyAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24o
V3JpdGluZ0RpcmVjdGlvbjo6UmlnaHRUb0xlZnQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBCYXNlV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDoKLSAgICAgICAg
ICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oTmF0dXJhbFdy
aXRpbmdEaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5zZXRCYXNl
V3JpdGluZ0RpcmVjdGlvbihXcml0aW5nRGlyZWN0aW9uOjpOYXR1cmFsKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IDIzMzJhNTY5Y2QwNzhjYmIwNTU5
OWMyYWUyMjE5OTk5MWRjM2M4NmIuLjdiMTVjNjU3MTIxNzk2NDBhZjQ5N2YyZjE5YzcxOTk2Yjcx
MzQ1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAKQEAgLTgwMiwxMSArODAyLDExIEBAIHZvaWQgV2ViRnJhbWU6OnNldFRleHREaXJlY3Rpb24o
Y29uc3QgU3RyaW5nJiBkaXJlY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkaXJl
Y3Rpb24gPT0gImF1dG8iKQotICAgICAgICBtX2NvcmVGcmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdy
aXRpbmdEaXJlY3Rpb24oTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24pOworICAgICAgICBtX2NvcmVG
cmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbjo6
TmF0dXJhbCk7CiAgICAgZWxzZSBpZiAoZGlyZWN0aW9uID09ICJsdHIiKQotICAgICAgICBtX2Nv
cmVGcmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oTGVmdFRvUmlnaHRXcml0
aW5nRGlyZWN0aW9uKTsKKyAgICAgICAgbV9jb3JlRnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0
aW5nRGlyZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0KTsKICAgICBlbHNlIGlm
IChkaXJlY3Rpb24gPT0gInJ0bCIpCi0gICAgICAgIG1fY29yZUZyYW1lLT5lZGl0b3IoKS5zZXRC
YXNlV3JpdGluZ0RpcmVjdGlvbihSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb24pOworICAgICAg
ICBtX2NvcmVGcmFtZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oV3JpdGluZ0Rp
cmVjdGlvbjo6UmlnaHRUb0xlZnQpOwogfQogCiB2b2lkIFdlYkZyYW1lOjpkb2N1bWVudExvYWRl
ckRldGFjaGVkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lSU9TLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVJT1MubW0KaW5kZXggZmI3ZWY4ZjE0
MGJmZjY1MGFlMGYyNDc0NjlmOTI0YzdlYzdkOGQwOC4uYTRmMGY1OTljZjIwNmQ1ZWMwNjMyY2Q3
OTFlZjliYmYwYTJiMDVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVJT1MubW0KQEAgLTUzMywxMCArNTMzLDEwIEBAIC0gKFdL
V3JpdGluZ0RpcmVjdGlvbilzZWxlY3Rpb25CYXNlV3JpdGluZ0RpcmVjdGlvbgogewogICAgIEZy
YW1lICpmcmFtZSA9IFtzZWxmIGNvcmVGcmFtZV07CiAgICAgc3dpdGNoIChmcmFtZS0+ZWRpdG9y
KCkuYmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25TdGFydCgpKSB7Ci0gICAgY2FzZSBM
ZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb246CisgICAgY2FzZSBXcml0aW5nRGlyZWN0aW9uOjpM
ZWZ0VG9SaWdodDoKICAgICAgICAgcmV0dXJuIFdLV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0
OwogCi0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb246CisgICAgY2FzZSBXcml0
aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdDoKICAgICAgICAgcmV0dXJuIFdLV3JpdGluZ0RpcmVj
dGlvblJpZ2h0VG9MZWZ0OwogCiAgICAgZGVmYXVsdDoKQEAgLTU3MywxNiArNTczLDE2IEBAIC0g
KHZvaWQpc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246KFdLV3JpdGluZ0RpcmVjdGlvbilkaXJlY3Rp
b24KICAgICBpZiAoIWZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5pc0NvbnRlbnRFZGl0
YWJsZSgpKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgV3JpdGluZ0RpcmVjdGlvbiB3Y0Rp
cmVjdGlvbiA9IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbjsKKyAgICBhdXRvIHdjRGlyZWN0
aW9uID0gV3JpdGluZ0RpcmVjdGlvbjo6TGVmdFRvUmlnaHQ7CiAgICAgc3dpdGNoIChkaXJlY3Rp
b24pIHsKICAgICAgICAgY2FzZSBXS1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFsOgotICAgICAgICAg
ICAgd2NEaXJlY3Rpb24gPSBOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbjsKKyAgICAgICAgICAgIHdj
RGlyZWN0aW9uID0gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbDsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFdLV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0OgotICAgICAgICAg
ICAgd2NEaXJlY3Rpb24gPSBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb247CisgICAgICAgICAg
ICB3Y0RpcmVjdGlvbiA9IFdyaXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0OwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV0tXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ6Ci0g
ICAgICAgICAgICB3Y0RpcmVjdGlvbiA9IFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbjsKKyAg
ICAgICAgICAgIHdjRGlyZWN0aW9uID0gV3JpdGluZ0RpcmVjdGlvbjo6UmlnaHRUb0xlZnQ7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0KaW5kZXggODhhOWU0YjE3NWUyZDlkMDJmNjc0MWI3NDZjNjJmMThmNTgyNzhhYi4u
YTkxOWM0N2I0NjRiNzhlN2I3NjdiZDBlNDA1NGY1MmRiOWNmNjY4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC01NTIwLDE4ICs1NTIw
LDE4IEBAIC0gKHZvaWQpdG9nZ2xlQmFzZVdyaXRpbmdEaXJlY3Rpb246KGlkKXNlbmRlcgogICAg
IGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBXcml0aW5nRGlyZWN0aW9u
IGRpcmVjdGlvbiA9IFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbjsKKyAgICBhdXRvIGRpcmVj
dGlvbiA9IFdyaXRpbmdEaXJlY3Rpb246OlJpZ2h0VG9MZWZ0OwogICAgIHN3aXRjaCAoY29yZUZy
YW1lLT5lZGl0b3IoKS5iYXNlV3JpdGluZ0RpcmVjdGlvbkZvclNlbGVjdGlvblN0YXJ0KCkpIHsK
LSAgICAgICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb246Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb246Ci0gICAgICAg
ICAgICBkaXJlY3Rpb24gPSBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb247Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgLy8gVGhlIHdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25TdGFy
dCBtZXRob2Qgd2lsbCBuZXZlciByZXR1cm4gIm5hdHVyYWwiLiBJdAotICAgICAgICAvLyB3aWxs
IGFsd2F5cyByZXR1cm4gYSBjb25jcmV0ZSBkaXJlY3Rpb24uIFNvLCBrZWVwIHRoZSBjb21waWxl
ciBoYXBweSwgYW5kIGFzc2VydCBub3QgcmVhY2hlZC4KLSAgICAgICAgY2FzZSBOYXR1cmFsV3Jp
dGluZ0RpcmVjdGlvbjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXcml0aW5nRGlyZWN0aW9uOjpMZWZ0VG9SaWdodDoKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdDoKKyAg
ICAgICAgZGlyZWN0aW9uID0gV3JpdGluZ0RpcmVjdGlvbjo6TGVmdFRvUmlnaHQ7CisgICAgICAg
IGJyZWFrOworICAgIC8vIFRoZSB3cml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9uU3RhcnQgbWV0
aG9kIHdpbGwgbmV2ZXIgcmV0dXJuICJuYXR1cmFsIi4gSXQKKyAgICAvLyB3aWxsIGFsd2F5cyBy
ZXR1cm4gYSBjb25jcmV0ZSBkaXJlY3Rpb24uIFNvLCBrZWVwIHRoZSBjb21waWxlciBoYXBweSwg
YW5kIGFzc2VydCBub3QgcmVhY2hlZC4KKyAgICBjYXNlIFdyaXRpbmdEaXJlY3Rpb246Ok5hdHVy
YWw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSkpCkBAIC01
NTUyLDcgKzU1NTIsNyBAQCAtICh2b2lkKWNoYW5nZUJhc2VXcml0aW5nRGlyZWN0aW9uOihpZClz
ZW5kZXIKICAgICBBU1NFUlQod3JpdGluZ0RpcmVjdGlvbiAhPSBOU1dyaXRpbmdEaXJlY3Rpb25O
YXR1cmFsKTsKIAogICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVd
KSkKLSAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS5zZXRCYXNlV3JpdGluZ0RpcmVjdGlvbih3
cml0aW5nRGlyZWN0aW9uID09IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0ID8gTGVmdFRv
UmlnaHRXcml0aW5nRGlyZWN0aW9uIDogUmlnaHRUb0xlZnRXcml0aW5nRGlyZWN0aW9uKTsKKyAg
ICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS5zZXRCYXNlV3JpdGluZ0RpcmVjdGlvbih3cml0aW5n
RGlyZWN0aW9uID09IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0ID8gV3JpdGluZ0RpcmVj
dGlvbjo6TGVmdFRvUmlnaHQgOiBXcml0aW5nRGlyZWN0aW9uOjpSaWdodFRvTGVmdCk7CiB9CiAK
IHN0YXRpYyBCT09MIHdyaXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5nc0VuYWJsZWQoKQpAQCAtNTU3
Myw3ICs1NTczLDcgQEAgLSAodm9pZClfY2hhbmdlQmFzZVdyaXRpbmdEaXJlY3Rpb25UbzooTlNX
cml0aW5nRGlyZWN0aW9uKWRpcmVjdGlvbgogICAgIH0KIAogICAgIGlmIChGcmFtZSogY29yZUZy
YW1lID0gY29yZShbc2VsZiBfZnJhbWVdKSkKLSAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS5z
ZXRCYXNlV3JpdGluZ0RpcmVjdGlvbihkaXJlY3Rpb24gPT0gTlNXcml0aW5nRGlyZWN0aW9uTGVm
dFRvUmlnaHQgPyBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24gOiBSaWdodFRvTGVmdFdyaXRp
bmdEaXJlY3Rpb24pOworICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5n
RGlyZWN0aW9uKGRpcmVjdGlvbiA9PSBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA/IFdy
aXRpbmdEaXJlY3Rpb246OkxlZnRUb1JpZ2h0IDogV3JpdGluZ0RpcmVjdGlvbjo6UmlnaHRUb0xl
ZnQpOwogfQogCiAtICh2b2lkKW1ha2VCYXNlV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0Oihp
ZClzZW5kZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcAppbmRleCBjMmRlODRmOGUz
Mjk1Y2FhNTlmZmE1Y2FmOGU4NDRlNGM1ODkxOWRlLi44ODY2NTE1ZjFhNGQ2OTY5ZWQ5OTRjMjUz
NWNlOTgwNjJiZjQ1ZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJG
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCkBAIC05
NzksMTEgKzk3OSwxMSBAQCBIUkVTVUxUIFdlYkZyYW1lOjpzZXRUZXh0RGlyZWN0aW9uKF9Jbl8g
QlNUUiBkaXJlY3Rpb24pCiAKICAgICBTdHJpbmcgZGlyZWN0aW9uU3RyaW5nKGRpcmVjdGlvbiwg
U3lzU3RyaW5nTGVuKGRpcmVjdGlvbikpOwogICAgIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImF1
dG8iKQotICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5nRGlyZWN0aW9u
KE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uKTsKKyAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS5z
ZXRCYXNlV3JpdGluZ0RpcmVjdGlvbihXcml0aW5nRGlyZWN0aW9uOjpOYXR1cmFsKTsKICAgICBl
bHNlIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImx0ciIpCi0gICAgICAgIGNvcmVGcmFtZS0+ZWRp
dG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0aW9u
KTsKKyAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS5zZXRCYXNlV3JpdGluZ0RpcmVjdGlvbihX
cml0aW5nRGlyZWN0aW9uOjpMZWZ0VG9SaWdodCk7CiAgICAgZWxzZSBpZiAoZGlyZWN0aW9uU3Ry
aW5nID09ICJydGwiKQotICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLnNldEJhc2VXcml0aW5n
RGlyZWN0aW9uKFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbik7CisgICAgICAgIGNvcmVGcmFt
ZS0+ZWRpdG9yKCkuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oV3JpdGluZ0RpcmVjdGlvbjo6Umln
aHRUb0xlZnQpOwogICAgIHJldHVybiBTX09LOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>