dcl-npc-toolkit-ai-version
Version:
A collection of tools for creating Non-Player-Characters (NPCs). These are capable of having conversations with the player, and play different animations. AI usage is added atop of it
39 lines • 18.3 kB
JavaScript
export var ButtonStyles;
(function (ButtonStyles) {
ButtonStyles["E"] = "e";
ButtonStyles["F"] = "f";
ButtonStyles["DARK"] = "dark";
ButtonStyles["RED"] = "red";
ButtonStyles["ROUNDBLACK"] = "roundblack";
ButtonStyles["ROUNDWHITE"] = "roundwhite";
ButtonStyles["ROUNDSILVER"] = "roundsilver";
ButtonStyles["ROUNDGOLD"] = "roundgold";
ButtonStyles["SQUAREBLACK"] = "squareblack";
ButtonStyles["SQUAREWHITE"] = "squarewhite";
ButtonStyles["SQUARESILVER"] = "squaresilver";
ButtonStyles["SQUAREGOLD"] = "squaregold";
ButtonStyles["WHITE"] = "white";
})(ButtonStyles || (ButtonStyles = {}));
export var NPCState;
(function (NPCState) {
NPCState["STANDING"] = "standing";
NPCState["TALKING"] = "talking";
NPCState["FOLLOWPATH"] = "followPath";
})(NPCState || (NPCState = {}));
export var NPCBodyType;
(function (NPCBodyType) {
NPCBodyType["MALE"] = "BaseMale";
NPCBodyType["FEMALE"] = "BaseFemale";
})(NPCBodyType || (NPCBodyType = {}));
export var NPCType;
(function (NPCType) {
NPCType["BLANK"] = "blank";
NPCType["CUSTOM"] = "custom";
NPCType["AVATAR"] = "avatar";
})(NPCType || (NPCType = {}));
export var NPCPathType;
(function (NPCPathType) {
NPCPathType["SMOOTH_PATH"] = "smooth";
NPCPathType["RIGID_PATH"] = "rigid";
})(NPCPathType || (NPCPathType = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0ZBLE1BQU0sQ0FBTixJQUFZLFlBY1g7QUFkRCxXQUFZLFlBQVk7SUFDdEIsdUJBQU8sQ0FBQTtJQUNQLHVCQUFPLENBQUE7SUFDUCw2QkFBYSxDQUFBO0lBQ2IsMkJBQVcsQ0FBQTtJQUNYLHlDQUF5QixDQUFBO0lBQ3pCLHlDQUF5QixDQUFBO0lBQ3pCLDJDQUEyQixDQUFBO0lBQzNCLHVDQUF1QixDQUFBO0lBQ3ZCLDJDQUEyQixDQUFBO0lBQzNCLDJDQUEyQixDQUFBO0lBQzNCLDZDQUE2QixDQUFBO0lBQzdCLHlDQUF5QixDQUFBO0lBQ3pCLCtCQUFlLENBQUE7QUFDakIsQ0FBQyxFQWRXLFlBQVksS0FBWixZQUFZLFFBY3ZCO0FBNEhELE1BQU0sQ0FBTixJQUFZLFFBS1g7QUFMRCxXQUFZLFFBQVE7SUFDbEIsaUNBQXFCLENBQUE7SUFDckIsK0JBQW1CLENBQUE7SUFDbkIscUNBQXlCLENBQUE7QUFFM0IsQ0FBQyxFQUxXLFFBQVEsS0FBUixRQUFRLFFBS25CO0FBRUQsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixnQ0FBaUIsQ0FBQTtJQUNqQixvQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEI7QUFFRCxNQUFNLENBQU4sSUFBWSxPQUlYO0FBSkQsV0FBWSxPQUFPO0lBQ2pCLDBCQUFlLENBQUE7SUFDZiw0QkFBaUIsQ0FBQTtJQUNqQiw0QkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsT0FBTyxLQUFQLE9BQU8sUUFJbEI7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLHFDQUFzQixDQUFBO0lBQ3RCLG1DQUFvQixDQUFBO0FBQ3RCLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eSwgUEJBdmF0YXJTaGFwZSwgUEJHbHRmQ29udGFpbmVyIH0gZnJvbSAnQGRjbC9zZGsvZWNzJ1xuaW1wb3J0IHsgVmVjdG9yMyB9IGZyb20gJ0BkY2wvc2RrL21hdGgnXG5cbi8qKlxuICogRnJhZ21lbnQgb2YgYSBjb252ZXJzYXRpb24gd2l0aCBhbiBOUENcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEaWFsb2cgLSBBbiBlbnRyeSBpbiBhbiBOUEMgY29udmVyc2F0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGV4dCBUaGUgZGlhbG9nIHRleHRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIE9wdGlvbmFsIG5hbWUgb2YgdGhlIGRpYWxvZyBlbnRyeSwgdG8gbGluayBvdGhlciBlbnRyaWVzIHRvIHRoaXMgb25lIGFuZCBub3Qgd29ycnkgYWJvdXQgY2hhbmdlcyBpbiB0aGUgYXJyYXkgbGVuZ3RoXG4gKiBAcHJvcGVydHkge251bWJlcn0gZm9udFNpemUgU2l6ZSBvZiB0aGUgdGV4dFxuICogQHByb3BlcnR5IHtudW1iZXJ9IG9mZnNldFggT2Zmc2V0IG9mIHRoZSB0ZXh0IG9uIHRoZSBYIGF4aXMsIHJlbGF0aXZlIHRvIGl0cyBub3JtYWwgcG9zaXRpb24uXG4gKiBAcHJvcGVydHkge251bWJlcn0gb2Zmc2V0WSBPZmZzZXQgb2YgdGhlIHRleHQgb24gdGhlIFkgYXhpcywgcmVsYXRpdmUgdG8gaXRzIG5vcm1hbCBwb3NpdGlvbi5cbiAqIEBwcm9wZXJ0eSB7SW1hZ2VEYXRhfSBwb3J0cmFpdCBTZXRzIHRoZSBwb3J0cmFpdCBpbWFnZSB0byB1c2Ugb24gdGhlIGxlZnQuIFRoaXMgZmllbGQgZXhwZWN0cyBhIGBQb3J0cmFpdGAgb2JqZWN0LlxuICogQHByb3BlcnR5IHtJbWFnZURhdGF9IGltYWdlIFNldHMgYSBzZWNvbmQgaW1hZ2UgdG8gdXNlIG9uIHRoZSByaWdodCBvZiB0aGUgZGlhbG9nLCBhbmQgc2xpZ2h0bHkgdXAuIFRoaXMgZmllbGQgZXhwZWN0cyBhbiBgSW1hZ2VEYXRhYCBvYmplY3QuXG4gKiBAcHJvcGVydHkge251bWJlcn0gdHlwZVNwZWVkIFRoZSB0ZXh0IGFwcGVhcnMgb25lIGNoYXJhY3RlciBhdCBhIHRpbWUsIHNpbXVsYXRpbmcgdHlwaW5nLiBQbGF5ZXJzIGNhbiBjbGljayB0byBza2lwIHRoZSBhbmltYXRpb24uIFR1bmUgdGhlIHNwZWVkIG9mIHRoaXMgdHlwaW5nICgzMCBieSBkZWZhdWx0KSB0byBnbyBzbG93ZXIgb3IgZmFzdGVyLiBTZXQgdG8gXy0xXyB0byBza2lwIHRoZSBhbmltYXRpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzUXVlc3Rpb24gSWYgdHJ1ZSwgYWxsb3dzIHRvIHVzZSBidXR0b25zIHRvIHRyaWdnZXIgZGlmZmVyZW50IGFjdGlvbnNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNGaXhlZFNjcmVlbiBJZiB0cnVlLCBoYXMgbm8gYnV0dG9ucyBvciBcIm5leHQgcGFnZVwiIGZ1bmN0aW9uYWxpdHlcbiAqIEBwcm9wZXJ0eSB7QnV0dG9uRGF0YVtdfSBidXR0b25zIEFuIGFycmF5IG9mIGJ1dHRvbnMgYEJ1dHRvbkRhdGFgIG9iamVjdHMgdG8gdXNlIGluIGEgcXVlc3Rpb24gZW50cnlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhdWRpbyBQYXRoIHRvIHNvdW5kIGZpbGUgdG8gcGxheSB3aGVuIHRoZSBkaWFsb2cgaXMgc2hvd24gaW4gdGhlIFVJXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHNraXBhYmxlIElmIHRydWUsIGEgXCJTa2lwXCIgYnV0dG9uIG9uIHRoZSBVSSBsZXRzIHBsYXllcnMgc2tpcCB0byB0aGUgbmV4dCBub24tc2tpcGFibGUgZW50cnkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gdGltZU9uIEhvdyBsb25nIHRvIGtlZXAgdGhlIHRleHQgdmlzaWJsZSBiZWZvcmUgbW92aW5nIG9uIHRvIHRoZSBuZXh0IGVudHJ5LiBPbmx5IGZvciBidWJibGUgZGlhbG9ncyFcbiAqXG4gKi9cbmV4cG9ydCB0eXBlIERpYWxvZyA9IHtcbiAgdGV4dDogc3RyaW5nXG4gIHdpbmRvd0hlaWdodD86ICdhdXRvJyB8IG51bWJlclxuICBuYW1lPzogc3RyaW5nXG4gIGZvbnRTaXplPzogbnVtYmVyXG4gIG9mZnNldFg/OiBudW1iZXJcbiAgb2Zmc2V0WT86IG51bWJlclxuICB0eXBlU3BlZWQ/OiBudW1iZXJcbiAgaXNFbmRPZkRpYWxvZz86IGJvb2xlYW5cbiAgdHJpZ2dlcmVkQnlOZXh0PzogKCkgPT4gdm9pZFxuICBwb3J0cmFpdD86IEltYWdlRGF0YVxuICBpbWFnZT86IEltYWdlRGF0YVxuICBpc1F1ZXN0aW9uPzogYm9vbGVhblxuICBpc0ZpeGVkU2NyZWVuPzogYm9vbGVhblxuICBidXR0b25zPzogQnV0dG9uRGF0YVtdXG4gIGF1ZGlvPzogc3RyaW5nXG4gIHNraXBhYmxlPzogYm9vbGVhblxuICB0aW1lT24/OiBudW1iZXJcbn1cblxuLyoqXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gVHJpZ2dlckRhdGEgLSBPYmplY3Qgd2l0aCBkYXRhIGZvciBhIE5QQ1RyaWdnZXJDb21wb25lbnRcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBsYXllciAgbGF5ZXIgb2YgdGhlIFRyaWdnZXIsIHVzZWZ1bCB0byBkaXNjcmltaW5hdGUgYmV0d2VlbiB0cmlnZ2VyIGV2ZW50cy4gWW91IGNhbiBzZXQgbXVsdGlwbGUgbGF5ZXJzIGJ5IHVzaW5nIGEgfCBzeW1ib2wuIGRlZmF1bHRzIHRvIE5PX0xBWUVSU1xuICogQHByb3BlcnR5IHtudW1iZXJ9IHRyaWdnZXJlZEJ5TGF5ZXIgYWdhaW5zdCB3aGljaCBsYXllcnMgdG8gY2hlY2sgY29sbGlzaW9ucy4gZGVmYXVsdHMgdG8gTEFZRVJfMVxuICogQHByb3BlcnR5IHsoZW50aXR5OiBFbnRpdHkpID0+IHZvaWQgfSBvblRyaWdnZXJFbnRlciBjYWxsYmFjayB3aGVuIGFuIGVudGl0eSBvZiBhIHZhbGlkIGxheWVyIGVudGVycyB0aGUgdHJpZ2dlciBhcmVhXG4gKiBAcHJvcGVydHkgeyhlbnRpdHk6IEVudGl0eSkgPT4gdm9pZH0gb25UcmlnZ2VyRXhpdCBjYWxsYmFjayB3aGVuIGFuIGVudGl0eSBvZiBhIHZhbGlkIGxheWVyIGxlYXZlcyB0aGUgdHJpZ2dlciBhcmVhXG4gKiBAcHJvcGVydHkgeygpID0+IHZvaWR9IG9uQ2FtZXJhRW50ZXIgY2FsbGJhY2sgd2hlbiB0aGUgcGxheWVyIGVudGVycyB0aGUgdHJpZ2dlciBhcmVhXG4gKiBAcHJvcGVydHkgeygpID0+IHZvaWR9IG9uQ2FtZXJhRXhpdCBjYWxsYmFjayB3aGVuIHRoZSBwbGF5ZXIgbGVhdmVzIHRoZSB0cmlnZ2VyIGFyZWFcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZW5hYmxlRGVidWcgd2hlbiB0cnVlIG1ha2VzIHRoZSB0cmlnZ2VyIGFyZWEgdmlzaWJsZSBmb3IgZGVidWcgcHVycG9zZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFRyaWdnZXJEYXRhID0ge1xuICBsYXllcj86IG51bWJlclxuICB0cmlnZ2VyZWRCeUxheWVyPzogbnVtYmVyXG4gIG9uVHJpZ2dlckVudGVyPzogKG90aGVyOiBFbnRpdHkpID0+IHZvaWRcbiAgb25UcmlnZ2VyRXhpdD86IChvdGhlcjogRW50aXR5KSA9PiB2b2lkXG4gIG9uQ2FtZXJhRW50ZXI/OiAob3RoZXI6IEVudGl0eSkgPT4gdm9pZFxuICBvbkNhbWVyYUV4aXQ/OiAob3RoZXI6IEVudGl0eSkgPT4gdm9pZFxuICBlbmFibGVEZWJ1Zz86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBEYXRhIGZvciBCdXR0b24gdG8gc2hvdyBvbiBhIHF1ZXN0aW9uIGluIGEgRGlhbG9nIGVudHJ5XG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gQnV0dG9uRGF0YSAtIE9iamVjdCB3aXRoIGRhdGEgZm9yIGEgRGlhbG9nIFVJIGJ1dHRvblxuICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfSBnb1RvRGlhbG9nIFRoZSBpbmRleCBvciBuYW1lIG9mIHRoZSBuZXh0IGRpYWxvZyBlbnRyeSB0byBkaXNwbGF5IHdoZW4gYWN0aXZhdGVkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGxhYmVsIFRoZSBsYWJlbCB0byBzaG93IG9uIHRoZSBidXR0b24uXG4gKiBAcHJvcGVydHkgeygpID0+IHZvaWR9IHRyaWdnZXJlZEFjdGlvbnMgQW4gYWRkaXRpb25hbCBmdW5jdGlvbiB0byBydW4gd2hlbmV2ZXIgdGhlIGJ1dHRvbiBpcyBhY3RpdmF0ZWRcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBmb250U2l6ZSBGb250IHNpemUgb2YgdGhlIHRleHRcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfW9mZnNldFggT2Zmc2V0IG9mIHRoZSB0ZXh0IG9uIHRoZSBYIGF4aXMsIHJlbGF0aXZlIHRvIGl0cyBub3JtYWwgcG9zaXRpb24uXG4gKiBAcHJvcGVydHkge251bWJlcn0gb2Zmc2V0WSBPZmZzZXQgb2YgdGhlIHRleHQgb24gdGhlIFkgYXhpcywgcmVsYXRpdmUgdG8gaXRzIG5vcm1hbCBwb3NpdGlvbi5cbiAqXG4gKi9cbmV4cG9ydCB0eXBlIEJ1dHRvbkRhdGEgPSB7XG4gIGdvVG9EaWFsb2c6IG51bWJlciB8IHN0cmluZ1xuICBsYWJlbDogc3RyaW5nXG4gIHRyaWdnZXJlZEFjdGlvbnM/OiAoKSA9PiB2b2lkXG4gIGZvbnRTaXplPzogbnVtYmVyXG4gIG9mZnNldFg/OiBudW1iZXJcbiAgb2Zmc2V0WT86IG51bWJlclxuICBzaXplPzogbnVtYmVyIHwgJ2F1dG8nXG59XG5cbmV4cG9ydCBlbnVtIEJ1dHRvblN0eWxlcyB7XG4gIEUgPSBgZWAsXG4gIEYgPSBgZmAsXG4gIERBUksgPSBgZGFya2AsXG4gIFJFRCA9IGByZWRgLFxuICBST1VOREJMQUNLID0gYHJvdW5kYmxhY2tgLFxuICBST1VORFdISVRFID0gYHJvdW5kd2hpdGVgLFxuICBST1VORFNJTFZFUiA9IGByb3VuZHNpbHZlcmAsXG4gIFJPVU5ER09MRCA9IGByb3VuZGdvbGRgLFxuICBTUVVBUkVCTEFDSyA9IGBzcXVhcmVibGFja2AsXG4gIFNRVUFSRVdISVRFID0gYHNxdWFyZXdoaXRlYCxcbiAgU1FVQVJFU0lMVkVSID0gYHNxdWFyZXNpbHZlcmAsXG4gIFNRVUFSRUdPTEQgPSBgc3F1YXJlZ29sZGAsXG4gIFdISVRFID0gYHdoaXRlYFxufVxuXG4vKipcbiAqIEFuIE5QQyBjYXBhYmxlIG9mIGhhdmluZyBjb252ZXJzYXRpb25zIHdpdGggdGhlIHBsYXllciwgYW5kIHBsYXkgZGlmZmVyZW50IGFuaW1hdGlvbnMuXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gTlBDRGF0YSBPYmplY3Qgd2l0aCBkYXRhIHRvIGluc3RhbmNlIGEgbmV3IE5QQ1xuICogQHByb3BlcnR5IHtzdHJpbmd8SW1hZ2VEYXRhfSBwb3J0cmFpdCAyRCBpbWFnZSB0byBzaG93IG9uIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiB0aGUgZGlhbG9nIHdpbmRvdy4gVGhlIHN0cnVjdHVyZSBvZiBhbiBgSW1hZ2VEYXRhYCBvYmplY3QgaXMgZGVzY3JpYmVkIGluIGRldGFpbCBiZWxvdy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSByZWFjdERpc3RhbmNlIFJhZGl1cyBpbiBtZXRlcnMgZm9yIHRoZSBwbGF5ZXIgdG8gYWN0aXZhdGUgdGhlIE5QQyBvciB0cmlnZ2VyIHRoZSBgb25XYWxrQXdheSgpYCBmdW5jdGlvbiB3aGVuIGxlYXZpbmcgdGhlIHJhZGl1cy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBpZGxlQW5pbSBOYW1lIG9mIHRoZSBpZGxlIGFuaW1hdGlvbiBpbiB0aGUgbW9kZWwuIFRoaXMgYW5pbWF0aW9uIGlzIGFsd2F5cyBsb29wZWQuIEFmdGVyIHBsYXlpbmcgYSBub24tbG9vcGluZyBhbmltYXRpb24gaXQgcmV0dXJucyB0byBsb29waW5nIHRoaXMgb25lLlxuICogQHByb3BlcnR5IHtib29sZWFufSBmYWNlVXNlciBTZXQgaWYgdGhlIE5QQyByb3RhdGVzIHRvIGZhY2UgdGhlIHVzZXIgd2hpbGUgYWN0aXZlLlxuICogQHByb3BlcnR5IHtib29sZWFufSBvbmx5RXh0ZXJuYWxUcmlnZ2VyIElmIHRydWUsIHRoZSBOUEMgY2FuJ3QgYmUgYWN0aXZhdGVkIGJ5IGNsaWNraW5nIG9yIHdhbGtpbmcgbmVhci4gSnVzdCBieSBjYWxsaW5nIGl0cyBgYWN0aXZhdGUoKWAgZnVuY3Rpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IG9ubHlDbGlja1RyaWdnZXIgSWYgdHJ1ZSwgdGhlIE5QQyBjYW4ndCBiZSBhY3RpdmF0ZWQgYnkgd2Fsa2luZyBuZWFyLiBKdXN0IGJ5IGNsaWNraW5nIG9uIGl0IG9yIGNhbGxpbmcgaXRzIGBhY3RpdmF0ZSgpYCBmdW5jdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gb25seUVUcmlnZ2VyIElmIHRydWUsIHRoZSBOUEMgY2FuJ3QgYmUgYWN0aXZhdGVkIGJ5IHdhbGtpbmcgbmVhci4gSnVzdCBieSBwcmVzc2luZyBFIG9uIGl0IG9yIGNhbGxpbmcgaXRzIGBhY3RpdmF0ZSgpYCBmdW5jdGlvbi5cbiAqIEBwcm9wZXJ0eSB7KCkgPT4gdm9pZH0gb25XYWxrQXdheSBGdW5jdGlvbiB0byBjYWxsIGV2ZXJ5IHRpbWUgdGhlIHBsYXllciB3YWxrcyBvdXQgb2YgdGhlIGByZWFjdERpc3RhbmNlYCByYWRpdXMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGNvbnRpbnVlT25XYWxrQXdheSBmIHRydWUsd2hlbiB0aGUgcGxheWVyIHdhbGtzIG91dCBvZiB0aGUgYHJlYWN0RGlzdGFuY2VgIHJhZGl1cywgdGhlIGRpYWxvZyB3aW5kb3cgc3RheXMgb3BlbiBhbmQgdGhlIE5QQyBrZWVwcyB0dXJuaW5nIHRvIGZhY2UgdGhlIHBsYXllciAoaWYgYXBwbGljYWJsZSkuIEl0IGRvZXNuJ3QgYWZmZWN0IHRoZSB0cmlnZ2VyaW5nIG9mIHRoZSBgb25XYWxrQXdheSgpYCBmdW5jdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZGFya1VJIElmIHRydWUsIHRoZSBkaWFsb2cgVUkgdXNlcyB0aGUgZGFyayB0aGVtZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjb29sRG93bkR1cmF0aW9uIENoYW5nZSB0aGUgY29vbGRvd24gcGVyaW9kIGZvciBhY3RpdmF0aW5nIHRoZSBOUEMgYWdhaW4uIFRoZSBudW1iZXIgaXMgaW4gc2Vjb25kcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBob3ZlclRleHQgU2V0IHRoZSBVSSBob3ZlciBmZWVkYmFjayB3aGVuIHBvaW50aW5nIHRoZSBjdXJzb3IgYXQgdGhlIE5QQy4gX1RBTEtfIGJ5IGRlZmF1bHQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZGlhbG9nU291bmQgUGF0aCB0byBzb3VuZCBmaWxlIHRvIHBsYXkgb25jZSBmb3IgZXZlcnkgbGluZSBvZiBkaWFsb2cgcmVhZCBvbiB0aGUgVUkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gd2Fsa2luZ0FuaW0gQW5pbWF0aW9uIHRvIHBsYXkgd2hlbiB3YWxraW5nIHdpdGggZm9sbG93UGF0aFxuICogQHByb3BlcnR5IHtudW1iZXJ9IHdhbGtpbmdTcGVlZCBEZWZhdWx0IHNwZWVkIHRvIHVzZSB3aGVuIHdhbGtpbmcgd2l0aCBmb2xsb3dQYXRoXG4gKiBAcHJvcGVydHkge1ZlY3RvcjNbXX0gcGF0aCBBcnJheSBvZiBWZWN0b3IzIHBvaW50cyByZXByZXNlbnRpbmcgdGhlIGRlZmF1bHQgcGF0aCB0byB3YWxrIG92ZXIuIFRoZSBOUEMgd2lsbCB3YWxrIGxvb3Bpbmcgb3ZlciB0aGVzZSBwb2ludHNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gdGV4dEJ1YmJsZSBJZiB0cnVlLCB0aGUgTlBDIGNhbiBkaXNwbGF5IHRleHQgYnViYmxlcyB3aXRoIGRpYWxvZ3NcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBidWJibGVIZWlnaHQgVGhlIGRlZmF1bHQgaGVpZ2h0IHRvIGRpc3BsYXkgdGV4dCBidWJibGVzIG92ZXIgdGhlIE5QQydzIHBvc2l0aW9uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IG5vVUkgSWYgdHJ1ZSwgbm8gVUkgZGlhbG9nIGVsZW1lbnRzIGFyZSBjb25zdHJ1Y3RlZC4gVGhlIE5QQyBjYW4gdXNlIHNwZWVjaCBidWJibGVzLlxuICpcbiAqL1xuXG5leHBvcnQgdHlwZSBOUENEYXRhID0ge1xuICB0eXBlOiBOUENUeXBlXG4gIGJvZHk/OiBOUENCb2R5VHlwZVxuICBtb2RlbD86IHN0cmluZyB8IFBCR2x0ZkNvbnRhaW5lciB8IFBCQXZhdGFyU2hhcGVcblxuICB3YWxraW5nQW5pbT86IHN0cmluZ1xuICBwb3J0cmFpdD86IHN0cmluZyB8IEltYWdlRGF0YVxuICByZWFjdERpc3RhbmNlPzogbnVtYmVyXG4gIGlkbGVBbmltPzogc3RyaW5nXG4gIGZhY2VVc2VyPzogYm9vbGVhblxuICB0dXJuaW5nU3BlZWQ/OiBudW1iZXJcbiAgb25seUV4dGVybmFsVHJpZ2dlcj86IGJvb2xlYW5cbiAgb25seUNsaWNrVHJpZ2dlcj86IGJvb2xlYW5cbiAgb25seUVUcmlnZ2VyPzogYm9vbGVhblxuICBvbkFjdGl2YXRlOiAob3RoZXI6IEVudGl0eSkgPT4gdm9pZFxuICBvbldhbGtBd2F5PzogKG90aGVyOiBFbnRpdHkpID0+IHZvaWRcbiAgY29udGludWVPbldhbGtBd2F5PzogYm9vbGVhblxuICBkYXJrVUk/OiBib29sZWFuXG4gIGNvb2xEb3duRHVyYXRpb24/OiBudW1iZXJcbiAgaG92ZXJUZXh0Pzogc3RyaW5nXG4gIGRpYWxvZ1NvdW5kPzogc3RyaW5nXG4gIC8vZGlhbG9nQ3VzdG9tVGhlbWU/OiBUZXh0dXJlXG4gIHRleHRCdWJibGU/OiBib29sZWFuXG4gIGJ1YmJsZUhlaWdodD86IG51bWJlclxuICBub1VJPzogYm9vbGVhblxuXG4gIHBhdGhEYXRhPzogRm9sbG93UGF0aERhdGFcblxuICBidWJibGVYT2Zmc2V0PzogbnVtYmVyXG4gIGJ1YmJsZVlPZmZzZXQ/OiBudW1iZXJcbn1cblxuLyoqXG4gKiBNYWtlIGFuIE5QQyB3YWxrIGZvbGxvd2luZyBhIHBhdGhcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBGb2xsb3dQYXRoRGF0YSAtIE9iamVjdCB3aXRoIGRhdGEgdG8gZGVzY3JpYmUgYSBwYXRoIHRoYXQgYW4gTlBDIGNhbiB3YWxrXG4gKiBAcHJvcGVydHkge1ZlY3RvcjNbXX0gcGF0aCBBcnJheSBvZiBgVmVjdG9yM2AgcG9zaXRpb25zIHRvIHdhbGsgb3Zlci5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzcGVlZCBTcGVlZCB0byBtb3ZlIGF0IHdoaWxlIHdhbGtpbmcgdGhpcyBwYXRoLiBJZiBubyBgc3BlZWRgIG9yIGB0b3RhbER1cmF0aW9uYCBpcyBwcm92aWRlZCwgaXQgdXNlcyB0aGUgTlBDJ3MgYHdhbGtpbmdTcGVlZGAsIHdoaWNoIGlzIF8yXyBieSBkZWZhdWx0LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHRvdGFsRHVyYXRpb24gVGhlIGR1cmF0aW9uIGluIF9zZWNvbmRzXyB0aGF0IHRoZSB3aG9sZSBwYXRoIHNob3VsZCB0YWtlLiBUaGUgTlBDIHdpbGwgbW92ZSBhdCB0aGUgY29uc3RhbnQgc3BlZWQgcmVxdWlyZWQgdG8gZmluaXNoIGluIHRoYXQgdGltZS4gVGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhhdCBvZiB0aGUgX3NwZWVkXy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbG9vcCBfYm9vbGVhbl8gSWYgdHJ1ZSwgdGhlIE5QQyB3YWxrcyBpbiBjaXJjbGVzIG92ZXIgdGhlIHByb3ZpZGVkIHNldCBvZiBwb2ludHMgaW4gdGhlIHBhdGguIF9mYWxzZV8gYnkgZGVmYXVsdCwgdW5sZXNzIHRoZSBOUEMgaXMgaW5pdGlhdGVkIHdpdGggYSBgcGF0aGAsIGluIHdoaWNoIGNhc2UgaXQgc3RhcnRzIGFzIF90cnVlXy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gY3VydmUgX2Jvb2xlYW5fIElmIHRydWUsIHRoZSBwYXRoIGlzIHRyYWNlZCBhIHNpbmdsZSBzbW9vdGggY3VydmUgdGhhdCBwYXNzZXMgb3ZlciBlYWNoIG9mIHRoZSBpbmRpY2F0ZWQgcG9pbnRzLiBUaGUgY3VydmUgaXMgbWFkZSBvdXQgb2Ygc3RyYWlnaHQtbGluZSBzZWdtZW50cywgdGhlIHBhdGggaXMgc3RvcmVkIHdpdGggNCB0aW1lcyBhcyBtYW55IHBvaW50cyBhcyBvcmlnaW5hbGx5IGRlZmluZWQuIF9mYWxzZV8gYnkgZGVmYXVsdC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzdGFydGluZ1BvaW50IEluZGV4IHBvc2l0aW9uIGZvciB3aGF0IHBvaW50IHRvIHN0YXJ0IGZyb20gb24gdGhlIHBhdGguIF8wXyBieSBkZWZhdWx0LlxuICogQHByb3BlcnR5IHsoKSA9PiB2b2lkfSBvbkZpbmlzaENhbGxiYWNrIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgTlBDIGZpbmlzaGVkIHdhbGtpbmcgb3ZlciBhbGwgdGhlIHBvaW50cyBvbiB0aGUgcGF0aC4gVGhpcyBpcyBvbmx5IGNhbGxlZCB3aGVuIGBsb29wYCBpcyBfZmFsc2VfLlxuICogQHByb3BlcnR5IHsoKSA9PiB2b2lkfSBvblJlYWNoZWRQb2ludENhbGxiYWNrIEZ1bmN0aW9uIHRvIGNhbGwgb25jZSBldmVyeSB0aW1lIHRoZSBOUEMgcmVhY2hlcyBhIHBvaW50IGluIHRoZSBwYXRoLlxuICpcbiAqL1xuZXhwb3J0IHR5cGUgRm9sbG93UGF0aERhdGEgPSB7XG4gIHN0YXJ0aW5nUG9pbnQ/OiBudW1iZXJcbiAgbG9vcD86IGJvb2xlYW5cbiAgY3VydmU/OiBib29sZWFuXG4gIHRvdGFsRHVyYXRpb246IG51bWJlclxuICBzcGVlZD86IG51bWJlclxuICBwYXRoPzogVmVjdG9yM1tdXG4gIHBhdGhUeXBlPzogTlBDUGF0aFR5cGVcbiAgb25GaW5pc2hDYWxsYmFjaz86ICgpID0+IHZvaWRcbiAgb25SZWFjaGVkUG9pbnRDYWxsYmFjaz86ICgpID0+IHZvaWRcbn1cblxuLyoqXG4gKiBDdXQgb3V0IGEgc2VjdGlvbiBvZiBhbiBpbWFnZSBmaWxlXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gSW1hZ2VTZWN0aW9uIC0gT2JqZWN0IHdpdGggZGF0YSB0byBvbmx5IGRpc3BsYXkgYSBzZWN0aW9uIG9mIGFuIGltYWdlXG4gKiBAcHJvcGVydHkge251bWJlcn0gc291cmNlV2lkdGggV2lkdGggaW4gcGl4ZWxzIHRvIHNlbGVjdCBmcm9tIGltYWdlLCBzdGFydGluZyBmcm9tIHRoZSBzb3VyY2VMZWZ0LCBnb2luZyByaWdodFxuICogQHByb3BlcnR5IHtudW1iZXJ9IHNvdXJjZUhlaWdodCBIZWlnaHQgaW4gcGl4ZWxzIHRvIHNlbGVjdCBmcm9tIGltYWdlLCBzdGFydGluZyBmcm9tIHRoZSBzb3VyY2VUb3AsIGdvaW5nIGRvd25cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzb3VyY2VMZWZ0IExlZnRtb3N0IHBpeGVsIHRvIHNlbGVjdCBmcm9tIGltYWdlXG4gKiBAcHJvcGVydHkge251bWJlcn0gc291cmNlVG9wIFRvcG1vc3QgcGl4ZWwgdG8gc2VsZWN0IGZyb20gaW1hZ2VcbiAqXG4gKi9cbmV4cG9ydCB0eXBlIEltYWdlU2VjdGlvbiA9IHtcbiAgc291cmNlV2lkdGg6IG51bWJlclxuICBzb3VyY2VIZWlnaHQ6IG51bWJlclxuICBzb3VyY2VMZWZ0PzogbnVtYmVyXG4gIHNvdXJjZVRvcD86IG51bWJlclxufVxuXG4vKipcbiAqXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gSW1hZ2VEYXRhIC0gT2JqZWN0IHdpdGggZGF0YSBmb3IgZGlzcGxheWluZyBhbiBpbWFnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBhdGggUGF0aCB0byB0aGUgaW1hZ2UgZmlsZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBvZmZzZXRYIE9mZnNldCBvbiBYLCByZWxhdGl2ZSB0byB0aGUgbm9ybWFsIHBvc2l0aW9uIG9mIHRoZSBpbWFnZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBvZmZzZXRZIE9mZnNldCBvbiBZLCByZWxhdGl2ZSB0byB0aGUgbm9ybWFsIHBvc2l0aW9uIG9mIHRoZSBpbWFnZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBoZWlnaHQgVGhlIGhlaWdodCB0byBzaG93IHRoZSBpbWFnZSBvbnNjcmVlbi5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3aWR0aCBUaGUgd2lkdGggdG8gc2hvdyB0aGUgaW1hZ2Ugb25zY3JlZW4uXG4gKiBAcHJvcGVydHkge0ltYWdlU2VjdGlvbn0gc2VjdGlvbiBVc2Ugb25seSBhIHNlY3Rpb24gb2YgdGhlIGltYWdlIGZpbGUsIHVzZWZ1bCB3aGVuIGFycmFuZ2luZyBtdWx0aXBsZSBpY29ucyBpbnRvIGFuIGltYWdlIGF0bGFzLiBUaGlzIGZpZWxkIHRha2VzIGFuIGBJbWFnZVNlY3Rpb25gIG9iamVjdCwgc3BlY2lmeWluZyBgc291cmNlV2lkdGhgIGFuZCBgc291cmNlSGVpZ2h0YCwgYW5kIG9wdGlvbmFsbHkgYWxzbyBgc291cmNlTGVmdGAgYW5kIGBzb3VyY2VUb3BgLlxuICpcbiAqL1xuZXhwb3J0IHR5cGUgSW1hZ2VEYXRhID0ge1xuICBwYXRoOiBzdHJpbmdcbiAgb2Zmc2V0WD86IG51bWJlclxuICBvZmZzZXRZPzogbnVtYmVyXG4gIGhlaWdodD86IG51bWJlclxuICB3aWR0aD86IG51bWJlclxuICBzZWN0aW9uPzogSW1hZ2VTZWN0aW9uXG59XG5cbmV4cG9ydCBlbnVtIE5QQ1N0YXRlIHtcbiAgU1RBTkRJTkcgPSAnc3RhbmRpbmcnLFxuICBUQUxLSU5HID0gJ3RhbGtpbmcnLFxuICBGT0xMT1dQQVRIID0gJ2ZvbGxvd1BhdGgnXG4gIC8vRk9MTE9XUExBWUVSID0gJ2ZvbGxvd1BsYXllcidcbn1cblxuZXhwb3J0IGVudW0gTlBDQm9keVR5cGUge1xuICBNQUxFID0gJ0Jhc2VNYWxlJyxcbiAgRkVNQUxFID0gJ0Jhc2VGZW1hbGUnXG59XG5cbmV4cG9ydCBlbnVtIE5QQ1R5cGUge1xuICBCTEFOSyA9ICdibGFuaycsXG4gIENVU1RPTSA9ICdjdXN0b20nLFxuICBBVkFUQVIgPSAnYXZhdGFyJ1xufVxuXG5leHBvcnQgZW51bSBOUENQYXRoVHlwZSB7XG4gIFNNT09USF9QQVRIID0gJ3Ntb290aCcsIC8vd2lsbCBmb2xsb3cgdGhlIHBhdGggYnV0IGNhbiBjdXQgc2hhcnAgY29ybmVyc1xuICBSSUdJRF9QQVRIID0gJ3JpZ2lkJyAvL3dpbGwgZW5zdXJlIGVhY2ggY29ybmVyIGlzIGhpdFxufVxuIl19