x-mac-type="54455854" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="vsh-pilot.idl" Ly8gZGwyYmwuaWRsCi8vCi8vIElETCBmb3IgZGVhbGluZyB3aXRoIGNvbW11bmljYXRpb24g YmV0d2VlbiB0aGUgR1VJIChidWZmZXJlZCBieSBhIHNtYWxsCi8vIG1pZGRsZSkgYW5kIHRo ZSBkYXRhIHByb2Nlc3NpbmcgZW5naW5lLgovLwovLyBDaGFuZ2Vsb2c6Ci8vICAgICAgMjMg TWFyIDIwMDAgICAgIDogQnJhZCwgY3JlYXRpb24gCi8vICAgICAgMjUgTWFyIDIwMDAgICAg IDogSmFybCwgYWRkZWQgZ21zIG5hbWluZwovLyAgICAgIDI2IE1hciAyMDAwICAgICA6IFJl bmFtZWQgYWdhaW4gOikgYWRkZWRccmVtb3ZlIHNvbWUgZnVuY3Rpb25zCi8vICAgICAgICAg ICAgICAgICAgICAgICAgQWN0dWFsbHkgY29tcGlsZWQgdGhpcyA6KQovLyAgICAgIDI3IE1h ciAyMDAwICAgICA6IEJyYWQsIGNhc2UgY2hhbmdlcywgbW92ZWQgYSBmZXcgZnVuY3Rpb25z IGFyb3VuZAovLyAgICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIGEgc3RydWN0IGZvciBy ZXR1cm5pbmcgbW9yZSBpbmZvIGFib3V0IGEgCi8vICAgICAgICAgICAgICAgICAgICAgICAg bm9kZS9wcm9jZXNzLgovKioKICogQWNyb255bXMKICogdnNoOiBUaGUgb3ZlcmFsbCBtb2R1 bGUgKHRoZSBuYW1lIGNhbiBjaGFuZ2Ugd2hlbiB3ZSBkZWNpZGUgb24gYSBmb3JtYWwKICog ICAgICBuYW1lKS4KICogZGwyYmw6IGlkbCBmb3IgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRo ZSBzY3JpcHRpbmcvWE1MIGxheWVyIGFuZCB0aGUgCiAqICAgICAgZGF0YSBwcm9jZXNzaW5n IGVuZ2luZS4KICogZGwgOiBkZWZpbml0aW9uIGxheWVyLCBpbnZvbHZlZCBpbiB0aGUgY3Jl YXRpb24gb2YgYW4gWE1MIHNjcmlwdCB0byBkZWZpbmUKICogIHN0cnVjdHVyZXMuCiAqIGJs OiBCcm9rZXJpbmcgTGF5ZXIsIGxheWVyIHRoYXQgZG9lcyB0aGUgZGlzdHJpYnV0aW9uXGF1 dGhlbnRpY2F0aW9uXGV0YwogKiBwbDogUHJvY2Vzc2luZyBMYXllciwgbGF5ZXIgdGhhdCBk b2VzIHRoZSAncmVhbCcgZGF0YWZsb3cgd29yay4KICogCiAqLwptb2R1bGUgdnNoIHsKICAv KioKICAgKiBDb21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIGRlZmluaXRpb24gbGF5ZXIgKFhN TCBzY3JpcHQgZ2VuZXJhdG9yKSBhbmQKICAgKiB0aGUgYnJva2VyaW5nIGxheWVyLCB3aGlj aCBkaXN0cmlidXRlcyB0aGUgWE1MIGluZm8gdG8gdGhlIHByb2Nlc3NpbmcgCiAgICogbGF5 ZXIuCiAgICovCiAgbW9kdWxlIGRsMmJsIHsKICAgIC8vICMjIyMjIGV4Y2VwdGlvbnMKICAg IC8vIC0tLS0tLS0tLS0tLS0tLS0KICAgIC8qKgogICAgICogUmVxdWVzdGVkIElkIGlzIGFs cmVhZHkgYmVpbmcgdXNlZCBmb3IgYW5vdGhlciBndWkuCiAgICAgKi8KICAgIGV4Y2VwdGlv biBETElkSW5Vc2Uge307CiAgICAvKioKICAgICAqIElkIG51bWJlciB1c2VkIGZvciByZXF1 ZXN0ZWQgb3BlcmF0aW9uIHdhcyBub3QgZm91bmQgaW4gdGhlIGxpc3Qgb2YKICAgICAqIGN1 cnJlbnQgZ3VpIGlkcyBiZWluZyBzZXJ2ZWQgYnkgdGhlIGRhdGEgcHJvY2Vzc29yLgogICAg ICovCiAgICBleGNlcHRpb24gRExJZE5vdEZvdW5ke307CiAgICAvKioKICAgICAqIFRoZSBp bmZvcm1hdGlvbiBmb3IgYSBub2RlIGlzIG5vdCB5ZXQgYXZhaWxhYmxlIGJlY2F1c2UgdGhl IHByb2Nlc3MKICAgICAqIGhhcyBub3QgY29tcGxldGVkLgogICAgICovCiAgICBleGNlcHRp b24gRExJbmZvTm90QXZhaWxhYmxle307ICAgICAgICAgICAgICAgICAgICAgCiAgICAvKioK ICAgICAqIFRoZSBkZWZpbml0aW9uIGxheWVyIGNvdWxkbid0IGFjY2VwdCB0aGUgWE1MIGRv Y3VtZW50IGFuZCBzbyBkaWRuJ3QgCiAgICAgKiBhbGxvY2F0ZSBhbiB1cmkuCiAgICAgKi8K ICAgIGV4Y2VwdGlvbiBVUklVbmRlZmluZWR7fTsKICAgIC8qKgogICAgICogVGhlIHVyaSBp cyBhbHJlYWR5IGRlZmluZWQuCiAgICAgKi8KICAgIGV4Y2VwdGlvbiBVUklJblVzZXt9Owog ICAgLyoqCiAgICAgKiBUaGUgdXJpIGNhbnQgYmUgZm91bmQsIGl0IGRvZXMgbm90IGV4Y2lz dCBvciBpcyBub3QgYWNjZXNzYWJsZS4KICAgICAqLwogICAgZXhjZXB0aW9uIFVSSU5vdEZv dW5ke307CiAgICAvKioKICAgICAqIFJlcXVlc3RlZCBpbmZvcm1hdGlvbiB3YXMgbm90IGZv dW5kLgogICAgICovCiAgICBleGNlcHRpb24gSW5mb05vdEF2YWlsYWJsZXt9OwogICAgCiAg ICAvLyAjIyMjIyBzdHJ1Y3RzLCBlbnVtcyBhbmQgdHlwZWRlZnMKICAgIC8vIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLyoqCiAgICAgKiBETCBpZGVudGlmaWNh dGlvbiBudW1iZXIsIG9yICdhY2NvdW50IG5hbWUnLgogICAgICovCiAgICB0eXBlZGVmIGxv bmcgRExJZFQ7CiAgICAvKioKICAgICAqIFBhc3N3b3Jkcy4KICAgICAqLwogICAgdHlwZWRl ZiBzdHJpbmcgcGFzc3dvcmRUOwogICAgLyoqCiAgICAgKiBDb25uZWN0aW9uIHR5cGU6CiAg ICAgKiAgIC0xID0gVW5jb25uZWN0ZWQKICAgICAqICAgIDAgPSBVbmtub3duCiAgICAgKiAg ICAxID0gUGxhaW4gY29ubmVjdGlvbgogICAgICogICAgMiA9IEVuY3J5cHRlZCBjb25uZWN0 aW9uLCBiYXNlZCBvbiB7VE9ETzp0eXBlfSBlbmNyeXB0aW9uCiAgICAgKi8KICAgIGVudW0g Y29ubmVjdGlvbkUgewogICAgICAgIFVOS05PV04sCiAgICAgICAgVU5DT05ORUNURUQsCiAg ICAgICAgUExBSU4sCiAgICAgICAgRU5DUllQVEVEMQogICAgfTsKICAgIC8qKgogICAgICog Q3VycmVudCBzdGF0ZSBvZiBhIG5vZGUgb3IgcHJvY2VzczoKICAgICAqIC0xID0gRXJyb3Ig KFRPRE86IE90aGVyIG5lZ2F0aXZlIHZhbHVlcyB0byBkZWZpbmUgdmFyaW91cyBlcnJvcnMp CiAgICAgKiAgMCA9IFVua25vd24KICAgICAqICAxID0gUGFzc2luZwogICAgICogIDIgPSBC bG9ja2luZwogICAgICogIDQgPSBUZW1wb3JhcnkKICAgICAqICA4ID0gSXNvbGF0ZWQKICAg ICAqLwogICAgdHlwZWRlZiBsb25nIHN0YXRlVDsKICAgIAogICAgLyoqCiAgICAgKiBBIHZh bHVlIGJldHdlZW4gemVybyBhbmQgb25lIGluZGljYXRpbmcgdGhlIHByb2Nlc3MgdG93YXJk cyBjb21wbGV0aW9uCiAgICAgKiBmb3IgYSBwcm9jZXNzLCBzdWJuZXQgb3Igbm9kZS4gVGhp cyBpcyB1c2VmdWwgaWYgeW91IGhhdmUgcmVhbGx5IGxvbmcKICAgICAqIHByb2dyYW1zIGFu ZCB3YW50IHRvIGNoZWNrIG9uIHRoZWlyIHN0YXR1cy4KICAgICAqIDEgLT4gZmluaXNoZWQg KDEwMCUgZG9uZSkKICAgICAqIGludGVybWVkaWF0ZSAtPiAlIHRvd2FyZHMgY29tcGxldGlv bgogICAgICogMCAtPiBub3Qgc3RhcnRlZCAoMCUgZG9uZSkKICAgICAqLwogICAgdHlwZWRl ZiBkb3VibGUgcHJvZ3Jlc3NUOwogICAgCiAgICAvKioKICAgICAqIFN0cnVjdCBmb3IgcmV0 dXJuaW5nIHRoZSBzdGF0dXMgb2YgYSBwYXJ0aWN1bGFyIG5vZGUgb3IgcHJvY2Vzcy4KICAg ICAqIEBtZW0gc3RhdGUgLSBUaGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgbm9kZSBvciBwcm9j ZXNzLgogICAgICogQG1lbSBwcm9ncmVzcyAtIFRoZSBwcm9ncmVzcyB0b3dhcmRzIGNvbXBs ZXRpb24gb2YgdGhlIG5vZGUgb3IgCiAgICAgKiAgICAgICAgICAgICAgICAgcHJvY2Vzcy4K ICAgICAqLwogICAgc3RydWN0IHN0YXR1c1R7CiAgICAgICAgc3RhdGVUIHN0YXRlOwogICAg ICAgIHByb2dyZXNzVCBwcm9ncmVzczsKICAgIH07CiAgICAgICAgCiAgICAvKioKICAgICAq IFVSSSB0eXBlLCBhIDEyOGJpdHMgbG9jYXRpbmcgaWQ6CiAgICAgKiBiaXRzIDAtMzEgOiBp bnN0YW5jZSBpZAogICAgICogYml0cyAzMi02MyA6IGJyb2tlcmluZyBpZCwgb3Igc3VibmV0 IGlkCiAgICAgKiBiaXRzIDY0LTEyNyA6IG5vZGUgaQogICAgICogdXJpVCBpcyBpbiBhIElQ IChJbnRlcm5ldCBwcm90b2NvbCkgc3R5bGUKICAgICAqICAgICAgdXJpVCA9IDIuMC4wIC0+ IEFsbCBzdWJuZXRzIGFuZCBub2RlcyBsb2NhbCBpbiBpbnN0YW5jZSAyCiAgICAgKiAgICAg IHVyaVQgPSA3NC4zNS4wIC0+IEFsbCBub2RlcyBpbiBzdWJuZXQgMzUgb2YgaW5zdGFuY2Ug NzQuCiAgICAgKiAgICAgIHVyaVQgPSAxLjIuMyAtPiBOb2RlIDMgaW4gc3VibmV0IDIgb2Yg aW5zdGFuY2UgMS4KICAgICAqLwogICAgc3RydWN0IHVyaVQgewogICAgICAgIGxvbmcgaW5z dGFuY2VJRDsKICAgICAgICBsb25nIHN1Ym5ldElEOwogICAgICAgIGxvbmcgbm9kZUlEOwog ICAgfTsKICAgIAogICAgLyoqCiAgICAgKiBBIHNlcXVlbmNlL2xpc3Qgb2YgdXJpVHMuIFVz ZWZ1bCBmb3IgcmV0dXJuaW5nIGluZm8gbGlrZSBhIGxpc3Qgb2YKICAgICAqIHByb2dyYW0g aWRzIGZvciBhdmFpbGFibGUgcHJvZ3JhbXMuCiAgICAgKiAKICAgICAqLwogICAgdHlwZWRl ZiBzZXF1ZW5jZSA8c3RyaW5nPiB1cmlMaXN0VDsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgLy8gIyMjIyMgaW50ZXJmYWNlcyAgICAgICAgICAgICAgICAgCiAgICAvLyAt LS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIC8qKgog ICAgICogRnVuY3Rpb25zIGZvciBlc3RhYmxpc2hpbmcgYSBjb25uZWN0aW9uIGJldHdlZW4g dGhlIGRlZmluaXRpb24gbGF5ZXIKICAgICAqIGFuZCBicm9rZXJpbmcgbGF5ZXIgKHdoaWNo IGNvbnRyb2xzIGFjY2VzcyB0byB0aGUgcHJvY2Vzc2luZyBsYXllcikuCiAgICAgKi8KICAg IGludGVyZmFjZSBDb25uZWN0aW9uIHsKICAgICAgICAvLyBUT0RPOiBpbnRyb2R1Y2UgYSAn YWNjZXNzIGxldmVsJywgc28gQURNJ3MgY2FuIGJlIGxpbWl0ZWQKICAgICAgICAKICAgICAg ICAvKiogc2V0dXAKICAgICAgICAgKiBJbml0aWFsaXplIGEgY29ubmVjdGlvbiBmcm9tIHRo ZSBkbCB0byB0aGUgYnJva2VyaW5nL3Byb2Nlc3NpbmcgbGF5ZXIuCiAgICAgICAgICogQHBh cm0gICAgZGxpZC0gQW4gdW5pcXVlIGlkIHRvIHJlcHJlc2VudCB0aGUgY29ubmVjdGlvbi4K ICAgICAgICAgKiBAcGFybSAgICBwYXNzd29yZCAtIFRoZSBwYXNzd29yZCBhc3NvY2lhdGVk IHdpdGggdGhpcyBpZC4KICAgICAgICAgKiBAcGFybSAgICBjb25uZWN0dHlwZSAtIHJlcXVl c3RlZCBjb25uZWN0aW9uIHR5cGUuCiAgICAgICAgICogQHJldHVybnMgQSBib29sZWFuIGlu ZGljYXRpbmcgdGhlIHN1Y2Nlc3Mgb2YgdGhlIGluaXRpYWxpemF0aW9uLgogICAgICAgICAq IEByYWlzZXMgIERMSWRJblVzZSAtIFRoZSBwYXNzZWQgZGxpZCBpcyBhbHJlYWR5IGluIHVz ZSBieSBhbm90aGVyIAogICAgICAgICAqIGd1aS4KICAgICAgICAgKiBUT0RPOiBBZGQgbW9y ZSBleGNlcHRpb25zIHRvIHJhaXNlIGFzIHdlIHNlZSB3aGF0IHByb2JsZW1zIGNvbWUgdXAu CiAgICAgICAgICovCiAgICAgICAgYm9vbGVhbiBzZXR1cChpbiBETElkVCBkbGlkLCBpbiBw YXNzd29yZFQgcGFzc3dvcmQsIGluIGNvbm5lY3Rpb25FIAogICAgICAgICAgICAgICAgICAg ICAgY29ubmVjdHR5cGUpIAogICAgICAgICAgICByYWlzZXMgKERMSWRJblVzZSk7CiAgICAg ICAgLyoqIHJlbGVhc2UKICAgICAgICAgKiBDbG9zZSB0aGUgY29ubmVjdGlvbiBiZXR3ZWVu IHRoZSBkZWZpbml0aW9uIGxheWVyIGFuZCB0aGUgYnJva2VyaW5nCiAgICAgICAgICogcHJv Y2Vzc2luZyBsYXllcgogICAgICAgICAqIEBwYXJtICAgIGRsaWQgLSBBbiB1bmlxdWUgaWQg dG8gcmVwcmVzZW50IHRoZSBjb25uZWN0aW9uLgogICAgICAgICAqIEBwYXJtICAgIHBhc3N3 b3JkIC0gVGhlIHBhc3N3b3JkIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGlkLgogICAgICAgICAq IEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBzdWNjZXNzIG9mIHRoZSBpbml0 aWFsaXphdGlvbgogICAgICAgICAqIEByYWlzZXMgIERMSWROb3RGb3VuZCAtIFRoZSBwYXNz ZWQgaWQgd2FzIG5vdCBmb3VuZCBpbiB0aGUgbGlzdCBvZgogICAgICAgICAqICAgICAgICAg IGlkcyByZWdpc3RlcmQgd2l0aCB0aGUgZGF0YSBwcm9jZXNzaW5nIGVuZ2luZS4KICAgICAg ICAgKi8KICAgICAgICBib29sZWFuIHJlbGVhc2UoaW4gRExJZFQgZGxpZCwgaW4gcGFzc3dv cmRUIHBhc3N3b3JkKQogICAgICAgICAgICByYWlzZXMgKERMSWROb3RGb3VuZCk7CiAgICAg ICAgICAgIAogICAgICAgIC8qKiBjaGVja0Nvbm5lY3Rpb24KICAgICAgICAgKiBDaGVja3Mg aWYgdGhlIERMIHdpdGggaWQgJ2RsaWQnIGhhcyBiZWVuIGNvbm5lY3RlZC4KICAgICAgICAg KiBAcGFybSAgICBkbGlkIC0gQW4gdW5pcXVlIGlkIHJlcHJlc3RpbmcgdGhlIGNvbm5lY3Rp b24uCiAgICAgICAgICogQHJldHVybnMgdHlwZSBvZiBjb25uZWN0aW9uCiAgICAgICAgICog QHJhaXNlcyAgRExJbmZvTm90QXZhaWxhYmxlIC0gdGhpcyBjb25uZWN0aW9uIGlzbid0IHNl dHVwIGNvcnJlY3RseQogICAgICAgICAqLwogICAgICAgIGNvbm5lY3Rpb25FIGNoZWNrQ29u bmVjdGlvbihpbiBETElkVCBkbGlkKQogICAgICAgICAgICByYWlzZXMgKERMSW5mb05vdEF2 YWlsYWJsZSk7CiAgICB9OwogICAgLyoqCiAgICAgKiBGdW5jdGlvbnMgZm9yIHBhc3Npbmcg WE1MIGluZm9ybWF0aW9uIHRvIHRoZSBkYXRhIHByb2Nlc3NpbmcgZW5naW5lCiAgICAgKiBh bmQgc3luY2hyb25pemluZyB0aGUgZG9jdW1lbnQuCiAgICAgKi8KICAgIGludGVyZmFjZSBY bWxSZXByZXNlbnRhdGlvbiB7CiAgICAgICAgLyoqIHVwbG9hZAogICAgICAgICAqIFVwbG9h ZHMgYSBYTUwgZG9jdW1lbnQgdG8gdGhlIERMLCB3aGljaCB3aWxsIHBhc3MgbW9zdCBvZiBp dCB0byB0aGUgCiAgICAgICAgICogUEwuCiAgICAgICAgICogQHBhcm0gICAgeG1sZG9jdW1l bnQ6IEEgYmlnIHN0cmluZyBvZiB4bWwgZGVzY3JpYmluZyB0aGUgbm9kZXMvbG9jaQogICAg ICAgICAqICAgICAgICAgIHRvIGJlIHByb2Nlc3NlZCBhbmQgdGhlIHJlbGF0aW9uc2hpcCBi ZXR3ZWVuIHRoZW0uCiAgICAgICAgICogQHBhcm0gICAgZGxpZCAtIFRoZSBJRCBvZiB0aGUg REwgdGhhdCB1cGxvYWRzIHRoZSBkb2N1bWVudAogICAgICAgICAqIEBwYXJtICAgIHBhc3N3 b3JkIC0gVGhlIHBhc3N3b3JkIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGlkLgogICAgICAgICAq IEByZXR1cm5zIHRoZSBVUkkgdGhlIHVwbG9hZGVkIHN0cnVjdHVyZSBnb3QgYXNzaWduZWQg YnkgdGhlIERMLgogICAgICAgICAqIEByYWlzZXMgIFVSSVVuZGVmaW5lZCwgdGhlIERML1BM IGNvdWxkbid0IGFjY2VwdCB0aGUgWE1MIGRvY3VtZW50LiAKICAgICAgICAgKiAgICAgICAg ICBVc2UgUmV0cmlldmVJbmZvOjpjaGVjayB0byBzZWUgd2hhdCBpcyB3cm9uZy4KICAgICAg ICAgKi8KICAgICAgICB1cmlUIHVwbG9hZChpbiBzdHJpbmcgeG1sZG9jdW1lbnQsIGluIERM SWRUIGRsaWQsIGluIHBhc3N3b3JkVCBwYXNzd29yZCkKICAgICAgICAgICAgcmFpc2VzIChV UklVbmRlZmluZWQpOwogICAgICAgICAgICAKICAgICAgICAvKiogdXBkYXRlCiAgICAgICAg ICogVXBkYXRlcyBhbiBleGNpc3Rpbmcgc3RydWN0dXJlLgogICAgICAgICAqIEBwYXJtICAg IHhtbGRvY3VtZW50IC0gVGhlIFhNTCBkb2N1bWVudAogICAgICAgICAqIEBwYXJtICAgIHVy aSAtIHRoZSB1cmkgaWQgb2YgdGhlIHN0cnVjdHVyZSB0byBiZSBvdmVyd3JpdHRlbi4KICAg ICAgICAgKiBAcGFybSAgICBkbGlkIC0gVGhlIElEIG9mIHRoZSBETCB0aGF0IHVwbG9hZHMg dGhlIGRvY3VtZW50CiAgICAgICAgICogQHBhcm0gICAgcGFzc3dvcmQgLSBUaGUgcGFzc3dv cmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaWQuCiAgICAgICAgICogQHJldHVybnMgYm9vbGVh biBzdWNjZXNzIHN0YXR1cy4KICAgICAgICAgKiBAcmFpc2VzICBVUklJblVzZSwgdGhlIHVy aSBpcyBjdXJyZW50bHkgcnVubmluZyBvciB0aGUgRERMIGlzIG5vdCBhdXRob3JpemVkIAog ICAgICAgICAqICAgICAgICAgIHRvIG92ZXJ3cml0ZSBpdC4KICAgICAgICAgKi8KICAgICAg ICBib29sZWFuIHVwZGF0ZShpbiBzdHJpbmcgeG1sZG9jdW1lbnQsIGluIHVyaVQgdXJpLCBp biBETElkVCBkbGlkLCAKICAgICAgICAgICAgICAgICAgICAgICBpbiBwYXNzd29yZFQgcGFz c3dvcmQpCiAgICAgICAgICAgIHJhaXNlcyAoVVJJSW5Vc2UpOwogICAgICAgIAogICAgICAg IC8qKiBkb3dubG9hZAogICAgICAgICAqIERvd25sb2FkcyBhIFhNTCBkb2N1bWVudCBmcm9t IHRoZSBCTCB0byB0aGUgREwuCiAgICAgICAgICogQHBhcm0gICAgdXJpIC0gdXJpIG9mIHRo ZSBzdHJ1Y3R1cmUgdG8gYmUgZG93bmxvYWRlZC4KICAgICAgICAgKiBAcGFybSAgICBkbGQg LSBUaGUgSUQgb2YgdGhlIERMIHRoYXQgdXBsb2FkZWQgdGhlIGRvY3VtZW50CiAgICAgICAg ICogQHBhcm0gICAgcGFzc3dvcmQgLSBUaGUgcGFzc3dvcmQgYXNzb2NpYXRlZCB3aXRoIHRo aXMgaWQuCiAgICAgICAgICogQHJldHVybnMgQW4gWE1MIGRvY3VtZW50LgogICAgICAgICAq IEByYWlzZXMgIFVSSU5vdEZvdW5kIHdoZW4gdXJpIGRvZXNuJ3QgZXhpc3Qgb3IgaXMgbm90 IHJlYWNoYWJsZS4KICAgICAgICAgKi8KICAgICAgICBzdHJpbmcgZG93bmxvYWQoaW4gdXJp VCB1cmksIGluIERMSWRUIGRsaWQsIGluIHBhc3N3b3JkVCBwYXNzd29yZCkKICAgICAgICAg ICAgcmFpc2VzIChVUklOb3RGb3VuZCk7CiAgICAgICAgICAgIAogICAgIH07CiAgICAvKioK ICAgICAqIEZ1bmN0aW9ucyB0byBwcm92aWRlIHN0YXR1cyBpbmZvcm1hdGlvbiBmb3IgdGhl IGNvcmUgKGJyb2tlcmluZyBhbmQgCiAgICAgKiBwcm9jZXNzaW5nIGxheWVycyksIGFuZCBm b3IgZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCBwcm9ncmFtcyBhbmQKICAgICAqIGxpYnJh cmllcyByZWdpc3RlcmVkIHdpdGggdGhlIHByb2Nlc3NpbmcgZW5naW5lLgogICAgICovCiAg ICBpbnRlcmZhY2UgUmV0cmlldmVJbmZvIHsKICAgICAgICAvKiogY2hlY2tTdGF0dXMKICAg ICAgICAgKiBVc2VkIGZvciBjaGVja2luZyB0aGUgc3RhdHVzIG9mIGFuIFVSSSAKICAgICAg ICAgKiBAcGFybSAgICB1cmkgLSB1cmkgb2YgdGhlIHN0cnVjdHVyZSB0byBiZSBjaGVja2Vk LgogICAgICAgICAqIEBwYXJtICAgIGRsaWQgLSBUaGUgSUQgb2YgdGhlIERMIHRoYXQgdXBs b2FkcyB0aGUgZG9jdW1lbnQKICAgICAgICAgKiBAcGFybSAgICBwYXNzd29yZCAtIFRoZSBw YXNzd29yZCBhc3NvY2lhdGVkIHdpdGggdGhpcyBpZC4KICAgICAgICAgKiBAcmV0dXJucyBT dGF0dXMgb2YgdGhlIHN0cnVjdHVyZSB1cmkuCiAgICAgICAgICogQHJhaXNlcyAgVVJJTm90 Rm91bmQgd2hlbiB1cmkgZG9lc24ndCBleGNpc3Qgb3IgaXMgbm90IHJlYWNoYWJsZS4KICAg ICAgICAgKi8KICAgICAgICBzdGF0dXNUIGNoZWNrU3RhdHVzKGluIHVyaVQgdXJpLCBpbiBE TElkVCBkbGlkLCBpbiBwYXNzd29yZFQgcGFzc3dvcmQpCiAgICAgICAgICAgIHJhaXNlcyAo VVJJTm90Rm91bmQpOwogICAgICAgICAgICAgICAgCiAgICAgICAgLyoqCiAgICAgICAgICog R2V0IHRoZSBpbmZvcm1hdGlvbiBmb3IgYSBub2RlIHNvIHRoYXQgaXMgY2FuIGJlIGRpc3Bs YXllZCBpbgogICAgICAgICAqIHRoZSB2aXN1YWwgdXNlciBpbnRlcmZhY2UuCiAgICAgICAg ICogQHBhcm0gcHJvY2Vzc2lkIC0gdGhlIHVuaXF1ZSBpZCBhc3NvY2lhdGVkIHdpdGggYSBw cm9jZXNzLgogICAgICAgICAqIEBwYXJtIHVyaSAtIHVyaSBvZiB0aGUgbm9kZSB0byBiZSBj aGVja2VkLgogICAgICAgICAqIEByZXR1cm5zIEEgc3RyaW5nIHdpdGggdGhlIGluZm8gZnJv bSB0aGUgbm9kZS4KICAgICAgICAgKiAgICAgICAgICBUT0RPOiBOZWVkIGEgc3RydWN0dXJl ZCBhbmQgZ2VuZXJhbGl6ZWQgd2F5IHRvIHJldHVybiBpbmZvCiAgICAgICAgICogICAgICAg ICAgYW5kIHBhc3MgaXQgdG8gYSB2aXN1YWwgc28gaXQgY2FuIGJlIHNlZW4gaW4gdGhlIEdV SQogICAgICAgICAqICAgICAgICAgIFN0cmluZ3MgYXJlbid0IGdvaW5nIHRvIGN1dCBpdCBm b3IgZXZlcnl0aGluZywgCiAgICAgICAgICogICAgICAgICAgSSBkb24ndCB0aGluay4KICAg ICAgICAgKiBAcmFpc2VzIEluZm9Ob3RBdmFpbGFibGUgLSBJZiB0aGUgbm9kZSBjdXJyZW50 bHkgZG9lc24ndCBoYXZlIGFueQogICAgICAgICAqICAgICAgICAgaW5mb3JtYXRpb24gdG8g c2VuZCAoaWUuIHByb2Nlc3MgaXMgbm90IGNvbXBsZXRlKS4KICAgICAgICAgKi8KICAgICAg ICBzdHJpbmcgZ2V0Tm9kZUluZm8oaW4gcGFzc3dvcmRUIHByb2Nlc3NpZCwgaW4gdXJpVCB1 cmkpCiAgICAgICAgICAgIHJhaXNlcyAoSW5mb05vdEF2YWlsYWJsZSk7ICAKICAgICAgICAK ICAgICAgICAvKioKICAgICAgICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgcHJvZ3JhbSBp ZHMgb2YgcHJvZ3JhbXMgcmVnaXN0ZXJlZCBmdW5jdGlvbmFsCiAgICAgICAgICogKGllLiBs b2FkZWQpIHdpdGggdGhlIHByb2Nlc3NpbmcgZW5naW5lLgogICAgICAgICAqIEByZXR1cm5z IEEgc2VxdWVuY2Ugb2YgdXJpJ3Mgd2l0aCBpZHMgb2YgYXZhaWxhYmxlIAogICAgICAgICAq ICAgICAgICAgIG5vZGVzL3N1Ym5ldHMvcHJvZ3JhbXMuIFRoZXNlIHdpbGwgYmUgcmV0dXJu ZWQgd2l0aCBsZWFkaW5nIAogICAgICAgICAqICAgICAgICAgIHplcm9zLiBGb3IgaW5zdGFu Y2UgeW91IGNvdWxkIGdldCBiYWNrIGEgbGlzdCBsaWtlIHRoZSAKICAgICAgICAgKiAgICAg ICAgICBmb2xsb3dpbmc6CiAgICAgICAgICogICAgICAgICAgWycwLjAuMjcnLCAnMC4wLjM0 NScsICcwLjAuMTIzJy4uLl0gCiAgICAgICAgICogICAgICAgICAgSXQgd2lsbCBiZSB1cCB0 byB0aGUgZGVmaW5pdGlvbiBsYXllciB0byBrZWVwIGEgZGljdGlvbmFyeSAKICAgICAgICAg KiAgICAgICAgICB0byB0cmFuc2xhdGUgYmV0d2VlbiB0aGVzZSB1cmkncyBhbmQgdGhlIGFj dHVhbCBwcm9ncmFtIAogICAgICAgICAqICAgICAgICAgIG5hbWVzLgogICAgICAgICAqLwog ICAgICAgIHVyaUxpc3RUIGdldFByb2dyYW1JZHMoKTsKICAgICAgICAKICAgICAgICAvKioK ICAgICAgICAgKiBRdWVyeSBhIHNwZWNpZmljIG5vZGUgdG8gc2VlIGlmIGl0IGlzIGF2YWls YWJsZS4KICAgICAgICAgKiBAcGFybSBub2RlX2lkIC0gdGhlIHVuaXF1ZSBpZCBvZiBhIG5v ZGUgKHByb2dyYW0vZnVuY3Rpb24pLgogICAgICAgICAqIEByZXR1cm5zIDEgaWYgdGhlIHBy b2dyYW0gaXMgbG9hZGVkLCAwIGlmIGl0IGlzIG5vdC4KICAgICAgICAgKiBAcmFpc2VzIFVS SU5vdEZvdW5kIC0gSWYgdGhlIHJlcXVlc3RlZCBVUkkgY2FuIG5vdCBiZSBsb2NhdGVkLgog ICAgICAgICAqLyAKICAgICAgICBib29sZWFuIGlzQXZhaWxhYmxlKGluIHVyaVQgdXJpKQog ICAgICAgICAgICByYWlzZXMgKFVSSU5vdEZvdW5kKTsgCiAgICB9OwogICAgCiAgfTsKfTsK --====_-Multipass-4215567783==_====--