ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2ZhcnNpLnR4dCBiL3J1bnRpbWUvZG9jL2ZhcnNpLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTAyNzA5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvZmFyc2kudHh0CkBAIC0wLDAgKzEsMjY5IEBACisqZmFyc2kudHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDIgT2N0IDI5CisKKworCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IE1vcnRhemEgR2hhc3NhYiBTaGlyYW4KKworCitSaWdodCB0byBMZWZ0IGFuZCBGYXJzaSBNYXBwaW5nIGZvciBWaW0JCSpmYXJzaSogKkZhcnNpKgorCit7VmkgZG9lcyBub3QgaGF2ZSBhbnkgb2YgdGhlc2UgY29tbWFuZHN9CisKKwkJCQkJCSpFMjcqCitJbiBvcmRlciB0byB1c2UgcmlnaHQtdG8tbGVmdCBhbmQgRmFyc2kgbWFwcGluZyBzdXBwb3J0LCBpdCBpcyBuZWNlc3NhcnkgdG8KK2NvbXBpbGUgVmltIHdpdGggdGhlIHwrZmFyc2l8IGZlYXR1cmUuCisKK1RoZXNlIGZ1bmN0aW9ucyBoYXZlIGJlZW4gbWFkZSBieSBNb3J0YXphIEcuIFNoaXJhbiA8c2hpcmFuQGpwcy5uZXQ+CisKKworSW50cm9kdWN0aW9uCistLS0tLS0tLS0tLS0KK0luIHJpZ2h0LXRvLWxlZnQgb3JpZW50ZWQgZmlsZXMgdGhlIGNoYXJhY3RlcnMgYXBwZWFyIG9uIHRoZSBzY3JlZW4gZnJvbSByaWdodAordG8gbGVmdC4gIFRoaXMga2luZCBvZiBmaWxlIGlzIG1vc3QgdXNlZnVsIHdoZW4gd3JpdGluZyBGYXJzaSBkb2N1bWVudHMsCitjb21wb3NpbmcgZmF4ZXMgb3Igd3JpdGluZyBGYXJzaSBtZW1vcy4KKworVGhlIGNvbW1hbmRzLCBwcm9tcHRzIGFuZCBoZWxwIGZpbGVzIGFyZSBub3QgaW4gRmFyc2ksIHRoZXJlZm9yZSB0aGUgdXNlcgoraW50ZXJmYWNlIHJlbWFpbnMgdGhlIHN0YW5kYXJkIFZpIGludGVyZmFjZS4KKworCitIaWdobGlnaHRzCistLS0tLS0tLS0tCitvICBFZGl0aW5nIGxlZnQtdG8tcmlnaHQgZmlsZXMgYXMgaW4gdGhlIG9yaWdpbmFsIFZpbSwgbm8gY2hhbmdlLgorCitvICBWaWV3aW5nIGFuZCBlZGl0aW5nIGZpbGVzIGluIHJpZ2h0LXRvLWxlZnQgd2luZG93cy4gICBGaWxlIG9yaWVudGF0aW9uIGlzCisgICBwZXIgd2luZG93LCBzbyBpdCBpcyBwb3NzaWJsZSB0byB2aWV3IHRoZSBzYW1lIGZpbGUgaW4gcmlnaHQtdG8tbGVmdCBhbmQKKyAgIGxlZnQtdG8tcmlnaHQgbW9kZXMsIHNpbXVsdGFuZW91c2x5LgorCitvICBDb21wYXRpYmlsaXR5IHRvIHRoZSBvcmlnaW5hbCBWaW0uICAgQWxtb3N0IGFsbCBmZWF0dXJlcyB3b3JrIGluCisgICByaWdodC10by1sZWZ0IG1vZGUgKHNlZSBidWdzIGJlbG93KS4KKworbyAgQ2hhbmdpbmcga2V5Ym9hcmQgbWFwcGluZyBhbmQgcmV2ZXJzZSBpbnNlcnQgbW9kZXMgdXNpbmcgYSBzaW5nbGUKKyAgIGNvbW1hbmQuCisKK28gIEJhY2tpbmcgZnJvbSByZXZlcnNlIGluc2VydCBtb2RlIHRvIHRoZSBjb3JyZWN0IHBsYWNlIGluIHRoZSBmaWxlCisgICAoaWYgcG9zc2libGUpLgorCitvICBXaGlsZSBpbiBGYXJzaSBtb2RlLCBudW1iZXJzIGFyZSBlbnRlcmVkIGZyb20gbGVmdCB0byByaWdodC4gVXBvbiBlbnRlcmluZworICAgYSBub25lIG51bWJlciBjaGFyYWN0ZXIsIHRoYXQgY2hhcmFjdGVyIHdpbGwgYmUgaW5zZXJ0ZWQganVzdCBpbnRvIHRoZQorICAgbGVmdCBvZiB0aGUgbGFzdCBudW1iZXIuCisKK28gIE5vIHNwZWNpYWwgdGVybWluYWwgd2l0aCByaWdodC10by1sZWZ0IGNhcGFiaWxpdGllcyBpcyByZXF1aXJlZC4gIFRoZQorICAgcmlnaHQtdG8tbGVmdCBjaGFuZ2VzIGFyZSBjb21wbGV0ZWx5IGhhcmR3YXJlIGluZGVwZW5kZW50LiAgT25seQorICAgRmFyc2kgZm9udCBpcyBuZWNlc3NhcnkuCisKK28gIEZhcnNpIGtleW1hcHBpbmcgb24gdGhlIGNvbW1hbmQgbGluZSBpbiByZXZlcnNlIGluc2VydCBtb2RlLgorCitvICBUb2dnbGluZyBiZXR3ZWVuIGxlZnQtdG8tcmlnaHQgYW5kIHJpZ2h0LXRvLWxlZnQgdmlhIEY4IGZ1bmN0aW9uIGtleS4KKworbyAgVG9nZ2xpbmcgYmV0d2VlbiBGYXJzaSBJU0lSLTMzNDIgc3RhbmRhcmQgZW5jb2RpbmcgYW5kIFZJTSBGYXJzaSB2aWEgRjkKKyAgIGZ1bmN0aW9uIGtleS4gU2luY2UgdGhpcyBtYWtlcyBzZW5zZSBvbmx5IGZvciB0aGUgdGV4dCB3cml0dGVuIGluCisgICByaWdodC10by1sZWZ0IG1vZGUsIHRoaXMgZnVuY3Rpb24gaXMgYWxzbyBzdXBwb3J0ZWQgb25seSBpbiByaWdodC10by1sZWZ0CisgICBtb2RlLgorCitGYXJzaSBGb250cwkJCQkJKmZhcnNpIGZvbnRzKgorLS0tLS0tLS0tLS0KKworSWYgdGhlICJleHRyYSIgYXJjaGl2ZSBoYXMgYmVlbiB1bnBhY2tlZCwgdGhlIGZvbGxvd2luZyBmaWxlcyBhcmUgZm91bmQgaW4gdGhlCitzdWJkaXJlY3RvcmllcyBvZiB0aGUgJyRWSU0vZmFyc2knIGRpcmVjdG9yeToKKworICAgKyAgZmFyLWEwMS5wY2YgICAgWCBXaW5kb3dzIGZvbnRzIGZvciBVbml4IGluY2x1ZGluZyBMaW51eCBzeXN0ZW1zCisgICArICBmYXItYTAxLmJmICAgICBYIFdpbmRvd3MgZm9udHMgZm9yIFN1bk9zCisgICArICBmYXItYTAxLmYxNiAgICBhIHNjcmVlbiBmb250cyBmb3IgVW5peCBpbmNsdWRpbmcgTGludXggc3lzdGVtcworICAgKyAgZmFyLWEwMS5mb24gICAgYSBtb25vc3BhY2VkIGZvbnRzIGZvciBXaW5kb3dzIE5ULzk1Lzk4CisgICArICBmYXItYTAxLmNvbSAgICBhIHNjcmVlbiBmb250cyBmb3IgRE9TCisKKworRm9udCBJbnN0YWxsYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tCisKK28gIEluc3RhbGxhdGlvbiBvZiBmb250cyBmb3IgTVMgV2luZG93IHN5c3RlbXMgKE5ULzk1Lzk4KQorCisgICBGcm9tICdDb250cm9sIFBhbmVsJyBmb2xkZXIsIHN0YXJ0IHRoZSAnRm9udHMnIHByb2dyYW0uIFRoZW4gZnJvbSAnZmlsZScKKyAgIG1lbnUgaXRlbSBzZWxlY3QgJ0luc3RhbGwgTmV3IEZvbnRzIC4uLicuIEJyb3dzZSBhbmQgc2VsZWN0IHRoZQorICAgJ2Zhci1hMDEuZm9uJywgdGhlbiBmb2xsb3cgdGhlIGluc3RhbGxhdGlvbiBndWlkZS4KKyAgIE5PVEU6IHNldmVyYWwgcGVvcGxlIGhhdmUgcmVwb3J0ZWQgdGhhdCB0aGlzIGRvZXMgbm90IHdvcmsuICBUaGUgc29sdXRpb24KKyAgIGlzIHVua25vd24uCisKK28gIEluc3RhbGxhdGlvbiBvZiBmb250cyBmb3IgWCBXaW5kb3cgc3lzdGVtcyAoVW5peC9MaW51eCkKKworICAgRGVwZW5kaW5nIG9uIHlvdXIgc3lzdGVtLCBjb3B5IGZhci1hMDEucGNmLlogb3IgZmFyLWEwMS5wY2YuZ3ogaW50byBhCisgICBkaXJlY3Rvcnkgb2YgeW91ciBjaG9pY2UuICBDaGFuZ2UgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBGYXJzaQorICAgZm9udHMgYW5kIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBjb21tYW5kczoKKworICAgPiAgbWtmb250ZGlyCisgICA+ICB4c2V0ICtmcCBwYXRoX25hbWVfb2ZfZmFyc2lfZm9udHNfZGlyZWN0b3J5CisKK28gIEluc3RhbGxhdGlvbiBvZiBmb250cyBmb3IgWCBXaW5kb3cgc3lzdGVtcyAoU3VuT3MpCisKKyAgIENvcHkgZmFyLWEwMS5iZiBmb250IGludG8gYSBkaXJlY3Rvcnkgb2YgeW91ciBjaG9pY2UuCisgICBDaGFuZ2UgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBmYXItYTAxLmZiIGZvbnRzIGFuZAorICAgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgorCisgICA+ICBmbGRmYW1pbHkKKyAgID4gIHhzZXQgK2ZwIHBhdGhfbmFtZV9vZl9mb250c19kaXJlY3RvcnkKKworbyAgSW5zdGFsbGF0aW9uIG9mIEFTQ0lJIHNjcmVlbiBmb250cyAoVW5peC9MaW51eCkKKworICAgRm9yIExpbnV4IHN5c3RlbSwgY29weSB0aGUgZmFyLWEwMS5mMTYgZm9udHMgaW50byAvdXNyL2xpYi9rYmQvY29uc29sZWZvbnRzCisgICBkaXJlY3RvcnkgYW5kIGV4ZWN1dGUgdGhlIHNldGZvbnQgcHJvZ3JhbSBhcyAic2V0Zm9udCBmYXItYTAxLmYxNiIuIEZvcgorICAgb3RoZXIgc3lzdGVtcyAoZS5nLiBTQ08gVW5peCksIHBsZWFzZSByZWZlciB0byB0aGUgZm9udHMgaW5zdGFsbGF0aW9uCisgICBzZWN0aW9uIG9mIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0aW9uIG1hbnVhbHMuCisKK28gIEluc3RhbGxhdGlvbiBvZiBBU0NJSSBzY3JlZW4gZm9udHMgKERPUykKKworICAgQWZ0ZXIgc3lzdGVtIHBvd2VyIG9uLCBwcmlvciB0byB0aGUgZmlyc3QgdXNlIG9mIFZJTSwgdXBsb2FkIHRoZSBGYXJzaQorICAgZm9udHMgYnkgZXhlY3V0aW5nIHRoZSBmYXItYTAxLmNvbSBmb250IHVwbG9hZGluZyBwcm9ncmFtLgorCisKK1VzYWdlCistLS0tLQorUHJpb3IgdG8gc3RhcnRpbmcgVklNLCB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggVklNIGNhbiBydW4gaW4gRmFyc2kgbW9kZSwKK211c3QgYmUgc2V0LiAgSW4gYWRkaXRpb24gdG8gaW5zdGFsbGF0aW9uIG9mIEZhcnNpIGZvbnRzLCBmb2xsb3dpbmcgcG9pbnRzCityZWZlciB0byBzb21lIG9mIHRoZSBzeXN0ZW0gZW52aXJvbm1lbnRzLCB3aGljaCB5b3UgbWF5IG5lZWQgdG8gc2V0OgorS2V5IGNvZGUgbWFwcGluZywgbG9hZGluZyBncmFwaGljIGNhcmQgaW4gQVNDSUkgc2NyZWVuIG1vZGUsIHNldHRpbmcgdGhlIElPCitkcml2ZXIgaW4gOCBiaXQgY2xlYW4gbW9kZSAuLi4gLgorCitvICBTZXR0aW5nIHRoZSBGYXJzaSBmb250cworCisgICArICBGb3IgVklNIEdVSSBzZXQgdGhlICdndWlmb250JyB0byBmYXItYTAxLiBUaGlzIGlzIGRvbmUgYnkgZW50ZXJpbmcKKyAgICAgICc6c2V0IGd1aWZvbnQ9ZmFyLWEwMScgaW4gdGhlIFZJTSB3aW5kb3cuCisKKyAgICAgIFlvdSBjYW4gaGF2ZSAnZ3VpZm9udCcgc2V0IHRvIGZhci1hMDEgYnkgVklNIGR1cmluZyB0aGUgVklNIHN0YXJ0dXAKKyAgICAgIGJ5IGFwcGVuZGluZyB0aGUgJzpzZXQgZ3VpZm9udD1mYXItYTAxJyBpbnRvIHlvdXIgLnZpbXJjIGZpbGUKKyAgICAgIChpbiBjYXNlIG9mIE5ULzk1Lzk4IHBsYXRmb3JtcyBfdmltcmMpLgorCisgICAgICBVbmRlciB0aGUgWCBXaW5kb3cgZW52aXJvbm1lbnQsIHlvdSBjYW4gYWxzbyBzdGFydCB0aGUgVklNIHdpdGgKKyAgICAgICctZm4gZmFyLWEwMScgb3B0aW9uLgorCisgICArICBGb3IgdGhlIFZJTSB3aXRoaW4gYSB4dGVybSwgc3RhcnQgYSB4dGVybSB3aXRoIHRoZSBGYXJzaSBmb250cyAoZS5nLgorICAgICAga3Rlcm0gLWZuIGZhci1hMDEpLiBUaGVuIHN0YXJ0IHRoZSBWSU0gaW5zaWRlIHRoZSBrdGVybS4KKworICAgKyAgRm9yIFZJTSB1bmRlciBET1MsIHByaW9yIHRvIHRoZSBmaXJzdCB1c2FnZSBvZiBWSU0sIHVwbG9hZCB0aGUgRmFyc2kKKyAgICAgIGZvbnRzIGJ5IGV4ZWN1dGluZyB0aGUgZmFyLWEwMS5jb20gZm9udHMgdXBsb2FkaW5nIHByb2dyYW0uCisKK28gIEZhcnNpIEtleW1hcHBpbmcgQWN0aXZhdGlvbgorCisgICBUbyBhY3RpdmF0ZSB0aGUgRmFyc2kga2V5bWFwcGluZywgc2V0IGVpdGhlciAnYWx0a2V5bWFwJyBvciAnZmttYXAnLgorICAgVGhpcyBpcyBkb25lIGJ5IGVudGVyaW5nICc6c2V0IGFrbScgb3IgJzpzZXQgZmsnIGluIHRoZSBWSU0gd2luZG93LgorICAgWW91IGNhbiBoYXZlICdhbHRrZXltYXAnIG9yICdma21hcCcgc2V0IGFzIGRlZmF1bHQgYnkgYXBwZW5kaW5nICc6c2V0IGFrbScKKyAgIG9yICc6c2V0IGZrJyBpbiB5b3VyIC52aW1yYyBmaWxlIG9yIF92aW1yYyBpbiBjYXNlIG9mIE5ULzk1Lzk4IHBsYXRmb3Jtcy4KKworICAgVG8gdHVybiBvZmYgdGhlIEZhcnNpIGtleW1hcHBpbmcgYXMgYSBkZWZhdWx0IHNlY29uZCBsYW5ndWFnZSBrZXltYXBwaW5nLAorICAgcmVzZXQgdGhlICdhbHRrZXltYXAnIGJ5IGVudGVyaW5nICc6c2V0IG5vYWttJy4KKworbyAgcmlnaHQtdG8tbGVmdCBGYXJzaSBNb2RlCisKKyAgIEJ5IGRlZmF1bHQgVklNIHN0YXJ0cyBpbiBMZWZ0LXRvLXJpZ2h0IG1vZGUuIEZvbGxvd2luZyBhcmUgd2F5cyB0byBjaGFuZ2UKKyAgIHRoZSB3aW5kb3cgb3JpZW50YXRpb246CisKKyAgICsgU3RhcnQgdGhlIFZJTSB3aXRoIC1GIG9wdGlvbiAoZS5nLiB2aW0gLUYgLi4uICkuCisKKyAgICsgVXNlIEY4IGZ1bmN0aW9uIGtleSB0byB0b2dnbGUgYmV0d2VlbiBsZWZ0LXRvLXJpZ2h0IGFuZCByaWdodC10by1sZWZ0LgorCisgICArIFdoaWxlIGluIExlZnQtdG8tcmlnaHQgbW9kZSwgZW50ZXIgJ3NldCBybCcgaW4gdGhlIGNvbW1hbmQgbGluZSAoJ3JsJyBpcworICAgICB0aGUgYWJicmV2aWF0aW9uIGZvciByaWdodGxlZnQpLgorCisgICArIFB1dCB0aGUgJ3NldCBybCcgbGluZSBpbiB5b3VyICcudmltcmMnIGZpbGUgdG8gc3RhcnQgdGhlICBWSU0gaW4KKyAgICAgcmlnaHQtdG8tbGVmdCBtb2RlIHBlcm1hbmVudGx5LgorCitFbmNvZGluZworLS0tLS0tLS0KKworVGhlIGxldHRlciBlbmNvZGluZyB1c2VkIGlzIHRoZSBWSU0gZXh0ZW5kZWQgSVNJUi0zMzQyIHN0YW5kYXJkIHdpdGggYSBidWlsdAoraW4gZnVuY3Rpb24gdG8gY29udmVydCBiZXR3ZWVuIFZJTSBleHRlbmRlZCBJU0lSLTMzNDIgYW5kIElTSVItMzM0MiBzdGFuZGFyZC4KKworRm9yIGRvY3VtZW50IHBvcnRhYmlsaXR5IHJlYXNvbnMsIHRoZSBsZXR0ZXIgZW5jb2RpbmcgaXMga2VwdCB0aGUgc2FtZSBhY3Jvc3MKK2RpZmZlcmVudCBwbGF0Zm9ybXMgKGkuZS4gVU5JWCdzLCBOVC85NS85OCwgTVMgRE9TLCAuLi4pLgorCisKK28gIEtleWJvYXJkCisKKyAgICsgIENUUkwtXyBpbiBpbnNlcnQvcmVwbGFjZSBtb2RlcyB0b2dnbGVzIGJldHdlZW4gRmFyc2koYWttKS9MYXRpbgorICAgICAgbW9kZSBhcyBmb2xsb3dzOgorCisgICArICBDVFJMLV8gbW92ZXMgdGhlIGN1cnNvciB0byB0aGUgZW5kIG9mIHRoZSB0eXBlZCB0ZXh0IGluIGVkaXQgbW9kZS4KKworICAgKyAgQ1RSTC1fIGluIGNvbW1hbmQgbW9kZSBvbmx5IHRvZ2dsZXMga2V5Ym9hcmQgbWFwcGluZyBiZXR3ZWVuIEZhcnNpKGFrbSkvCisgICAgICBMYXRpbi4gVGhlIEZhcnNpIHRleHQgaXMgdGhlbiBlbnRlcmVkIGluIHJldmVyc2UgaW5zZXJ0IG1vZGUuCisKKyAgICsgIEY4IC0gVG9nZ2xlcyBiZXR3ZWVuIGxlZnQtdG8tcmlnaHQgYW5kIHJpZ2h0LXRvLWxlZnQuCisKKyAgICsgIEY5IC0gVG9nZ2xlcyB0aGUgZW5jb2RpbmcgYmV0d2VlbiBJU0lSLTMzNDIgc3RhbmRhcmQgYW5kIFZJTSBleHRlbmRlZAorICAgICAgSVNJUi0zMzQyIChzdXBwb3J0ZWQgb25seSBpbiByaWdodC10by1sZWZ0IG1vZGUpLgorCisgICArICBLZXlib2FyZCBtYXBwaW5nIGlzIGJhc2VkIG9uIHRoZSBJcmFuaWFuIElTSVJJLTI5MDEgc3RhbmRhcmQuCisgICAgICBGb2xsb3dpbmcgdGFibGUgc2hvd3MgdGhlIGtleWJvYXJkIG1hcHBpbmcgd2hpbGUgRmFyc2koYWttKSBtb2RlIHNldDoKKworCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwlgICAxICAyICAzICA0ICA1ICA2ICA3ICA4ICA5ICAwICAtICA9CisJoiAgsSAgsiAgsyAgtCAgtSAgtiAgtyAguCAguSAgsCAgrSAgvQorCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwl+ICAhICBAICAjICAkICAlICBeICAmICAqICAoICApICBfICArCisJfiAgoyAgpyAgriAgpCAgpSAgqiAgrCAg6CAgqCAgqSAg6SAgqworCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwlxICB3ICBlICByICB0ICB6ICB1ICBpICBvICBwICBbICBdCisJ0yAg0iAgxiAg2SAg2CAg1SAg1iAg4CAgyiAgySAgxyAgiAorCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwlRICBXICBFICBSICBUICBaICBVICBJICBPICBQICB7ICB9CisJ9yAg9SAg9CAg8yAg8iAg/SAg8CAg9iAgWyAgXSAgeyAgfQorCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwlhICBzICBkICBmICBnICBoICBqICBrICBsICA7ICAnICBcCisJ0SAg0CAg4SAgwyAg3CAgwSAgxSAg3iAg3SAg2iAg2yAg6worCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwlBICBTICBEICBGICBHICBIICBKICBLICBMICA6ICAiICB8CisJ+SAg+6Ag/iAg+iAg+CAgwCAg/CAg5iAg5yAguiAguyAg6gorCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwk8ICB5ICB4ICBjICB2ICBiICBuICBtICAsICAuICAvCisJviAg1yAg1CAgziAgzSAgzCAgyyAgxCAg3yAgpiAgrworCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwk+ICBZICBYICBDICBWICBCICBOICBNICA8ICA+ICA/CisJvCAg8SAg1CAgzyAgzSAgoSAgyyAgwiAgviAgvCAgvworCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworTm90ZToKKwmhICBzdGFuZHMgZm9yIEZhcnNpIFBTUCAoYnJlYWsgd2l0aG91dCBzcGFjZSkKKworCaIgIHN0YW5kcyBmb3IgRmFyc2kgUENOIChmb3IgSEFNWkUgYXR0cmlidXRlICkKKworUmVzdHJpY3Rpb25zCistLS0tLS0tLS0tLS0KKworbyAgSW4gaW5zZXJ0L3JlcGxhY2UgbW9kZSBhbmQgZmttYXAgKEZhcnNpIG1vZGUpIHNldCwgQ1RSTC1CIGlzIG5vdAorICAgc3VwcG9ydGVkLgorCitvICBJZiB5b3UgY2hhbmdlIHRoZSBjaGFyYWN0ZXIgbWFwcGluZyBiZXR3ZWVuIExhdGluL0ZhcnNpLCB0aGUgcmVkbyBidWZmZXIKKyAgIHdpbGwgYmUgcmVzZXQgKGVtcHRpZWQpLiBUaGF0IGlzLCByZWRvIGlzIHZhbGlkIGFuZCB3aWxsIGZ1bmN0aW9uICh1c2luZworICAgJy4nKSBvbmx5IHdpdGhpbiB0aGUgbW9kZSB5b3UgYXJlIGluLgorCitvICBXaGlsZSBudW1iZXJzIGFyZSBlbnRlcmVkIGluIEZhcnNpIG1vZGUsIHRoZSByZWRvIGJ1ZmZlciB3aWxsIGJlIHJlc2V0CisgICAoZW1wdGllZCkuIFRoYXQgaXMsIHlvdSBjYW4gbm90IHJlZG8gdGhlIGxhc3QgY2hhbmdlcyAodXNpbmcgJy4nKSBhZnRlcgorICAgZW50ZXJpbmcgbnVtYmVycy4KKworbyAgV2hpbGUgaW4gbGVmdC10by1yaWdodCBhbmQgRmFyc2kgbW9kZSBzZXQsIENUUkwtUiBpcyBub3Qgc3VwcG9ydGVkLgorCitvICBXaGlsZSBpbiByaWdodC10by1sZWZ0IG1vZGUsIHRoZSBzZWFyY2ggb24gJ0xhdGluJyBwYXR0ZXJuIGRvZXMgbm90IHdvcmssCisgICBleGNlcHQgaWYgeW91IGVudGVyIHRoZSBMYXRpbiBzZWFyY2ggcGF0dGVybiBpbiByZXZlcnNlLgorCitvICBJbiB0aGUgY29tbWFuZCBtb2RlLCB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBlbnRlcmluZyB0aGUgbnVtYmVycyBmcm9tIGxlZnQKKyAgIHRvIHJpZ2h0IGFuZCBhbHNvIGZvciB0aGUgc2FrZSBvZiB0aGUgZmxleGliaWxpdHkgdGhlIGtleW1hcHBpbmcgbG9naWMgaXMKKyAgIHJlc3RyaWN0ZWQuCisKK28gIFVuZGVyIFggV2luZG93IGVudmlyb25tZW50LCBpZiB5b3Ugd2FudCB0byBydW4gdGhlIFZJTSB3aXRoaW4gYSB4dGVybQorICAgdGVybWluYWwgZW11bGF0b3IgYW5kIEZhcnNpIG1vZGUgc2V0LCB5b3UgbmVlZCB0byBoYXZlIGFuIEFOU0kgY29tcGF0aWJsZQorICAgeHRlcm0gdGVybWluYWwgZW11bGF0b3IuIFRoaXMgaXMgYmVjYXVzZSB0aGUgbGV0dGVyIGNvZGVzIGFib3ZlIDEyOCBkZWNpbWFsCisgICBoYXZlIGNlcnRhaW4gbWVhbmluZ3MgaW4gdGhlIHN0YW5kYXJkIHh0ZXJtIHRlcm1pbmFsIGVtdWxhdG9yLgorCisgICBOb3RlOiBVbmRlciBYIFdpbmRvdyBlbnZpcm9ubWVudCwgVklNIEdVSSB3b3JrcyBmaW5lIGluIEZhcnNpIG1vZGUuCisJIFRoaXMgZWxpbWluYXRlcyB0aGUgbmVlZCBvZiBhbnkgeHRlcm0gdGVybWluYWwgZW11bGF0b3IuCisKKworQnVncworLS0tLQorV2hpbGUgaW4gaW5zZXJ0L3JlcGxhY2UgYW5kIEZhcnNpIG1vZGUgc2V0LCBpZiB5b3UgcmVwZWF0ZWRseSBjaGFuZ2UgdGhlCitjdXJzb3IgcG9zaXRpb24gKHZpYSBjdXJzb3IgbW92ZW1lbnQpIGFuZCBlbnRlciBuZXcgdGV4dCBhbmQgdGhlbiB0cnkgdG8gdW5kbwordGhlIGxhc3QgY2hhbmdlLCB0aGUgdW5kbyB3aWxsIGxhZyBvbmUgY2hhbmdlIGJlaGluZC4gIEJ1dCBhcyB5b3UgY29udGludWUgdG8KK3VuZG8sIHlvdSB3aWxsIHJlYWNoIHRoZSBvcmlnaW5hbCBsaW5lIG9mIHRleHQuIFlvdSBjYW4gYWxzbyB1c2UgVSB0byB1bmRvIGFsbAorY2hhbmdlcyBtYWRlIGluIHRoZSBjdXJyZW50IGxpbmUuCisKK0ZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBidWdzIHJlZmVyIHRvIHJpbGVmdC50eHQuCisKKyB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6Cg==