@lifeready/core 1.1.7 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -154,4 +154,4 @@ export class LrBadStateException extends LrException {
154
154
  });
155
155
  }
156
156
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9fY29tbW9uL2V4Y2VwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQW1DO0lBQ25FLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUFFLE9BQU87SUFFdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDdkMsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNO1FBQzNDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztRQUNsQixLQUFLLEVBQUU7WUFDTCxTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQWdCO1lBQzdCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBZ0I7U0FDekI7S0FDRixDQUFDLENBQUMsQ0FBQztJQUVKLE1BQU0sSUFBSSxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBTSxPQUFPLE9BQU87Q0FXbkI7QUFFRCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUFZLEdBQUcsTUFBaUI7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUFFRCxNQUFN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QVc7SUFDbEQsWUFBWSxPQUFPO1FBQ2pCLEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxxQkFBcUI7WUFDM0IsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEdyYXBoUUxFcnJvciB9IGZyb20gJ2dyYXBocWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlQXBvbGxvRXJyb3IoZXJyb3JzOiBSZWFkb25seUFycmF5PEdyYXBoUUxFcnJvcj4pIHtcbiAgaWYgKCFlcnJvcnMgfHwgIWVycm9ycy5sZW5ndGgpIHJldHVybjtcblxuICBjb25zdCBsckVycm9ycyA9IGVycm9ycy5tYXAoKHgpID0+ICh7XG4gICAgY29kZTogeC5leHRlbnNpb25zICYmIHguZXh0ZW5zaW9ucy5jb2RlLFxuICAgIHNvdXJjZTogeC5leHRlbnNpb25zICYmIHguZXh0ZW5zaW9ucy5zb3VyY2UsXG4gICAgbWVzc2FnZTogeC5tZXNzYWdlLFxuICAgIGRlYnVnOiB7XG4gICAgICBsb2NhdGlvbnM6IHgubG9jYXRpb25zIGFzIGFueSxcbiAgICAgIHBhdGg6IHgucGF0aCBhcyBzdHJpbmdbXSxcbiAgICB9LFxuICB9KSk7XG5cbiAgdGhyb3cgbmV3IExyRXhjZXB0aW9uKC4uLmxyRXJyb3JzKTtcbn1cblxuZXhwb3J0IGNsYXNzIExyRXJyb3Ige1xuICBjb2RlPzogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZGVidWc/OiB7XG4gICAgbG9jYXRpb25zOiB7XG4gICAgICBsaW5lOiBudW1iZXI7XG4gICAgICBjb2x1bW46IG51bWJlcjtcbiAgICB9W107XG4gICAgcGF0aDogc3RyaW5nW107XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBMckV4Y2VwdGlvbiB7XG4gIHB1YmxpYyBlcnJvcnM6IExyRXJyb3JbXTtcblxuICBjb25zdHJ1Y3RvciguLi5lcnJvcnM6IExyRXJyb3JbXSkge1xuICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmVycm9ycy5tYXAoKHQpID0+IEpTT04uc3RyaW5naWZ5KHQsIG51bGwsIDIpKTtcbiAgfVxufVxuXG5leHBvcnQgZW51bSBMckFwaUVycm9yQ29kZSB7XG4gIEFSQ0hJVkVEX1JFU09VUkNFID0gJ0FSQ0hJVkVEX1JFU09VUkNFJyxcbiAgQkFEX0FSR1VNRU5UID0gJ0JBRF9BUkdVTUVOVCcsXG4gIEJBRF9TSUdOQVRVUkUgPSAnQkFEX1NJR05BVFVSRScsXG4gIEJBRF9TVEFURSA9ICdCQURfU1RBVEUnLFxuICBDSEFOR0VEX1BFUk1JU1NJT05TID0gJ0NIQU5HRURfUEVSTUlTU0lPTlMnLFxuICBDT05DVVJSRU5UX0FDQ0VTUyA9ICdDT05DVVJSRU5UX0FDQ0VTUycsXG4gIENPTkZJR19FUlJPUiA9ICdDT05GSUdfRVJST1InLFxuICBDWUNMRV9ERVRFQ1RFRCA9ICdDWUNMRV9ERVRFQ1RFRCcsXG4gIEVYUElSRUQgPSAnRVhQSVJFRCcsXG4gIElOVkFMSURfVE9LRU4gPSAnSU5WQUxJRF9UT0tFTicsXG4gIElOVEVSTkFMX0VSUk9SID0gJ0lOVEVSTkFMX0VSUk9SJyxcbiAgSlNPTl9ERUNPREVfRVJST1IgPSAnSlNPTl9ERUNPREVfRVJST1InLFxuICBLRVlfTUlTTUFUQ0ggPSAnS0VZX01JU01BVENIJyxcbiAgTElNSVRfUkVBQ0hFRCA9ICdMSU1JVF9SRUFDSEVEJyxcbiAgTE9DS0VEID0gJ0xPQ0tFRCcsXG4gIExPR0lDX0VSUk9SID0gJ0xPR0lDX0VSUk9SJyxcbiAgTFJfREVCVUdfT05MWSA9ICdMUl9ERUJVR19PTkxZJyxcbiAgTUlOX0RFTEFZID0gJ01JTl9ERUxBWScsXG4gIE1JU1NJTkdfRklFTEQgPSAnTUlTU0lOR19GSUVMRCcsXG4gIE1JU1NJTkdfRklFTERfVkFMVUUgPSAnTUlTU0lOR19GSUVMRF9WQUxVRScsXG4gIE1JU1NJTkdfUVVFUllfUEFSQU0gPSAnTUlTU0lOR19RVUVSWV9QQVJBTScsXG4gIE5PVF9JTVBMRU1FTlRFRCA9ICdOT1RfSU1QTEVNRU5URUQnLFxuICBPQkpFQ1RfRE9FU19OT1RfRVhJU1QgPSAnT0JKRUNUX0RPRVNfTk9UX0VYSVNUJyxcbiAgT0JKRUNUX0VYSVNUUyA9ICdPQkpFQ1RfRVhJU1RTJyxcbiAgUkFOR0VfRVJST1IgPSAnUkFOR0VfRVJST1InLFxuICBUUlVTVEVEX1BBUlRZX05PVF9GT1VORCA9ICdUUlVTVEVEX1BBUlRZX05PVF9GT1VORCcsXG4gIFVOQVVUSEVOVElDQVRFRF9VU0VSID0gJ1VOQVVUSEVOVElDQVRFRF9VU0VSJyxcbiAgVVNFUl9OT1RfRk9VTkQgPSAnVVNFUl9OT1RfRk9VTkQnLFxuICBWRVJTSU9OX01JU01BVENIID0gJ1ZFUlNJT05fTUlTTUFUQ0gnLFxuICBXUk9OR19QRVJNSVNTSU9OUyA9ICdXUk9OR19QRVJNSVNTSU9OUycsXG59XG5cbmV4cG9ydCBlbnVtIExyRXJyb3JDb2RlIHtcbiAgQmFkVGltZVN5bmMgPSAnTHJCYWRUaW1lU3luYycsXG4gIFJlY2VpdmVDbGFpbU1pc21hdGNoID0gJ0xyUmVjZWl2ZUNsYWltTWlzbWF0Y2gnLFxuICBCYWRTdGF0ZSA9ICdMckJhZFN0YXRlJyxcbiAgQmFkU2lnbmF0dXJlID0gJ0xyQmFkU2lnbmF0dXJlJyxcbiAgQXV0aCA9ICdMckF1dGgnLFxuICBCYWRBcmd1bWVudCA9ICdMckJhZEFyZ3VtZW50JyxcbiAgU3VzcGljaW91c0V4Y2VwdGlvbiA9ICdMclN1c3BpY2lvdXNFeGNlcHRpb24nLFxuICBOb3RGb3VuZCA9ICdMck5vdEZvdW5kJyxcbiAgQmFkTG9naWMgPSAnTHJCYWRMb2dpY0V4Y2VwdGlvbicsXG4gIENvZGVNaXNtYXRjaCA9ICdMckNvZGVNaXNtYXRjaEV4Y2VwdGlvbicsXG4gIENvbmN1cnJlbnRBY2Nlc3MgPSAnTHJDb25jdXJyZW50QWNjZXNzRXhjZXB0aW9uJyxcbiAgQmFkUmVxdWVzdCA9ICdMckJhZFJlcXVlc3RFeGNlcHRpb24nLFxuICBFbmNyeXB0aW9uID0gJ0xyRW5jcnlwdGlvbkdvQmFkJyxcbiAgTG9ja2VkID0gJ0xyTG9ja2VkRXhjZXB0aW9uJyxcbn1cblxuZXhwb3J0IGNsYXNzIExyQmFkQXJndW1lbnRFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLkJhZEFyZ3VtZW50LCBtZXNzYWdlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMclN1c3BpY2lvdXNFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLkJhZEFyZ3VtZW50LCBtZXNzYWdlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMck5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgc3VwZXIoeyBjb2RlOiBMckVycm9yQ29kZS5Ob3RGb3VuZCwgbWVzc2FnZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHJCYWRMb2dpY0V4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHsgY29kZTogTHJFcnJvckNvZGUuQmFkTG9naWMsIG1lc3NhZ2UgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExyQ29kZU1pc21hdGNoRXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgc3VwZXIoeyBjb2RlOiBMckVycm9yQ29kZS5Db2RlTWlzbWF0Y2gsIG1lc3NhZ2UgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExyQ29uY3VycmVudEFjY2Vzc0V4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHsgY29kZTogTHJFcnJvckNvZGUuQ29uY3VycmVudEFjY2VzcywgbWVzc2FnZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHJMb2NrZWRFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLkxvY2tlZCwgbWVzc2FnZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHJCYWRSZXF1ZXN0RXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgc3VwZXIoeyBjb2RlOiBMckVycm9yQ29kZS5CYWRSZXF1ZXN0LCBtZXNzYWdlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMckF1dGhFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLkF1dGgsIG1lc3NhZ2UgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExyRW5jcnlwdGlvbkV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHsgY29kZTogTHJFcnJvckNvZGUuRW5jcnlwdGlvbiwgbWVzc2FnZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHJVbnN1cHBvcnRlZEV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGNvZGU6ICdMclVuc3VwcG9ydGVkRXhjZXB0aW9uJyxcbiAgICAgIG1lc3NhZ2UsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExyRXhwaXJlZENvZGVFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcih7XG4gICAgICBjb2RlOiAnTHJFeHBpcmVkQ29kZUV4Y2VwdGlvbicsXG4gICAgICBtZXNzYWdlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMckV4cGlyZWRFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcih7XG4gICAgICBjb2RlOiAnTHJFeHBpcmVkRXhjZXB0aW9uJyxcbiAgICAgIG1lc3NhZ2UsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExyQmFkU3RhdGVFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcih7XG4gICAgICBjb2RlOiAnTHJCYWRTdGF0ZUV4Y2VwdGlvbicsXG4gICAgICBtZXNzYWdlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9fY29tbW9uL2V4Y2VwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQW1DO0lBQ25FLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUFFLE9BQU87SUFFdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDdkMsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNO1FBQzNDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztRQUNsQixLQUFLLEVBQUU7WUFDTCxTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQWdCO1lBQzdCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBZ0I7U0FDekI7S0FDRixDQUFDLENBQUMsQ0FBQztJQUVKLE1BQU0sSUFBSSxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBTSxPQUFPLE9BQU87Q0FZbkI7QUFFRCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUFZLEdBQUcsTUFBaUI7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUFFRCxNQUFN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QVc7SUFDbEQsWUFBWSxPQUFPO1FBQ2pCLEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxxQkFBcUI7WUFDM0IsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEdyYXBoUUxFcnJvciB9IGZyb20gJ2dyYXBocWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlQXBvbGxvRXJyb3IoZXJyb3JzOiBSZWFkb25seUFycmF5PEdyYXBoUUxFcnJvcj4pIHtcbiAgaWYgKCFlcnJvcnMgfHwgIWVycm9ycy5sZW5ndGgpIHJldHVybjtcblxuICBjb25zdCBsckVycm9ycyA9IGVycm9ycy5tYXAoKHgpID0+ICh7XG4gICAgY29kZTogeC5leHRlbnNpb25zICYmIHguZXh0ZW5zaW9ucy5jb2RlLFxuICAgIHNvdXJjZTogeC5leHRlbnNpb25zICYmIHguZXh0ZW5zaW9ucy5zb3VyY2UsXG4gICAgbWVzc2FnZTogeC5tZXNzYWdlLFxuICAgIGRlYnVnOiB7XG4gICAgICBsb2NhdGlvbnM6IHgubG9jYXRpb25zIGFzIGFueSxcbiAgICAgIHBhdGg6IHgucGF0aCBhcyBzdHJpbmdbXSxcbiAgICB9LFxuICB9KSk7XG5cbiAgdGhyb3cgbmV3IExyRXhjZXB0aW9uKC4uLmxyRXJyb3JzKTtcbn1cblxuZXhwb3J0IGNsYXNzIExyRXJyb3Ige1xuICAvL1RPRE8gQWRkIGh0dHAgc3RhdHVzIGNvZGUuXG4gIGNvZGU/OiBzdHJpbmc7XG4gIHNvdXJjZT86IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZWJ1Zz86IHtcbiAgICBsb2NhdGlvbnM6IHtcbiAgICAgIGxpbmU6IG51bWJlcjtcbiAgICAgIGNvbHVtbjogbnVtYmVyO1xuICAgIH1bXTtcbiAgICBwYXRoOiBzdHJpbmdbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIExyRXhjZXB0aW9uIHtcbiAgcHVibGljIGVycm9yczogTHJFcnJvcltdO1xuXG4gIGNvbnN0cnVjdG9yKC4uLmVycm9yczogTHJFcnJvcltdKSB7XG4gICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLm1hcCgodCkgPT4gSlNPTi5zdHJpbmdpZnkodCwgbnVsbCwgMikpO1xuICB9XG59XG5cbmV4cG9ydCBlbnVtIExyQXBpRXJyb3JDb2RlIHtcbiAgQVJDSElWRURfUkVTT1VSQ0UgPSAnQVJDSElWRURfUkVTT1VSQ0UnLFxuICBCQURfQVJHVU1FTlQgPSAnQkFEX0FSR1VNRU5UJyxcbiAgQkFEX1NJR05BVFVSRSA9ICdCQURfU0lHTkFUVVJFJyxcbiAgQkFEX1NUQVRFID0gJ0JBRF9TVEFURScsXG4gIENIQU5HRURfUEVSTUlTU0lPTlMgPSAnQ0hBTkdFRF9QRVJNSVNTSU9OUycsXG4gIENPTkNVUlJFTlRfQUNDRVNTID0gJ0NPTkNVUlJFTlRfQUNDRVNTJyxcbiAgQ09ORklHX0VSUk9SID0gJ0NPTkZJR19FUlJPUicsXG4gIENZQ0xFX0RFVEVDVEVEID0gJ0NZQ0xFX0RFVEVDVEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgSU5WQUxJRF9UT0tFTiA9ICdJTlZBTElEX1RPS0VOJyxcbiAgSU5URVJOQUxfRVJST1IgPSAnSU5URVJOQUxfRVJST1InLFxuICBKU09OX0RFQ09ERV9FUlJPUiA9ICdKU09OX0RFQ09ERV9FUlJPUicsXG4gIEtFWV9NSVNNQVRDSCA9ICdLRVlfTUlTTUFUQ0gnLFxuICBMSU1JVF9SRUFDSEVEID0gJ0xJTUlUX1JFQUNIRUQnLFxuICBMT0NLRUQgPSAnTE9DS0VEJyxcbiAgTE9HSUNfRVJST1IgPSAnTE9HSUNfRVJST1InLFxuICBMUl9ERUJVR19PTkxZID0gJ0xSX0RFQlVHX09OTFknLFxuICBNSU5fREVMQVkgPSAnTUlOX0RFTEFZJyxcbiAgTUlTU0lOR19GSUVMRCA9ICdNSVNTSU5HX0ZJRUxEJyxcbiAgTUlTU0lOR19GSUVMRF9WQUxVRSA9ICdNSVNTSU5HX0ZJRUxEX1ZBTFVFJyxcbiAgTUlTU0lOR19RVUVSWV9QQVJBTSA9ICdNSVNTSU5HX1FVRVJZX1BBUkFNJyxcbiAgTk9UX0lNUExFTUVOVEVEID0gJ05PVF9JTVBMRU1FTlRFRCcsXG4gIE9CSkVDVF9ET0VTX05PVF9FWElTVCA9ICdPQkpFQ1RfRE9FU19OT1RfRVhJU1QnLFxuICBPQkpFQ1RfRVhJU1RTID0gJ09CSkVDVF9FWElTVFMnLFxuICBSQU5HRV9FUlJPUiA9ICdSQU5HRV9FUlJPUicsXG4gIFRSVVNURURfUEFSVFlfTk9UX0ZPVU5EID0gJ1RSVVNURURfUEFSVFlfTk9UX0ZPVU5EJyxcbiAgVU5BVVRIRU5USUNBVEVEX1VTRVIgPSAnVU5BVVRIRU5USUNBVEVEX1VTRVInLFxuICBVU0VSX05PVF9GT1VORCA9ICdVU0VSX05PVF9GT1VORCcsXG4gIFZFUlNJT05fTUlTTUFUQ0ggPSAnVkVSU0lPTl9NSVNNQVRDSCcsXG4gIFdST05HX1BFUk1JU1NJT05TID0gJ1dST05HX1BFUk1JU1NJT05TJyxcbn1cblxuZXhwb3J0IGVudW0gTHJFcnJvckNvZGUge1xuICBCYWRUaW1lU3luYyA9ICdMckJhZFRpbWVTeW5jJyxcbiAgUmVjZWl2ZUNsYWltTWlzbWF0Y2ggPSAnTHJSZWNlaXZlQ2xhaW1NaXNtYXRjaCcsXG4gIEJhZFN0YXRlID0gJ0xyQmFkU3RhdGUnLFxuICBCYWRTaWduYXR1cmUgPSAnTHJCYWRTaWduYXR1cmUnLFxuICBBdXRoID0gJ0xyQXV0aCcsXG4gIEJhZEFyZ3VtZW50ID0gJ0xyQmFkQXJndW1lbnQnLFxuICBTdXNwaWNpb3VzRXhjZXB0aW9uID0gJ0xyU3VzcGljaW91c0V4Y2VwdGlvbicsXG4gIE5vdEZvdW5kID0gJ0xyTm90Rm91bmQnLFxuICBCYWRMb2dpYyA9ICdMckJhZExvZ2ljRXhjZXB0aW9uJyxcbiAgQ29kZU1pc21hdGNoID0gJ0xyQ29kZU1pc21hdGNoRXhjZXB0aW9uJyxcbiAgQ29uY3VycmVudEFjY2VzcyA9ICdMckNvbmN1cnJlbnRBY2Nlc3NFeGNlcHRpb24nLFxuICBCYWRSZXF1ZXN0ID0gJ0xyQmFkUmVxdWVzdEV4Y2VwdGlvbicsXG4gIEVuY3J5cHRpb24gPSAnTHJFbmNyeXB0aW9uR29CYWQnLFxuICBMb2NrZWQgPSAnTHJMb2NrZWRFeGNlcHRpb24nLFxufVxuXG5leHBvcnQgY2xhc3MgTHJCYWRBcmd1bWVudEV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHsgY29kZTogTHJFcnJvckNvZGUuQmFkQXJndW1lbnQsIG1lc3NhZ2UgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExyU3VzcGljaW91c0V4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHsgY29kZTogTHJFcnJvckNvZGUuQmFkQXJndW1lbnQsIG1lc3NhZ2UgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExyTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLk5vdEZvdW5kLCBtZXNzYWdlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMckJhZExvZ2ljRXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgc3VwZXIoeyBjb2RlOiBMckVycm9yQ29kZS5CYWRMb2dpYywgbWVzc2FnZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHJDb2RlTWlzbWF0Y2hFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLkNvZGVNaXNtYXRjaCwgbWVzc2FnZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHJDb25jdXJyZW50QWNjZXNzRXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgc3VwZXIoeyBjb2RlOiBMckVycm9yQ29kZS5Db25jdXJyZW50QWNjZXNzLCBtZXNzYWdlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMckxvY2tlZEV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHsgY29kZTogTHJFcnJvckNvZGUuTG9ja2VkLCBtZXNzYWdlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMckJhZFJlcXVlc3RFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLkJhZFJlcXVlc3QsIG1lc3NhZ2UgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExyQXV0aEV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHsgY29kZTogTHJFcnJvckNvZGUuQXV0aCwgbWVzc2FnZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHJFbmNyeXB0aW9uRXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgc3VwZXIoeyBjb2RlOiBMckVycm9yQ29kZS5FbmNyeXB0aW9uLCBtZXNzYWdlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMclVuc3VwcG9ydGVkRXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgc3VwZXIoe1xuICAgICAgY29kZTogJ0xyVW5zdXBwb3J0ZWRFeGNlcHRpb24nLFxuICAgICAgbWVzc2FnZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHJFeHBpcmVkQ29kZUV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGNvZGU6ICdMckV4cGlyZWRDb2RlRXhjZXB0aW9uJyxcbiAgICAgIG1lc3NhZ2UsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExyRXhwaXJlZEV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGNvZGU6ICdMckV4cGlyZWRFeGNlcHRpb24nLFxuICAgICAgbWVzc2FnZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHJCYWRTdGF0ZUV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGNvZGU6ICdMckJhZFN0YXRlRXhjZXB0aW9uJyxcbiAgICAgIG1lc3NhZ2UsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvX2NvbW1vbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFzS2V5R3JhcGggfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcblxuZXhwb3J0IHR5cGUgU29tZVBhcnRpYWw8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gUGljazxQYXJ0aWFsPFQ+LCBLPiAmXG4gIE9taXQ8VCwgSz47XG5leHBvcnQgdHlwZSBTb21lUmVxdWlyZWQ8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gUGljazxSZXF1aXJlZDxUPiwgSz4gJlxuICBPbWl0PFQsIEs+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkZ2U8VD4ge1xuICBub2RlOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0VkZ2VzPFQ+IHtcbiAgZWRnZXM6IEVkZ2U8VD5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYXNLZXlHcmFwaEVkZ2VzPFQ+IGV4dGVuZHMgSGFzS2V5R3JhcGgge1xuICBsaXN0OiBIYXNFZGdlczxUPjtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvX2NvbW1vbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFzS2V5R3JhcGggfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcblxuZXhwb3J0IHR5cGUgU29tZVBhcnRpYWw8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gUGljazxQYXJ0aWFsPFQ+LCBLPiAmXG4gIE9taXQ8VCwgSz47XG5leHBvcnQgdHlwZSBTb21lUmVxdWlyZWQ8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gUGljazxSZXF1aXJlZDxUPiwgSz4gJlxuICBPbWl0PFQsIEs+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkZ2U8VD4ge1xuICBub2RlOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0VkZ2VzPFQ+IHtcbiAgZWRnZXM6IEVkZ2U8VD5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYXNLZXlHcmFwaEVkZ2VzPFQ+IGV4dGVuZHMgSGFzS2V5R3JhcGgge1xuICBsaXN0OiBIYXNFZGdlczxUPjtcbn1cblxuZXhwb3J0IHR5cGUgTWF5QXN5bmM8VD4gPSBUIHwgUHJvbWlzZTxUPjtcbiJdfQ==
@@ -52,6 +52,13 @@ let LrGraphQLService = class LrGraphQLService {
52
52
  keyGraphFieldAstSelection,
53
53
  ];
54
54
  }
55
+ if (options.name) {
56
+ const operation = getQuery(options.query);
57
+ operation.name = {
58
+ kind: 'Name',
59
+ value: options.name,
60
+ };
61
+ }
55
62
  const response = yield this.apollo.query(options).toPromise();
56
63
  this.stats.queryCount++;
57
64
  handleApolloError(response.errors);
@@ -95,6 +102,13 @@ let LrGraphQLService = class LrGraphQLService {
95
102
  fetchKeyGraphFieldAstSelection,
96
103
  ];
97
104
  }
105
+ if (options.name) {
106
+ const operation = getMutation(options.mutation);
107
+ operation.name = {
108
+ kind: 'Name',
109
+ value: options.name,
110
+ };
111
+ }
98
112
  // Format to string and parse again. This allows the "loc": { "start": ... }
99
113
  // part of the DocumentNode to be correctly setup. It's extra processing
100
114
  // in serialising and parsing, but probably minimal overhead.
@@ -153,4 +167,4 @@ LrGraphQLService = __decorate([
153
167
  })
154
168
  ], LrGraphQLService);
155
169
  export { LrGraphQLService };
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FwaS9sci1ncmFwaHFsL2xyLWdyYXBocWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUW5ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFHeEQsa0JBQWtCO0FBQ2xCLDZFQUE2RTtBQUM3RSxNQUFNLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUE7O0lBRTFDLGFBQWE7O0NBRWhCLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBYyxDQUFDO0FBRTNDLE1BQU0sOEJB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LFFBQVEsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsZUFBZTtRQUN2QywwQ0FBMEM7UUFDMUMsT0FBTyxlQUFlLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBd0VLLFFBQVEsQ0FDWixXQUVxQyxFQUNyQyxPQUEyQjs7WUFFM0IsSUFBSSxXQUFXLFlBQVksS0FBSyxFQUFFO2dCQUNoQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZFLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3pDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQztnQkFDbkMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBOU5BLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBdEZvQixNQUFNO1lBUWxCLE1BQU07WUFLTixlQUFlO1lBVUcscUJBQXFCOztBQWdFbkMsZ0JBQWdCO0lBTjVCLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxnQkFBZ0IsQ0EyTjVCO1NBM05ZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRmV0Y2hQb2xpY3ksXG4gIE11dGF0aW9uT3B0aW9ucyxcbiAgT3BlcmF0aW9uVmFyaWFibGVzLFxuICBRdWVyeU9wdGlvbnMsXG59IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgTXV0YXRpb25CYXNlT3B0aW9ucyB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUvd2F0Y2hRdWVyeU9wdGlvbnMnO1xuaW1wb3J0IHsgQXBvbGxvIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgRmllbGROb2RlIH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgZ3FsIGZyb20gJ2dyYXBocWwtdGFnJztcbmltcG9ydCAqIGFzIGdxbFByaW50ZXIgZnJvbSAnZ3JhcGhxbC9sYW5ndWFnZS9wcmludGVyJztcbmltcG9ydCAqIGFzIGxvZGFzaCBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEhhc0tleUdyYXBoIH0gZnJvbSAnLi4vLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBnZXRNdXRhdGlvbiwgZ2V0UXVlcnksIFR5cGVkRG9jdW1lbnROb2RlIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9hc3QnO1xuaW1wb3J0IHtcbiAgaGFuZGxlQXBvbGxvRXJyb3IsXG4gIExyQmFkU3RhdGVFeGNlcHRpb24sXG4gIExyVW5zdXBwb3J0ZWRFeGNlcHRpb24sXG59IGZyb20gJy4uLy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBGZXRjaEtleUdyYXBoRmllbGQsIEtleUdyYXBoRmllbGQgfSBmcm9tICcuLi8uLi9fY29tbW9uL3F1ZXJpZXMuZ3FsJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7IFByb2Nlc3Nvck9wdGlvbnMsIFF1ZXJ5UHJvY2Vzc29yU2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5LXByb2Nlc3Nvcic7XG5pbXBvcnQgeyBMck1lcmdlZE11dGF0aW9uIH0gZnJvbSAnLi9sci1tZXJnZWQtbXV0YXRpb24nO1xuaW1wb3J0IHsgTHJNdXRhdGlvbkJhc2UgfSBmcm9tICcuL2xyLW11dGF0aW9uLWJhc2UnO1xuXG4vLyBEYXRhIHN0cnVjdHVyZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBrZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uID0gZ2V0UXVlcnkoZ3FsYFxucXVlcnkge1xuICAke0tleUdyYXBoRmllbGR9XG59XG5gKS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1swXSBhcyBGaWVsZE5vZGU7XG5cbmNvbnN0IGZldGNoS2V5R3JhcGhGaWVsZEFzdFNlbGVjdGlvbiA9IGdldFF1ZXJ5KGdxbGBcbnF1ZXJ5IHtcbiAgJHtGZXRjaEtleUdyYXBoRmllbGR9XG59XG5gKS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1swXSBhcyBGaWVsZE5vZGU7XG5cbi8vIGNvbnN0IGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9rZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uKSBhcyBGaWVsZE5vZGU7XG4vLyBjb25zdCBmZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9mZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24pIGFzIEZpZWxkTm9kZTtcblxuZXhwb3J0IGludGVyZmFjZSBMclF1ZXJ5T3B0aW9uczxULCBUVmFyaWFibGVzPlxuICBleHRlbmRzIFF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzPiB7XG4gIHF1ZXJ5OiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XG59XG5cbi8vIENvcGllZCBmcm9tIE11dGF0aW9uT3B0aW9uc1xuLy8gUmVtb3ZlZCByZXF1aXJlZCBmaWVsZCBcIm11dGF0aW9uXCIuIFRoZSBcInZhcmlhYmxlc1wiIGZpZWxkIGlzIHN0aWxsIHRoZXJlXG4vLyBidXQgaXQncyBkeW5hbWljYWxseSBjaGVja2VkLlxuZXhwb3J0IGludGVyZmFjZSBMck11dGF0aW9uT3B0aW9uczxcbiAgVCA9IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH0sXG4gIFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXNcbj4gZXh0ZW5kcyBNdXRhdGlvbkJhc2VPcHRpb25zPFQsIFRWYXJpYWJsZXM+IHtcbiAgY29udGV4dD86IGFueTtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbn1cblxuLy8gVGhlIFwibXV0YXRpb25cIiBhbmQgXCJ2YXJpYWJsZVwiIGZpZWxkcyBhcmUgaW5oZXJpdGVkIGJ1dCBkeW5hbWljYWxseSBwcm9oaWJpdGVkIGJlY2F1c2Vcbi8vIHRoZXkgYXJlIHByb3ZpZGVkIGJ5IExyTXV0YXRpb24uIEl0J3MgYSBiaXQgdW5jbGVhbiBidXQgYXZvaWRzIGEgbG90IG9mIHR5cGluZyB3b3JrLlxuZXhwb3J0IGludGVyZmFjZSBMckFwb2xsb011dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzID0gT3BlcmF0aW9uVmFyaWFibGVzPlxuICBleHRlbmRzIE11dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPiB7XG4gIG11dGF0aW9uOiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XG59XG5cbmludGVyZmFjZSBMckdyYXBoUUxTZXJ2aWNlU3RhdHMge1xuICBxdWVyeUNvdW50OiBudW1iZXI7XG4gIG11dGF0aW9uQ291bnQ6IG51bWJlcjtcbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExyR3JhcGhRTFNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRzOiBMckdyYXBoUUxTZXJ2aWNlU3RhdHMgPSB7XG4gICAgcXVlcnlDb3VudDogMCxcbiAgICBtdXRhdGlvbkNvdW50OiAwLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBhcG9sbG86IEFwb2xsbyxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdWVyeVByb2Nlc3NvcjogUXVlcnlQcm9jZXNzb3JTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBxdWVyeTxULCBWID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgb3B0aW9uczogTHJRdWVyeU9wdGlvbnM8VCwgVj5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgLy8gTWFrZSBjb3BpZXMgdG8gYXZvaWQgc2lkZSBlZmZlY3QuXG4gICAgb3B0aW9ucyA9IGxvZGFzaC5jbG9uZURlZXAob3B0aW9ucyk7XG5cbiAgICAvLyBBcHBlbmQgdGhlIGtleSBncmFwaCBxdWVyeVxuICAgIGNvbnN0IGluY2x1ZGVLZXlHcmFwaCA9IHRoaXMuaXNJbmNsdWRlS2V5R3JhcGgob3B0aW9ucy5pbmNsdWRlS2V5R3JhcGgpO1xuICAgIGlmIChpbmNsdWRlS2V5R3JhcGgpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldFF1ZXJ5KG9wdGlvbnMucXVlcnkpO1xuICAgICAgb3BlcmF0aW9uLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gW1xuICAgICAgICAuLi5vcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMsXG4gICAgICAgIGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5hcG9sbG8ucXVlcnk8VCwgVj4ob3B0aW9ucykudG9Qcm9taXNlKCk7XG5cbiAgICB0aGlzLnN0YXRzLnF1ZXJ5Q291bnQrKztcblxuICAgIGhhbmRsZUFwb2xsb0Vycm9yKHJlc3BvbnNlLmVycm9ycyk7XG5cbiAgICB0aGlzLmFkZEtleXMocmVzcG9uc2UpO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMucXVlcnlQcm9jZXNzb3IucHJvY2Vzc1F1ZXJ5KFxuICAgICAgcmVzcG9uc2UuZGF0YSxcbiAgICAgIG9wdGlvbnMucHJvY2Vzc29yT3B0aW9uc1xuICAgICk7XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbHJNdXRhdGVJbXBsKGxyTXV0YXRpb24sIG9wdGlvbnM/KSB7XG4gICAgaWYgKG9wdGlvbnM/LnZhcmlhYmxlcykge1xuICAgICAgdGhyb3cgbmV3IExyVW5zdXBwb3J0ZWRFeGNlcHRpb24oXG4gICAgICAgICdVbnN1cHBvcnRlZCBmaWVsZDogXCJvcHRpb25zLnZhcmlhYmxlc1wiJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobHJNdXRhdGlvbi5leGVjdXRlZCkge1xuICAgICAgdGhyb3cgbmV3IExyQmFkU3RhdGVFeGNlcHRpb24oXG4gICAgICAgICdMck11dGF0aW9uIGhhcyBhbHJlYWR5IGV4ZWN1dGVkLiBMck11dGF0aW9uIGNhbiBvbmx5IGJlIHVzZWQgb25jZSBpbiBhIGxyTXV0YXRlKCkgY2FsbC4gQ3JlYXRlIG5ldyBpbnN0YW5jZXMgb2YgTHJNdXRhdGlvbi4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGxyTXV0YXRpb24uc2V0RXhlY3V0ZWQoKTtcblxuICAgIHJldHVybiB0aGlzLmFwb2xsb011dGF0ZSh7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgLi4ubHJNdXRhdGlvbi5sck11dGF0aW9uRGF0YSxcbiAgICB9KVxuICAgICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAvLyBSZXNvbHZlIHByb21pc2VzIHNldCBvbiB0aGUgbHJNdXRhdGlvbiByYXRoZXIgdGhhbiB0aGUgbHJNdXRhdGUoKSBjYWxsLlxuICAgICAgICBsck11dGF0aW9uLnJlc29sdmUocmVzKTtcbiAgICAgICAgLy8gU3RpbGwgbmVlZCB0byByZXR1cm4gdmFsdWUgdG8gdGhlIHByb21pc2Ugd2FpdGluZyBmb3IgdGhlIHJlc3VsdHMgb2YgbHJNdXRhdGUoKS5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGxyTXV0YXRpb24ucmVqZWN0KGVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGFwb2xsb011dGF0ZTxUIGV4dGVuZHMgYW55LCBUVmFyaWFibGVzID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgb3B0aW9uczogTHJBcG9sbG9NdXRhdGlvbk9wdGlvbnM8VCwgVFZhcmlhYmxlcz5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgLy8gTWFrZSBjb3BpZXMgdG8gYXZvaWQgc2lkZSBlZmZlY3QuXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBtdXRhdGlvbjogbG9kYXNoLmNsb25lRGVlcChvcHRpb25zLm11dGF0aW9uKSxcbiAgICB9O1xuXG4gICAgLy8gQXBwZW5kIHRoZSBrZXkgZ3JhcGggcXVlcnlcbiAgICBjb25zdCBpbmNsdWRlS2V5R3JhcGggPSB0aGlzLmlzSW5jbHVkZUtleUdyYXBoKG9wdGlvbnMuaW5jbHVkZUtleUdyYXBoKTtcblxuICAgIGlmIChpbmNsdWRlS2V5R3JhcGgpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldE11dGF0aW9uKG9wdGlvbnMubXV0YXRpb24pO1xuICAgICAgb3BlcmF0aW9uLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gW1xuICAgICAgICAuLi5vcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMsXG4gICAgICAgIGZldGNoS2V5R3JhcGhGaWVsZEFzdFNlbGVjdGlvbixcbiAgICAgIF07XG4gICAgfVxuXG4gICAgLy8gRm9ybWF0IHRvIHN0cmluZyBhbmQgcGFyc2UgYWdhaW4uIFRoaXMgYWxsb3dzIHRoZSBcImxvY1wiOiB7IFwic3RhcnRcIjogLi4uIH1cbiAgICAvLyBwYXJ0IG9mIHRoZSBEb2N1bWVudE5vZGUgdG8gYmUgY29ycmVjdGx5IHNldHVwLiBJdCdzIGV4dHJhIHByb2Nlc3NpbmdcbiAgICAvLyBpbiBzZXJpYWxpc2luZyBhbmQgcGFyc2luZywgYnV0IHByb2JhYmx5IG1pbmltYWwgb3ZlcmhlYWQuXG4gICAgb3B0aW9ucy5tdXRhdGlvbiA9IGdxbChncWxQcmludGVyLnByaW50KG9wdGlvbnMubXV0YXRpb24pKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5hcG9sbG8ubXV0YXRlPFQ+KG9wdGlvbnMpLnRvUHJvbWlzZSgpO1xuXG4gICAgdGhpcy5zdGF0cy5tdXRhdGlvbkNvdW50Kys7XG5cbiAgICBoYW5kbGVBcG9sbG9FcnJvcihyZXNwb25zZS5lcnJvcnMpO1xuXG4gICAgdGhpcy5hZGRLZXlzKHJlc3BvbnNlKTtcblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLnF1ZXJ5UHJvY2Vzc29yLnByb2Nlc3NRdWVyeShcbiAgICAgIHJlc3BvbnNlLmRhdGEsXG4gICAgICBvcHRpb25zLnByb2Nlc3Nvck9wdGlvbnNcbiAgICApO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBzdGF0c1NuYXBzaG90KCk6IExyR3JhcGhRTFNlcnZpY2VTdGF0cyB7XG4gICAgcmV0dXJuIGxvZGFzaC5jbG9uZURlZXAodGhpcy5zdGF0cyk7XG4gIH1cblxuICBwcml2YXRlIGFkZEtleXMocmVzcG9uc2UpIHtcbiAgICBpZiAoKHJlc3BvbnNlLmRhdGEgYXMgSGFzS2V5R3JhcGgpLmtleUdyYXBoKSB7XG4gICAgICB0aGlzLmtleUdyYXBoLmFkZEtleXMoKHJlc3BvbnNlLmRhdGEgYXMgSGFzS2V5R3JhcGgpLmtleUdyYXBoKTtcbiAgICAgIGRlbGV0ZSByZXNwb25zZS5kYXRhLmtleUdyYXBoO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNJbmNsdWRlS2V5R3JhcGgoaW5jbHVkZUtleUdyYXBoKSB7XG4gICAgLy8gRGVmYXVsdCB0byB0cnVlIHdoZW4gbnVsbCBvciB1bmRlZmluZWQuXG4gICAgcmV0dXJuIGluY2x1ZGVLZXlHcmFwaCA9PSBudWxsID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgbHJNdXRhdGU8VDEsIFRWYXJpYWJsZXMxLCBUMiwgVFZhcmlhYmxlczI+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDEsIFRWYXJpYWJsZXMxPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMiwgVFZhcmlhYmxlczI+XG4gICAgXSxcbiAgICBvcHRpb25zPzogTHJNdXRhdGlvbk9wdGlvbnNcbiAgKTogUHJvbWlzZTxbVDEsIFQyXT47XG5cbiAgYXN5bmMgbHJNdXRhdGU8VDEsIFRWYXJpYWJsZXMxLCBUMiwgVFZhcmlhYmxlczIsIFQzLCBUVmFyaWFibGVzMz4oXG4gICAgbHJNdXRhdGlvbnM6IFtcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMSwgVFZhcmlhYmxlczE+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQyLCBUVmFyaWFibGVzMj4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDMsIFRWYXJpYWJsZXMzPlxuICAgIF0sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk6IFByb21pc2U8W1QxLCBUMiwgVDNdPjtcblxuICBhc3luYyBsck11dGF0ZTxcbiAgICBUMSxcbiAgICBUVmFyaWFibGVzMSxcbiAgICBUMixcbiAgICBUVmFyaWFibGVzMixcbiAgICBUMyxcbiAgICBUVmFyaWFibGVzMyxcbiAgICBUNCxcbiAgICBUVmFyaWFibGVzNFxuICA+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDEsIFRWYXJpYWJsZXMxPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMiwgVFZhcmlhYmxlczI+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQzLCBUVmFyaWFibGVzMz4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDQsIFRWYXJpYWJsZXM0PlxuICAgIF0sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk6IFByb21pc2U8W1QxLCBUMiwgVDMsIFQ0XT47XG5cbiAgYXN5bmMgbHJNdXRhdGU8XG4gICAgVDEsXG4gICAgVFZhcmlhYmxlczEsXG4gICAgVDIsXG4gICAgVFZhcmlhYmxlczIsXG4gICAgVDMsXG4gICAgVFZhcmlhYmxlczMsXG4gICAgVDQsXG4gICAgVFZhcmlhYmxlczQsXG4gICAgVDUsXG4gICAgVFZhcmlhYmxlczVcbiAgPihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQxLCBUVmFyaWFibGVzMT4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDIsIFRWYXJpYWJsZXMyPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMywgVFZhcmlhYmxlczM+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQ0LCBUVmFyaWFibGVzND4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDUsIFRWYXJpYWJsZXM1PlxuICAgIF0sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk6IFByb21pc2U8W1QxLCBUMiwgVDMsIFQ0LCBUNV0+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQsIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBsck11dGF0aW9uOiBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz4sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zPFQsIFRWYXJpYWJsZXM+XG4gICk6IFByb21pc2U8VD47XG5cbiAgYXN5bmMgbHJNdXRhdGU8VCwgVFZhcmlhYmxlcyA9IHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxuICAgIGxyTXV0YXRpb25zOlxuICAgICAgfCBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz5bXVxuICAgICAgfCBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz4sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk7XG5cbiAgYXN5bmMgbHJNdXRhdGU8VCwgVFZhcmlhYmxlcyA9IHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxuICAgIGxyTXV0YXRpb25zOlxuICAgICAgfCBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz5bXVxuICAgICAgfCBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz4sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICkge1xuICAgIGlmIChsck11dGF0aW9ucyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICBjb25zdCBtZXJnZWQgPSBMck1lcmdlZE11dGF0aW9uLmNyZWF0ZShhd2FpdCBQcm9taXNlLmFsbChsck11dGF0aW9ucykpO1xuICAgICAgYXdhaXQgdGhpcy5sck11dGF0ZUltcGwobWVyZ2VkLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiBtZXJnZWQucHJvbWlzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVzb2x2ZWQgPSBhd2FpdCBsck11dGF0aW9ucztcbiAgICAgIGF3YWl0IHRoaXMubHJNdXRhdGVJbXBsKHJlc29sdmVkLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiByZXNvbHZlZC5wcm9taXNlO1xuICAgIH1cbiAgfVxufVxuXG50eXBlIExyTXV0YXRpb25NYXlBc3luYzxULCBUVmFyaWFibGVzPiA9XG4gIHwgTHJNdXRhdGlvbkJhc2U8VCwgVFZhcmlhYmxlcz5cbiAgfCBQcm9taXNlPExyTXV0YXRpb25CYXNlPFQsIFRWYXJpYWJsZXM+PlxuICB8IExyTWVyZ2VkTXV0YXRpb248VD5cbiAgfCBQcm9taXNlPExyTWVyZ2VkTXV0YXRpb248VD4+O1xuIl19
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FwaS9sci1ncmFwaHFsL2xyLWdyYXBocWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUW5ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXRFLE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFHeEQsa0JBQWtCO0FBQ2xCLDZFQUE2RTtBQUM3RSxNQUFNLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUE7O0lBRTFDLGFBQWE7O0NBRWhCLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBYyxDQUFDO0FBRTNDLE1BQU0sOEJB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QyxDQUFDO2dCQUMzQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDekI7UUFDSCxDQUFDO0tBQUE7Q0FDRixDQUFBOzs7WUE5T0EsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUExRm9CLE1BQU07WUFRbEIsTUFBTTtZQUtOLGVBQWU7WUFXRyxxQkFBcUI7O0FBbUVuQyxnQkFBZ0I7SUFONUIsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLGdCQUFnQixDQTJPNUI7U0EzT1ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGZXRjaFBvbGljeSxcbiAgTXV0YXRpb25PcHRpb25zLFxuICBPcGVyYXRpb25WYXJpYWJsZXMsXG4gIFF1ZXJ5T3B0aW9ucyxcbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBNdXRhdGlvbkJhc2VPcHRpb25zIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZS93YXRjaFF1ZXJ5T3B0aW9ucyc7XG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBGaWVsZE5vZGUgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuaW1wb3J0ICogYXMgZ3FsUHJpbnRlciBmcm9tICdncmFwaHFsL2xhbmd1YWdlL3ByaW50ZXInO1xuaW1wb3J0ICogYXMgbG9kYXNoIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFzS2V5R3JhcGggfSBmcm9tICcuLi8uLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IGdldE11dGF0aW9uLCBnZXRRdWVyeSwgVHlwZWREb2N1bWVudE5vZGUgfSBmcm9tICcuLi8uLi9fY29tbW9uL2FzdCc7XG5pbXBvcnQge1xuICBoYW5kbGVBcG9sbG9FcnJvcixcbiAgTHJCYWRTdGF0ZUV4Y2VwdGlvbixcbiAgTHJVbnN1cHBvcnRlZEV4Y2VwdGlvbixcbn0gZnJvbSAnLi4vLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IEZldGNoS2V5R3JhcGhGaWVsZCwgS2V5R3JhcGhGaWVsZCB9IGZyb20gJy4uLy4uL19jb21tb24vcXVlcmllcy5ncWwnO1xuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi8uLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgTWF5QXN5bmMgfSBmcm9tICcuLi8uLi9fY29tbW9uL3R5cGVzJztcbmltcG9ydCB7IFByb2Nlc3Nvck9wdGlvbnMsIFF1ZXJ5UHJvY2Vzc29yU2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5LXByb2Nlc3Nvcic7XG5pbXBvcnQgeyBMck1lcmdlZE11dGF0aW9uIH0gZnJvbSAnLi9sci1tZXJnZWQtbXV0YXRpb24nO1xuaW1wb3J0IHsgTHJNdXRhdGlvbkJhc2UgfSBmcm9tICcuL2xyLW11dGF0aW9uLWJhc2UnO1xuXG4vLyBEYXRhIHN0cnVjdHVyZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBrZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uID0gZ2V0UXVlcnkoZ3FsYFxucXVlcnkge1xuICAke0tleUdyYXBoRmllbGR9XG59XG5gKS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1swXSBhcyBGaWVsZE5vZGU7XG5cbmNvbnN0IGZldGNoS2V5R3JhcGhGaWVsZEFzdFNlbGVjdGlvbiA9IGdldFF1ZXJ5KGdxbGBcbnF1ZXJ5IHtcbiAgJHtGZXRjaEtleUdyYXBoRmllbGR9XG59XG5gKS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1swXSBhcyBGaWVsZE5vZGU7XG5cbi8vIGNvbnN0IGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9rZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uKSBhcyBGaWVsZE5vZGU7XG4vLyBjb25zdCBmZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9mZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24pIGFzIEZpZWxkTm9kZTtcblxuZXhwb3J0IGludGVyZmFjZSBMclF1ZXJ5T3B0aW9uczxULCBUVmFyaWFibGVzPlxuICBleHRlbmRzIFF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzPiB7XG4gIHF1ZXJ5OiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XG59XG5cbi8vIENvcGllZCBmcm9tIE11dGF0aW9uT3B0aW9uc1xuLy8gUmVtb3ZlZCByZXF1aXJlZCBmaWVsZCBcIm11dGF0aW9uXCIuIFRoZSBcInZhcmlhYmxlc1wiIGZpZWxkIGlzIHN0aWxsIHRoZXJlXG4vLyBidXQgaXQncyBkeW5hbWljYWxseSBjaGVja2VkLlxuZXhwb3J0IGludGVyZmFjZSBMck11dGF0aW9uT3B0aW9uczxcbiAgVCA9IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH0sXG4gIFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXNcbj4gZXh0ZW5kcyBNdXRhdGlvbkJhc2VPcHRpb25zPFQsIFRWYXJpYWJsZXM+IHtcbiAgY29udGV4dD86IGFueTtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbn1cblxuLy8gVGhlIFwibXV0YXRpb25cIiBhbmQgXCJ2YXJpYWJsZVwiIGZpZWxkcyBhcmUgaW5oZXJpdGVkIGJ1dCBkeW5hbWljYWxseSBwcm9oaWJpdGVkIGJlY2F1c2Vcbi8vIHRoZXkgYXJlIHByb3ZpZGVkIGJ5IExyTXV0YXRpb24uIEl0J3MgYSBiaXQgdW5jbGVhbiBidXQgYXZvaWRzIGEgbG90IG9mIHR5cGluZyB3b3JrLlxuZXhwb3J0IGludGVyZmFjZSBMckFwb2xsb011dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzID0gT3BlcmF0aW9uVmFyaWFibGVzPlxuICBleHRlbmRzIE11dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPiB7XG4gIG11dGF0aW9uOiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XG59XG5cbmludGVyZmFjZSBMckdyYXBoUUxTZXJ2aWNlU3RhdHMge1xuICBxdWVyeUNvdW50OiBudW1iZXI7XG4gIG11dGF0aW9uQ291bnQ6IG51bWJlcjtcbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExyR3JhcGhRTFNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRzOiBMckdyYXBoUUxTZXJ2aWNlU3RhdHMgPSB7XG4gICAgcXVlcnlDb3VudDogMCxcbiAgICBtdXRhdGlvbkNvdW50OiAwLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBhcG9sbG86IEFwb2xsbyxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdWVyeVByb2Nlc3NvcjogUXVlcnlQcm9jZXNzb3JTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBxdWVyeTxULCBWID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgb3B0aW9uczogTHJRdWVyeU9wdGlvbnM8VCwgVj5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgLy8gTWFrZSBjb3BpZXMgdG8gYXZvaWQgc2lkZSBlZmZlY3QuXG4gICAgb3B0aW9ucyA9IGxvZGFzaC5jbG9uZURlZXAob3B0aW9ucyk7XG5cbiAgICAvLyBBcHBlbmQgdGhlIGtleSBncmFwaCBxdWVyeVxuICAgIGNvbnN0IGluY2x1ZGVLZXlHcmFwaCA9IHRoaXMuaXNJbmNsdWRlS2V5R3JhcGgob3B0aW9ucy5pbmNsdWRlS2V5R3JhcGgpO1xuICAgIGlmIChpbmNsdWRlS2V5R3JhcGgpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldFF1ZXJ5KG9wdGlvbnMucXVlcnkpO1xuICAgICAgb3BlcmF0aW9uLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gW1xuICAgICAgICAuLi5vcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMsXG4gICAgICAgIGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm5hbWUpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldFF1ZXJ5KG9wdGlvbnMucXVlcnkpO1xuICAgICAgKG9wZXJhdGlvbi5uYW1lIGFzIGFueSkgPSB7XG4gICAgICAgIGtpbmQ6ICdOYW1lJyxcbiAgICAgICAgdmFsdWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmFwb2xsby5xdWVyeTxULCBWPihvcHRpb25zKS50b1Byb21pc2UoKTtcblxuICAgIHRoaXMuc3RhdHMucXVlcnlDb3VudCsrO1xuXG4gICAgaGFuZGxlQXBvbGxvRXJyb3IocmVzcG9uc2UuZXJyb3JzKTtcblxuICAgIHRoaXMuYWRkS2V5cyhyZXNwb25zZSk7XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5xdWVyeVByb2Nlc3Nvci5wcm9jZXNzUXVlcnkoXG4gICAgICByZXNwb25zZS5kYXRhLFxuICAgICAgb3B0aW9ucy5wcm9jZXNzb3JPcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsck11dGF0ZUltcGwobHJNdXRhdGlvbiwgb3B0aW9ucz8pIHtcbiAgICBpZiAob3B0aW9ucz8udmFyaWFibGVzKSB7XG4gICAgICB0aHJvdyBuZXcgTHJVbnN1cHBvcnRlZEV4Y2VwdGlvbihcbiAgICAgICAgJ1Vuc3VwcG9ydGVkIGZpZWxkOiBcIm9wdGlvbnMudmFyaWFibGVzXCInXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChsck11dGF0aW9uLmV4ZWN1dGVkKSB7XG4gICAgICB0aHJvdyBuZXcgTHJCYWRTdGF0ZUV4Y2VwdGlvbihcbiAgICAgICAgJ0xyTXV0YXRpb24gaGFzIGFscmVhZHkgZXhlY3V0ZWQuIExyTXV0YXRpb24gY2FuIG9ubHkgYmUgdXNlZCBvbmNlIGluIGEgbHJNdXRhdGUoKSBjYWxsLiBDcmVhdGUgbmV3IGluc3RhbmNlcyBvZiBMck11dGF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbHJNdXRhdGlvbi5zZXRFeGVjdXRlZCgpO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBvbGxvTXV0YXRlKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAuLi5sck11dGF0aW9uLmxyTXV0YXRpb25EYXRhLFxuICAgIH0pXG4gICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgIC8vIFJlc29sdmUgcHJvbWlzZXMgc2V0IG9uIHRoZSBsck11dGF0aW9uIHJhdGhlciB0aGFuIHRoZSBsck11dGF0ZSgpIGNhbGwuXG4gICAgICAgIGxyTXV0YXRpb24ucmVzb2x2ZShyZXMpO1xuICAgICAgICAvLyBTdGlsbCBuZWVkIHRvIHJldHVybiB2YWx1ZSB0byB0aGUgcHJvbWlzZSB3YWl0aW5nIGZvciB0aGUgcmVzdWx0cyBvZiBsck11dGF0ZSgpLlxuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgbHJNdXRhdGlvbi5yZWplY3QoZXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgYXBvbGxvTXV0YXRlPFQgZXh0ZW5kcyBhbnksIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBvcHRpb25zOiBMckFwb2xsb011dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPlxuICApOiBQcm9taXNlPFQ+IHtcbiAgICAvLyBNYWtlIGNvcGllcyB0byBhdm9pZCBzaWRlIGVmZmVjdC5cbiAgICBvcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG11dGF0aW9uOiBsb2Rhc2guY2xvbmVEZWVwKG9wdGlvbnMubXV0YXRpb24pLFxuICAgIH07XG5cbiAgICAvLyBBcHBlbmQgdGhlIGtleSBncmFwaCBxdWVyeVxuICAgIGNvbnN0IGluY2x1ZGVLZXlHcmFwaCA9IHRoaXMuaXNJbmNsdWRlS2V5R3JhcGgob3B0aW9ucy5pbmNsdWRlS2V5R3JhcGgpO1xuXG4gICAgaWYgKGluY2x1ZGVLZXlHcmFwaCkge1xuICAgICAgY29uc3Qgb3BlcmF0aW9uID0gZ2V0TXV0YXRpb24ob3B0aW9ucy5tdXRhdGlvbik7XG4gICAgICBvcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMgPSBbXG4gICAgICAgIC4uLm9wZXJhdGlvbi5zZWxlY3Rpb25TZXQuc2VsZWN0aW9ucyxcbiAgICAgICAgZmV0Y2hLZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5uYW1lKSB7XG4gICAgICBjb25zdCBvcGVyYXRpb24gPSBnZXRNdXRhdGlvbihvcHRpb25zLm11dGF0aW9uKTtcbiAgICAgIChvcGVyYXRpb24ubmFtZSBhcyBhbnkpID0ge1xuICAgICAgICBraW5kOiAnTmFtZScsXG4gICAgICAgIHZhbHVlOiBvcHRpb25zLm5hbWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEZvcm1hdCB0byBzdHJpbmcgYW5kIHBhcnNlIGFnYWluLiBUaGlzIGFsbG93cyB0aGUgXCJsb2NcIjogeyBcInN0YXJ0XCI6IC4uLiB9XG4gICAgLy8gcGFydCBvZiB0aGUgRG9jdW1lbnROb2RlIHRvIGJlIGNvcnJlY3RseSBzZXR1cC4gSXQncyBleHRyYSBwcm9jZXNzaW5nXG4gICAgLy8gaW4gc2VyaWFsaXNpbmcgYW5kIHBhcnNpbmcsIGJ1dCBwcm9iYWJseSBtaW5pbWFsIG92ZXJoZWFkLlxuICAgIG9wdGlvbnMubXV0YXRpb24gPSBncWwoZ3FsUHJpbnRlci5wcmludChvcHRpb25zLm11dGF0aW9uKSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuYXBvbGxvLm11dGF0ZTxUPihvcHRpb25zKS50b1Byb21pc2UoKTtcblxuICAgIHRoaXMuc3RhdHMubXV0YXRpb25Db3VudCsrO1xuXG4gICAgaGFuZGxlQXBvbGxvRXJyb3IocmVzcG9uc2UuZXJyb3JzKTtcblxuICAgIHRoaXMuYWRkS2V5cyhyZXNwb25zZSk7XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5xdWVyeVByb2Nlc3Nvci5wcm9jZXNzUXVlcnkoXG4gICAgICByZXNwb25zZS5kYXRhLFxuICAgICAgb3B0aW9ucy5wcm9jZXNzb3JPcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc3RhdHNTbmFwc2hvdCgpOiBMckdyYXBoUUxTZXJ2aWNlU3RhdHMge1xuICAgIHJldHVybiBsb2Rhc2guY2xvbmVEZWVwKHRoaXMuc3RhdHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRLZXlzKHJlc3BvbnNlKSB7XG4gICAgaWYgKChyZXNwb25zZS5kYXRhIGFzIEhhc0tleUdyYXBoKS5rZXlHcmFwaCkge1xuICAgICAgdGhpcy5rZXlHcmFwaC5hZGRLZXlzKChyZXNwb25zZS5kYXRhIGFzIEhhc0tleUdyYXBoKS5rZXlHcmFwaCk7XG4gICAgICBkZWxldGUgcmVzcG9uc2UuZGF0YS5rZXlHcmFwaDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzSW5jbHVkZUtleUdyYXBoKGluY2x1ZGVLZXlHcmFwaCkge1xuICAgIC8vIERlZmF1bHQgdG8gdHJ1ZSB3aGVuIG51bGwgb3IgdW5kZWZpbmVkLlxuICAgIHJldHVybiBpbmNsdWRlS2V5R3JhcGggPT0gbnVsbCA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIGxyTXV0YXRlPFQxLCBUVmFyaWFibGVzMSwgVDIsIFRWYXJpYWJsZXMyPihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQxLCBUVmFyaWFibGVzMT4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDIsIFRWYXJpYWJsZXMyPlxuICAgIF0sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk6IFByb21pc2U8W1QxLCBUMl0+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQxLCBUVmFyaWFibGVzMSwgVDIsIFRWYXJpYWJsZXMyLCBUMywgVFZhcmlhYmxlczM+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDEsIFRWYXJpYWJsZXMxPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMiwgVFZhcmlhYmxlczI+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQzLCBUVmFyaWFibGVzMz5cbiAgICBdLFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApOiBQcm9taXNlPFtUMSwgVDIsIFQzXT47XG5cbiAgYXN5bmMgbHJNdXRhdGU8XG4gICAgVDEsXG4gICAgVFZhcmlhYmxlczEsXG4gICAgVDIsXG4gICAgVFZhcmlhYmxlczIsXG4gICAgVDMsXG4gICAgVFZhcmlhYmxlczMsXG4gICAgVDQsXG4gICAgVFZhcmlhYmxlczRcbiAgPihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQxLCBUVmFyaWFibGVzMT4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDIsIFRWYXJpYWJsZXMyPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMywgVFZhcmlhYmxlczM+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQ0LCBUVmFyaWFibGVzND5cbiAgICBdLFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApOiBQcm9taXNlPFtUMSwgVDIsIFQzLCBUNF0+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFxuICAgIFQxLFxuICAgIFRWYXJpYWJsZXMxLFxuICAgIFQyLFxuICAgIFRWYXJpYWJsZXMyLFxuICAgIFQzLFxuICAgIFRWYXJpYWJsZXMzLFxuICAgIFQ0LFxuICAgIFRWYXJpYWJsZXM0LFxuICAgIFQ1LFxuICAgIFRWYXJpYWJsZXM1XG4gID4oXG4gICAgbHJNdXRhdGlvbnM6IFtcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMSwgVFZhcmlhYmxlczE+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQyLCBUVmFyaWFibGVzMj4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDMsIFRWYXJpYWJsZXMzPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUNCwgVFZhcmlhYmxlczQ+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQ1LCBUVmFyaWFibGVzNT5cbiAgICBdLFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApOiBQcm9taXNlPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcblxuICBhc3luYyBsck11dGF0ZTxULCBUVmFyaWFibGVzID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgbHJNdXRhdGlvbjogTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+LFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPlxuICApOiBQcm9taXNlPFQ+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQsIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBsck11dGF0aW9uczpcbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+W11cbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+LFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApO1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQsIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBsck11dGF0aW9uczpcbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+W11cbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+LFxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xuICApIHtcbiAgICBpZiAobHJNdXRhdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgY29uc3QgbWVyZ2VkID0gTHJNZXJnZWRNdXRhdGlvbi5jcmVhdGUoYXdhaXQgUHJvbWlzZS5hbGwobHJNdXRhdGlvbnMpKTtcbiAgICAgIGF3YWl0IHRoaXMubHJNdXRhdGVJbXBsKG1lcmdlZCwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gbWVyZ2VkLnByb21pc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgbHJNdXRhdGlvbnM7XG4gICAgICBhd2FpdCB0aGlzLmxyTXV0YXRlSW1wbChyZXNvbHZlZCwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmVzb2x2ZWQucHJvbWlzZTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXM+ID0gTWF5QXN5bmM8XG4gIExyTXV0YXRpb25CYXNlPFQsIFRWYXJpYWJsZXM+XG4+O1xuIl19
@@ -178,7 +178,6 @@ export class LrMergedMutation extends LrMutationBase {
178
178
  ...selections,
179
179
  ...this.renameSelections(childMutationNode.selectionSet.selections, prefix),
180
180
  ];
181
- // TODO Rename and merge fragments
182
181
  // Rename and merge variables
183
182
  for (const key2 of Object.keys(variables)) {
184
183
  mergedVariables[prefix + key2] = variables[key2];
@@ -209,4 +208,4 @@ export class LrMergedMutation extends LrMutationBase {
209
208
  };
210
209
  }
211
210
  }
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItbWVyZ2VkLW11dGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FwaS9sci1ncmFwaHFsL2xyLW1lcmdlZC1tdXRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsTUFBTSxtQkFBbUIsR0FBaUI7SUFDeEMsSUFBSSxFQUFFLFVBQVU7SUFDaEIsV0FBVyxFQUFFO1FBQ1g7WUFDRSxJQUFJLEVBQUUscUJBQXFCO1lBQzNCLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsa0JBQWtCO2FBQzFCO1lBQ0QsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixVQUFVLEVBQUUsRUFBRTtZQUNkLFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUUsY0FBYztnQkFDcEIsVUFBVSxFQUFFLEVBQUU7YUFDZjtTQUNGO0tBQ0Y7Q0FNRixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFvQixTQUFRLGNBQWlCO0lBSXhELFlBQTRCLFdBQWtDO1FBQzVELEtBQUssRUFBRSxDQUFDO1FBRGtCLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtRQUc1RCxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVB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Q0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsRDtZQUVELDZCQUE2QjtZQUM3QixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsZUFBZSxHQUFHO2dCQUNoQixHQUFHLGVBQWU7Z0JBQ2xCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7YUFDckQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQWlCLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzRSxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakQsaUNBQWlDO1FBQ2pDLFlBQVksQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUNsRCx1QkFBdUI7UUFDdkIsNENBQTRDO1FBQzNDLFlBQW9CLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDaEUsdUJBQXVCO1FBQ3RCLGNBQXNCLENBQUMsV0FBVyxHQUFHO1lBQ3BDLEdBQUcsY0FBYyxDQUFDLFdBQVc7WUFDN0IsR0FBRyxlQUFlO1NBQ25CLENBQUM7UUFFRixPQUFPO1lBQ0wsUUFBUSxFQUFFLGNBQWM7WUFDeEIsU0FBUyxFQUFFLGVBQWU7WUFDMUIsUUFBUTtTQUNULENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQge1xuICBBcmd1bWVudE5vZGUsXG4gIERvY3VtZW50Tm9kZSxcbiAgRmllbGROb2RlLFxuICBGcmFnbWVudERlZmluaXRpb25Ob2RlLFxuICBGcmFnbWVudFNwcmVhZE5vZGUsXG4gIFNlbGVjdGlvbk5vZGUsXG4gIFNlbGVjdGlvblNldE5vZGUsXG4gIFZhcmlhYmxlRGVmaW5pdGlvbk5vZGUsXG59IGZyb20gJ2dyYXBocWwnO1xuaW1wb3J0ICogYXMgbG9kYXNoIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgKiBhcyBhc3QgZnJvbSAnLi4vLi4vX2NvbW1vbi9hc3QnO1xuaW1wb3J0IHsgZ2V0QWxpYXNPck5hbWUsIGdldEZyYWdtZW50cywgZ2V0TXV0YXRpb24gfSBmcm9tICcuLi8uLi9fY29tbW9uL2FzdCc7XG5pbXBvcnQge1xuICBMckJhZExvZ2ljRXhjZXB0aW9uLFxuICBMclVuc3VwcG9ydGVkRXhjZXB0aW9uLFxufSBmcm9tICcuLi8uLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgTHJNdXRhdGlvbiB9IGZyb20gJy4vbHItbXV0YXRpb24nO1xuaW1wb3J0IHsgTHJNdXRhdGlvbkJhc2UgfSBmcm9tICcuL2xyLW11dGF0aW9uLWJhc2UnO1xuXG5jb25zdCBsck1lcmdlZE11dGF0aW9uRG9jOiBEb2N1bWVudE5vZGUgPSB7XG4gIGtpbmQ6ICdEb2N1bWVudCcsXG4gIGRlZmluaXRpb25zOiBbXG4gICAge1xuICAgICAga2luZDogJ09wZXJhdGlvbkRlZmluaXRpb24nLFxuICAgICAgb3BlcmF0aW9uOiAnbXV0YXRpb24nLFxuICAgICAgbmFtZToge1xuICAgICAgICBraW5kOiAnTmFtZScsXG4gICAgICAgIHZhbHVlOiAnbHJNZXJnZWRNdXRhdGlvbicsXG4gICAgICB9LFxuICAgICAgdmFyaWFibGVEZWZpbml0aW9uczogW10sXG4gICAgICBkaXJlY3RpdmVzOiBbXSxcbiAgICAgIHNlbGVjdGlvblNldDoge1xuICAgICAgICBraW5kOiAnU2VsZWN0aW9uU2V0JyxcbiAgICAgICAgc2VsZWN0aW9uczogW10sXG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG4gIC8vIFRPRE8gV2hhdCB0byBkbyBhYm91dCB0aGVzZT8gU2VyaWFsaXNlIGFuZCByZXBhcnNlP1xuICAvLyBcImxvY1wiOiB7XG4gIC8vICAgXCJzdGFydFwiOiAwLFxuICAvLyAgIFwiZW5kXCI6IDIwNFxuICAvLyB9XG59O1xuXG5leHBvcnQgY2xhc3MgTHJNZXJnZWRNdXRhdGlvbjxUPiBleHRlbmRzIExyTXV0YXRpb25CYXNlPFQ+IHtcbiAgcHVibGljIHJlYWRvbmx5IGRlc2NlbmRhbnRzOiBTZXQ8THJNdXRhdGlvbkJhc2U8YW55Pj47XG4gIHByb3RlY3RlZCBwcmVmaXhlczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGxyTXV0YXRpb25zOiBMck11dGF0aW9uQmFzZTxhbnk+W10pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgY29uc3QgeyBtdXRhdGlvbiwgdmFyaWFibGVzLCBwcmVmaXhlcyB9ID0gdGhpcy5tZXJnZSgpO1xuICAgIHRoaXMubXV0YXRpb24gPSBtdXRhdGlvbjtcbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgICB0aGlzLnByZWZpeGVzID0gcHJlZml4ZXM7XG4gICAgdGhpcy5kZXNjZW5kYW50cyA9IHRoaXMuZ2V0RGVzY2VuZGFudHMoKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGU8VDEsIFQyPihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbkJhc2U8VDE+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMT4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUMj4gfCBMck1lcmdlZE11dGF0aW9uPFQyPlxuICAgIF1cbiAgKTogTHJNZXJnZWRNdXRhdGlvbjxbVDEsIFQyXT47XG5cbiAgc3RhdGljIGNyZWF0ZTxUMSwgVDIsIFQzPihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbkJhc2U8VDE+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMT4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUMj4gfCBMck1lcmdlZE11dGF0aW9uPFQyPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQzPiB8IExyTWVyZ2VkTXV0YXRpb248VDM+XG4gICAgXVxuICApOiBMck1lcmdlZE11dGF0aW9uPFtUMSwgVDIsIFQzXT47XG5cbiAgc3RhdGljIGNyZWF0ZTxUMSwgVDIsIFQzLCBUND4oXG4gICAgbHJNdXRhdGlvbnM6IFtcbiAgICAgIExyTXV0YXRpb25CYXNlPFQxPiB8IExyTWVyZ2VkTXV0YXRpb248VDE+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDI+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMj4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUMz4gfCBMck1lcmdlZE11dGF0aW9uPFQzPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQ0PiB8IExyTWVyZ2VkTXV0YXRpb248VDQ+XG4gICAgXVxuICApOiBMck1lcmdlZE11dGF0aW9uPFtUMSwgVDIsIFQzLCBUNF0+O1xuXG4gIHN0YXRpYyBjcmVhdGU8VDEsIFQyLCBUMywgVDQsIFQ1PihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbkJhc2U8VDE+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMT4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUMj4gfCBMck1lcmdlZE11dGF0aW9uPFQyPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQzPiB8IExyTWVyZ2VkTXV0YXRpb248VDM+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDQ+IHwgTHJNZXJnZWRNdXRhdGlvbjxUND4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUNT4gfCBMck1lcmdlZE11dGF0aW9uPFQ1PlxuICAgIF1cbiAgKTogTHJNZXJnZWRNdXRhdGlvbjxbVDEsIFQyLCBUMywgVDQsIFQ1XT47XG5cbiAgc3RhdGljIGNyZWF0ZTxUPihsck11dGF0aW9uczogTHJNdXRhdGlvbkJhc2U8VD5bXSk6IExyTWVyZ2VkTXV0YXRpb248VFtdPjtcblxuICBzdGF0aWMgY3JlYXRlKGxyTXV0YXRpb25zOiBMck11dGF0aW9uQmFzZTxhbnk+W10pOiBMck1lcmdlZE11dGF0aW9uPGFueVtdPjtcblxuICBzdGF0aWMgY3JlYXRlKGxyTXV0YXRpb25zOiBMck11dGF0aW9uQmFzZTxhbnk+W10pIHtcbiAgICByZXR1cm4gbmV3IExyTWVyZ2VkTXV0YXRpb24obHJNdXRhdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZXNjZW5kYW50cygpIHtcbiAgICBjb25zdCByZXQgPSBuZXcgU2V0PExyTXV0YXRpb25CYXNlPGFueT4+KCk7XG5cbiAgICBjb25zdCBhZGRPclRocm93ID0gKGl0ZW0pID0+IHtcbiAgICAgIGlmIChyZXQuaGFzKGl0ZW0pKSB7XG4gICAgICAgIHRocm93IG5ldyBMckJhZExvZ2ljRXhjZXB0aW9uKFxuICAgICAgICAgICdDbGFzc2VzIHRoYXQgYXJlIGRlcml2ZWQgZnJvbSBMck11dGF0aW9uQmFzZSBjYW4gbm90IGJlIHVzZWQgbW9yZSB0aGFuIG9uY2UgaW4gYSBtZXJnZWQgbXV0YXRpb24uJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXQuYWRkKGl0ZW0pO1xuICAgIH07XG5cbiAgICB0aGlzLmxyTXV0YXRpb25zLmZvckVhY2goKGxyTXV0YXRpb24pID0+IHtcbiAgICAgIGlmIChsck11dGF0aW9uIGluc3RhbmNlb2YgTHJNdXRhdGlvbikge1xuICAgICAgICBhZGRPclRocm93KGxyTXV0YXRpb24pO1xuICAgICAgfSBlbHNlIGlmIChsck11dGF0aW9uIGluc3RhbmNlb2YgTHJNZXJnZWRNdXRhdGlvbikge1xuICAgICAgICBsck11dGF0aW9uLmRlc2NlbmRhbnRzLmZvckVhY2goKHQpID0+IGFkZE9yVGhyb3codCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IExyVW5zdXBwb3J0ZWRFeGNlcHRpb24oXG4gICAgICAgICAgYExyTWVyZ2VNdXRhdGlvbiBjYW4gbm90IGhhbmRsZSBjbGFzczogJHtsck11dGF0aW9uLmNvbnN0cnVjdG9yLm5hbWV9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHJlc29sdmUodmFsdWU6IGFueSkge1xuICAgIC8vIFJlc29sdmVzIGFueSBwcm9taXNlcyB3YWl0aW5nIGZvciB0aGUgY2hpbGQgbXV0YXRpb25zXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxyTXV0YXRpb25zLmxlbmd0aDsgKytpKSB7XG4gICAgICBjb25zdCBwcmVmaXggPSB0aGlzLnByZWZpeGVzW2ldO1xuXG4gICAgICAvLyBSZW1vdmUgdGhlIHByZWZpeCBhbmQgcmVzb2x2ZSBjaGlsZCBtdXRhdGlvbi5cbiAgICAgIGNvbnN0IHJlczogYW55ID0ge307XG4gICAgICBmb3IgKGNvbnN0IGtleTIgaW4gdmFsdWUpIHtcbiAgICAgICAgaWYgKGtleTIuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxLZXkgPSBrZXkyLnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICAgICAgICAgIHJlc1tvcmlnaW5hbEtleV0gPSB2YWx1ZVtrZXkyXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5sck11dGF0aW9uc1tpXS5yZXNvbHZlKHJlcyk7XG4gICAgfVxuXG4gICAgLy8gUmVzb2x2ZXMgdG8gdGhlIHJlc3VsdCBvZiBjaGlsZHJlblxuICAgIFByb21pc2UuYWxsKHRoaXMubHJNdXRhdGlvbnMubWFwKChtKSA9PiBtLnByb21pc2UpKS50aGVuKFxuICAgICAgKGNoaWxkVmFsdWVzOiBhbnkpID0+IHtcbiAgICAgICAgLy8gUmVzb2x2ZXMgYW55IHByb21pc2VzIHdhaXRpbmcgZm9yIHRoZSBjdXJyZW50IG1lcmdlZCBtdXRhdGlvblxuICAgICAgICBzdXBlci5yZXNvbHZlKGNoaWxkVmFsdWVzKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcmVqZWN0KHJlYXNvbj86IGFueSkge1xuICAgIHN1cGVyLnJlamVjdChyZWFzb24pO1xuICAgIHRoaXMubHJNdXRhdGlvbnMuZm9yRWFjaCgobHJNdXRhdGlvbikgPT4gbHJNdXRhdGlvbi5yZWplY3QocmVhc29uKSk7XG4gIH1cblxuICBzZXRFeGVjdXRlZCgpIHtcbiAgICBzdXBlci5zZXRFeGVjdXRlZCgpO1xuICAgIHRoaXMubHJNdXRhdGlvbnMuZm9yRWFjaCgobHJNdXRhdGlvbikgPT4gbHJNdXRhdGlvbi5zZXRFeGVjdXRlZCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lVmFyaWFibGVEZWZpbml0aW9uKHZhckRlZjogVmFyaWFibGVEZWZpbml0aW9uTm9kZSwgcHJlZml4KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnZhckRlZixcbiAgICAgIHZhcmlhYmxlOiB7XG4gICAgICAgIC4uLnZhckRlZi52YXJpYWJsZSxcbiAgICAgICAgbmFtZTogYXN0Lm5hbWUocHJlZml4ICsgdmFyRGVmLnZhcmlhYmxlLm5hbWUudmFsdWUpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZW5hbWVWYXJpYWJsZURlZmluaXRpb25zKFxuICAgIHZhckRlZnM6IFJlYWRvbmx5QXJyYXk8VmFyaWFibGVEZWZpbml0aW9uTm9kZT4sXG4gICAgcHJlZml4XG4gICkge1xuICAgIHJldHVybiB2YXJEZWZzLm1hcCgodmFyRGVmKSA9PlxuICAgICAgdGhpcy5yZW5hbWVWYXJpYWJsZURlZmluaXRpb24odmFyRGVmLCBwcmVmaXgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lQXJndW1lbnQoYXJnOiBBcmd1bWVudE5vZGUsIHByZWZpeCkge1xuICAgIGlmIChhcmcudmFsdWUua2luZCAhPT0gJ1ZhcmlhYmxlJykge1xuICAgICAgcmV0dXJuIGFyZztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uYXJnLFxuICAgICAgdmFsdWU6IHtcbiAgICAgICAgLi4uYXJnLnZhbHVlLFxuICAgICAgICBuYW1lOiBhc3QubmFtZShwcmVmaXggKyBhcmcudmFsdWUubmFtZS52YWx1ZSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbmFtZUZpZWxkKHNlbGVjdGlvbjogRmllbGROb2RlLCBwcmVmaXgpOiBGaWVsZE5vZGUge1xuICAgIC8vIE9ubHkgaGFuZGxpbmcgdHlwZSBGaWVsZFxuICAgIGlmIChzZWxlY3Rpb24ua2luZCAhPT0gJ0ZpZWxkJykge1xuICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBhbGlhcyA9IHByZWZpeCArIGdldEFsaWFzT3JOYW1lKHNlbGVjdGlvbik7XG4gICAgY29uc3QgYXJncyA9IHNlbGVjdGlvbi5hcmd1bWVudHMubWFwKChhcmcpID0+XG4gICAgICB0aGlzLnJlbmFtZUFyZ3VtZW50KGFyZywgcHJlZml4KVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2VsZWN0aW9uLFxuICAgICAgYWxpYXM6IHtcbiAgICAgICAga2luZDogJ05hbWUnLFxuICAgICAgICB2YWx1ZTogYWxpYXMsXG4gICAgICB9LFxuICAgICAgYXJndW1lbnRzOiBhcmdzLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbmFtZUZyYWdtZW50U3ByZWFkKFxuICAgIHNlbGVjdGlvbjogRnJhZ21lbnRTcHJlYWROb2RlLFxuICAgIHByZWZpeFxuICApOiBGcmFnbWVudFNwcmVhZE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zZWxlY3Rpb24sXG4gICAgICBuYW1lOiBhc3QubmFtZShwcmVmaXggKyBzZWxlY3Rpb24ubmFtZS52YWx1ZSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1NlbGVjdGlvbihzZWxlY3Rpb246IFNlbGVjdGlvbk5vZGUsIHByZWZpeCk6IFNlbGVjdGlvbk5vZGUge1xuICAgIHN3aXRjaCAoc2VsZWN0aW9uLmtpbmQpIHtcbiAgICAgIGNhc2UgJ0ZyYWdtZW50U3ByZWFkJzpcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuYW1lRnJhZ21lbnRTcHJlYWQoc2VsZWN0aW9uLCBwcmVmaXgpO1xuICAgICAgY2FzZSAnRmllbGQnOlxuICAgICAgICAvLyBDb250aW51ZSB0byBwcm9jZXNzIGNoaWxkcmVuIGZvciBuZXN0ZWQgc2VsZWN0aW9ucy5cbiAgICAgICAgaWYgKHNlbGVjdGlvbi5zZWxlY3Rpb25TZXQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uc2VsZWN0aW9uLFxuICAgICAgICAgICAgc2VsZWN0aW9uU2V0OiB0aGlzLnByb2Nlc3NTZWxlY3Rpb25TZXQoXG4gICAgICAgICAgICAgIHNlbGVjdGlvbi5zZWxlY3Rpb25TZXQsXG4gICAgICAgICAgICAgIHByZWZpeFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBzZWxlY3Rpb247XG4gICAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBzZWxlY3Rpb247XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzU2VsZWN0aW9uU2V0KFxuICAgIHNlbGVjdGlvblNldDogU2VsZWN0aW9uU2V0Tm9kZSxcbiAgICBwcmVmaXhcbiAgKTogU2VsZWN0aW9uU2V0Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNlbGVjdGlvblNldCxcbiAgICAgIHNlbGVjdGlvbnM6IHNlbGVjdGlvblNldC5zZWxlY3Rpb25zLm1hcCgoc2VsZWN0aW9uKSA9PlxuICAgICAgICB0aGlzLnByb2Nlc3NTZWxlY3Rpb24oc2VsZWN0aW9uLCBwcmVmaXgpXG4gICAgICApLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbmFtZVNlbGVjdGlvbnMoXG4gICAgc2VsZWN0aW9uczogUmVhZG9ubHlBcnJheTxTZWxlY3Rpb25Ob2RlPixcbiAgICBwcmVmaXhcbiAgKTogU2VsZWN0aW9uTm9kZVtdIHtcbiAgICByZXR1cm4gc2VsZWN0aW9ucy5tYXAoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgc3dpdGNoIChzZWxlY3Rpb24ua2luZCkge1xuICAgICAgICBjYXNlICdGaWVsZCc6XG4gICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1NlbGVjdGlvbihcbiAgICAgICAgICAgIHRoaXMucmVuYW1lRmllbGQoc2VsZWN0aW9uLCBwcmVmaXgpLFxuICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gc2VsZWN0aW9uO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5hbWVGcmFnbWVudERlZmluaXRpb24oZnJhZ21lbnQ6IEZyYWdtZW50RGVmaW5pdGlvbk5vZGUsIHByZWZpeCkge1xuICAgIGNvbnN0IHJldCA9IHtcbiAgICAgIC4uLmZyYWdtZW50LFxuICAgICAgbmFtZTogYXN0Lm5hbWUocHJlZml4ICsgZnJhZ21lbnQubmFtZS52YWx1ZSksXG4gICAgfTtcblxuICAgIGlmIChmcmFnbWVudC5zZWxlY3Rpb25TZXQpIHtcbiAgICAgIHJldC5zZWxlY3Rpb25TZXQgPSB0aGlzLnByb2Nlc3NTZWxlY3Rpb25TZXQoXG4gICAgICAgIGZyYWdtZW50LnNlbGVjdGlvblNldCxcbiAgICAgICAgcHJlZml4XG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwcml2YXRlIHJlbmFtZUZyYWdtZW50RGVmaW5pdGlvbnMoXG4gICAgZnJhZ21lbnRzOiBGcmFnbWVudERlZmluaXRpb25Ob2RlW10sXG4gICAgcHJlZml4XG4gICkge1xuICAgIHJldHVybiBmcmFnbWVudHMubWFwKChmcmFnbWVudCkgPT5cbiAgICAgIHRoaXMucmVuYW1lRnJhZ21lbnREZWZpbml0aW9uKGZyYWdtZW50LCBwcmVmaXgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2UoKSB7XG4gICAgbGV0IHZhcmlhYmxlRGVmaW5pdGlvbnM6IFZhcmlhYmxlRGVmaW5pdGlvbk5vZGVbXSA9IFtdO1xuICAgIGxldCBzZWxlY3Rpb25zOiBTZWxlY3Rpb25Ob2RlW10gPSBbXTtcbiAgICBjb25zdCBtZXJnZWRWYXJpYWJsZXMgPSB7fTtcbiAgICBsZXQgbWVyZ2VkRnJhZ21lbnRzOiBGcmFnbWVudERlZmluaXRpb25Ob2RlW10gPSBbXTtcblxuICAgIGNvbnN0IHByZWZpeGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gSnVzdCB3YWl0IGZvciBldmVyeXRoaW5nIHRvIHJlc29sdmUgYmVjYXVzZSB3ZSBoYXZlIHRvXG4gICAgLy8gbWVyZ2UgdGhlIGRvYyBzeW5jaHJvbm91c2x5LlxuICAgIHRoaXMubHJNdXRhdGlvbnMuZm9yRWFjaCgobHJNdXRhdGlvbiwgaWR4KSA9PiB7XG4gICAgICBjb25zdCB7IG11dGF0aW9uLCB2YXJpYWJsZXMgfSA9IGxyTXV0YXRpb24ubHJNdXRhdGlvbkRhdGE7XG5cbiAgICAgIGNvbnN0IGNoaWxkTXV0YXRpb25Ob2RlID0gZ2V0TXV0YXRpb24obXV0YXRpb24pO1xuXG4gICAgICAvLyBQcmVmaXhpbmcgYWxsIG11dGF0aW9uIGZpZWxkcyBzbyB0aGV5IGRvbid0IGNvbmZsaWN0LlxuICAgICAgbGV0IHByZWZpeCA9IGBpdGVtJHtpZHh9X2A7XG4gICAgICBpZiAoY2hpbGRNdXRhdGlvbk5vZGUubmFtZSkge1xuICAgICAgICBwcmVmaXggKz0gY2hpbGRNdXRhdGlvbk5vZGUubmFtZS52YWx1ZSArICdfJztcbiAgICAgIH1cblxuICAgICAgcHJlZml4ZXMucHVzaChwcmVmaXgpO1xuXG4gICAgICAvLyBSZW5hbWUgYW5kIG1lcmdlIHZhcmlhYmxlc1xuICAgICAgdmFyaWFibGVEZWZpbml0aW9ucyA9IFtcbiAgICAgICAgLi4udmFyaWFibGVEZWZpbml0aW9ucyxcbiAgICAgICAgLi4udGhpcy5yZW5hbWVWYXJpYWJsZURlZmluaXRpb25zKFxuICAgICAgICAgIGNoaWxkTXV0YXRpb25Ob2RlLnZhcmlhYmxlRGVmaW5pdGlvbnMsXG4gICAgICAgICAgcHJlZml4XG4gICAgICAgICksXG4gICAgICBdO1xuXG4gICAgICAvLyBSZW5hbWUgYW5kIG1lcmdlIHNlbGVjdGlvbnNcbiAgICAgIHNlbGVjdGlvbnMgPSBbXG4gICAgICAgIC4uLnNlbGVjdGlvbnMsXG4gICAgICAgIC4uLnRoaXMucmVuYW1lU2VsZWN0aW9ucyhcbiAgICAgICAgICBjaGlsZE11dGF0aW9uTm9kZS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9ucyxcbiAgICAgICAgICBwcmVmaXhcbiAgICAgICAgKSxcbiAgICAgIF07XG5cbiAgICAgIC8vIFRPRE8gUmVuYW1lIGFuZCBtZXJnZSBmcmFnbWVudHNcblxuICAgICAgLy8gUmVuYW1lIGFuZCBtZXJnZSB2YXJpYWJsZXNcbiAgICAgIGZvciAoY29uc3Qga2V5MiBvZiBPYmplY3Qua2V5cyh2YXJpYWJsZXMpKSB7XG4gICAgICAgIG1lcmdlZFZhcmlhYmxlc1twcmVmaXggKyBrZXkyXSA9IHZhcmlhYmxlc1trZXkyXTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVuYW1lIGFuZCBtZXJnZSBmcmFnbWVudHNcbiAgICAgIGNvbnN0IGZyYWdtZW50cyA9IGdldEZyYWdtZW50cyhtdXRhdGlvbik7XG4gICAgICBtZXJnZWRGcmFnbWVudHMgPSBbXG4gICAgICAgIC4uLm1lcmdlZEZyYWdtZW50cyxcbiAgICAgICAgLi4udGhpcy5yZW5hbWVGcmFnbWVudERlZmluaXRpb25zKGZyYWdtZW50cywgcHJlZml4KSxcbiAgICAgIF07XG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRNdXRhdGlvbjogRG9jdW1lbnROb2RlID0gbG9kYXNoLmNsb25lRGVlcChsck1lcmdlZE11dGF0aW9uRG9jKTtcbiAgICBjb25zdCBtdXRhdGlvbk5vZGUgPSBnZXRNdXRhdGlvbihtZXJnZWRNdXRhdGlvbik7XG4gICAgLy8gQWRkIGluIHRoZSBtdXRhdGlvbiBzZWxlY3Rpb25zXG4gICAgbXV0YXRpb25Ob2RlLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gc2VsZWN0aW9ucztcbiAgICAvLyBBZGQgaW4gdGhlIHZhcmlhYmxlc1xuICAgIC8vIHZhcmlhYmxlRGVmaW5pdGlvbnMgaXMgcmVhZG9ubHkgcHJvcGVydHkuXG4gICAgKG11dGF0aW9uTm9kZSBhcyBhbnkpLnZhcmlhYmxlRGVmaW5pdGlvbnMgPSB2YXJpYWJsZURlZmluaXRpb25zO1xuICAgIC8vIEFkZCBpbiB0aGUgZnJhZ21lbnRzXG4gICAgKG1lcmdlZE11dGF0aW9uIGFzIGFueSkuZGVmaW5pdGlvbnMgPSBbXG4gICAgICAuLi5tZXJnZWRNdXRhdGlvbi5kZWZpbml0aW9ucyxcbiAgICAgIC4uLm1lcmdlZEZyYWdtZW50cyxcbiAgICBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG11dGF0aW9uOiBtZXJnZWRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogbWVyZ2VkVmFyaWFibGVzLFxuICAgICAgcHJlZml4ZXMsXG4gICAgfTtcbiAgfVxufVxuIl19
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItbWVyZ2VkLW11dGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FwaS9sci1ncmFwaHFsL2xyLW1lcmdlZC1tdXRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsTUFBTSxtQkFBbUIsR0FBaUI7SUFDeEMsSUFBSSxFQUFFLFVBQVU7SUFDaEIsV0FBVyxFQUFFO1FBQ1g7WUFDRSxJQUFJLEVBQUUscUJBQXFCO1lBQzNCLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsa0JBQWtCO2FBQzFCO1lBQ0QsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixVQUFVLEVBQUUsRUFBRTtZQUNkLFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUUsY0FBYztnQkFDcEIsVUFBVSxFQUFFLEVBQUU7YUFDZjtTQUNGO0tBQ0Y7Q0FNRixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFvQixTQUFRLGNBQWlCO0lBSXhELFlBQTRCLFdBQWtDO1FBQzVELEtBQUssRUFBRSxDQUFDO1FBRGtCLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtRQUc1RCxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVB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QyxDQUFDO2FBQ2xEO1lBRUQsNkJBQTZCO1lBQzdCLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxlQUFlLEdBQUc7Z0JBQ2hCLEdBQUcsZUFBZTtnQkFDbEIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQzthQUNyRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGNBQWMsR0FBaUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRCxpQ0FBaUM7UUFDakMsWUFBWSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2xELHVCQUF1QjtRQUN2Qiw0Q0FBNEM7UUFDM0MsWUFBb0IsQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUNoRSx1QkFBdUI7UUFDdEIsY0FBc0IsQ0FBQyxXQUFXLEdBQUc7WUFDcEMsR0FBRyxjQUFjLENBQUMsV0FBVztZQUM3QixHQUFHLGVBQWU7U0FDbkIsQ0FBQztRQUVGLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUUsZUFBZTtZQUMxQixRQUFRO1NBQ1QsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7XG4gIEFyZ3VtZW50Tm9kZSxcbiAgRG9jdW1lbnROb2RlLFxuICBGaWVsZE5vZGUsXG4gIEZyYWdtZW50RGVmaW5pdGlvbk5vZGUsXG4gIEZyYWdtZW50U3ByZWFkTm9kZSxcbiAgU2VsZWN0aW9uTm9kZSxcbiAgU2VsZWN0aW9uU2V0Tm9kZSxcbiAgVmFyaWFibGVEZWZpbml0aW9uTm9kZSxcbn0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgKiBhcyBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIGFzdCBmcm9tICcuLi8uLi9fY29tbW9uL2FzdCc7XG5pbXBvcnQgeyBnZXRBbGlhc09yTmFtZSwgZ2V0RnJhZ21lbnRzLCBnZXRNdXRhdGlvbiB9IGZyb20gJy4uLy4uL19jb21tb24vYXN0JztcbmltcG9ydCB7XG4gIExyQmFkTG9naWNFeGNlcHRpb24sXG4gIExyVW5zdXBwb3J0ZWRFeGNlcHRpb24sXG59IGZyb20gJy4uLy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBMck11dGF0aW9uIH0gZnJvbSAnLi9sci1tdXRhdGlvbic7XG5pbXBvcnQgeyBMck11dGF0aW9uQmFzZSB9IGZyb20gJy4vbHItbXV0YXRpb24tYmFzZSc7XG5cbmNvbnN0IGxyTWVyZ2VkTXV0YXRpb25Eb2M6IERvY3VtZW50Tm9kZSA9IHtcbiAga2luZDogJ0RvY3VtZW50JyxcbiAgZGVmaW5pdGlvbnM6IFtcbiAgICB7XG4gICAgICBraW5kOiAnT3BlcmF0aW9uRGVmaW5pdGlvbicsXG4gICAgICBvcGVyYXRpb246ICdtdXRhdGlvbicsXG4gICAgICBuYW1lOiB7XG4gICAgICAgIGtpbmQ6ICdOYW1lJyxcbiAgICAgICAgdmFsdWU6ICdsck1lcmdlZE11dGF0aW9uJyxcbiAgICAgIH0sXG4gICAgICB2YXJpYWJsZURlZmluaXRpb25zOiBbXSxcbiAgICAgIGRpcmVjdGl2ZXM6IFtdLFxuICAgICAgc2VsZWN0aW9uU2V0OiB7XG4gICAgICAgIGtpbmQ6ICdTZWxlY3Rpb25TZXQnLFxuICAgICAgICBzZWxlY3Rpb25zOiBbXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbiAgLy8gVE9ETyBXaGF0IHRvIGRvIGFib3V0IHRoZXNlPyBTZXJpYWxpc2UgYW5kIHJlcGFyc2U/XG4gIC8vIFwibG9jXCI6IHtcbiAgLy8gICBcInN0YXJ0XCI6IDAsXG4gIC8vICAgXCJlbmRcIjogMjA0XG4gIC8vIH1cbn07XG5cbmV4cG9ydCBjbGFzcyBMck1lcmdlZE11dGF0aW9uPFQ+IGV4dGVuZHMgTHJNdXRhdGlvbkJhc2U8VD4ge1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY2VuZGFudHM6IFNldDxMck11dGF0aW9uQmFzZTxhbnk+PjtcbiAgcHJvdGVjdGVkIHByZWZpeGVzOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbHJNdXRhdGlvbnM6IExyTXV0YXRpb25CYXNlPGFueT5bXSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBjb25zdCB7IG11dGF0aW9uLCB2YXJpYWJsZXMsIHByZWZpeGVzIH0gPSB0aGlzLm1lcmdlKCk7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG11dGF0aW9uO1xuICAgIHRoaXMudmFyaWFibGVzID0gdmFyaWFibGVzO1xuICAgIHRoaXMucHJlZml4ZXMgPSBwcmVmaXhlcztcbiAgICB0aGlzLmRlc2NlbmRhbnRzID0gdGhpcy5nZXREZXNjZW5kYW50cygpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZTxUMSwgVDI+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uQmFzZTxUMT4gfCBMck1lcmdlZE11dGF0aW9uPFQxPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQyPiB8IExyTWVyZ2VkTXV0YXRpb248VDI+XG4gICAgXVxuICApOiBMck1lcmdlZE11dGF0aW9uPFtUMSwgVDJdPjtcblxuICBzdGF0aWMgY3JlYXRlPFQxLCBUMiwgVDM+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uQmFzZTxUMT4gfCBMck1lcmdlZE11dGF0aW9uPFQxPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQyPiB8IExyTWVyZ2VkTXV0YXRpb248VDI+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDM+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMz5cbiAgICBdXG4gICk6IExyTWVyZ2VkTXV0YXRpb248W1QxLCBUMiwgVDNdPjtcblxuICBzdGF0aWMgY3JlYXRlPFQxLCBUMiwgVDMsIFQ0PihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbkJhc2U8VDE+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMT4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUMj4gfCBMck1lcmdlZE11dGF0aW9uPFQyPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQzPiB8IExyTWVyZ2VkTXV0YXRpb248VDM+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDQ+IHwgTHJNZXJnZWRNdXRhdGlvbjxUND5cbiAgICBdXG4gICk6IExyTWVyZ2VkTXV0YXRpb248W1QxLCBUMiwgVDMsIFQ0XT47XG5cbiAgc3RhdGljIGNyZWF0ZTxUMSwgVDIsIFQzLCBUNCwgVDU+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uQmFzZTxUMT4gfCBMck1lcmdlZE11dGF0aW9uPFQxPixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQyPiB8IExyTWVyZ2VkTXV0YXRpb248VDI+LFxuICAgICAgTHJNdXRhdGlvbkJhc2U8VDM+IHwgTHJNZXJnZWRNdXRhdGlvbjxUMz4sXG4gICAgICBMck11dGF0aW9uQmFzZTxUND4gfCBMck1lcmdlZE11dGF0aW9uPFQ0PixcbiAgICAgIExyTXV0YXRpb25CYXNlPFQ1PiB8IExyTWVyZ2VkTXV0YXRpb248VDU+XG4gICAgXVxuICApOiBMck1lcmdlZE11dGF0aW9uPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcblxuICBzdGF0aWMgY3JlYXRlPFQ+KGxyTXV0YXRpb25zOiBMck11dGF0aW9uQmFzZTxUPltdKTogTHJNZXJnZWRNdXRhdGlvbjxUW10+O1xuXG4gIHN0YXRpYyBjcmVhdGUobHJNdXRhdGlvbnM6IExyTXV0YXRpb25CYXNlPGFueT5bXSk6IExyTWVyZ2VkTXV0YXRpb248YW55W10+O1xuXG4gIHN0YXRpYyBjcmVhdGUobHJNdXRhdGlvbnM6IExyTXV0YXRpb25CYXNlPGFueT5bXSkge1xuICAgIHJldHVybiBuZXcgTHJNZXJnZWRNdXRhdGlvbihsck11dGF0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGdldERlc2NlbmRhbnRzKCkge1xuICAgIGNvbnN0IHJldCA9IG5ldyBTZXQ8THJNdXRhdGlvbkJhc2U8YW55Pj4oKTtcblxuICAgIGNvbnN0IGFkZE9yVGhyb3cgPSAoaXRlbSkgPT4ge1xuICAgICAgaWYgKHJldC5oYXMoaXRlbSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IExyQmFkTG9naWNFeGNlcHRpb24oXG4gICAgICAgICAgJ0NsYXNzZXMgdGhhdCBhcmUgZGVyaXZlZCBmcm9tIExyTXV0YXRpb25CYXNlIGNhbiBub3QgYmUgdXNlZCBtb3JlIHRoYW4gb25jZSBpbiBhIG1lcmdlZCBtdXRhdGlvbi4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldC5hZGQoaXRlbSk7XG4gICAgfTtcblxuICAgIHRoaXMubHJNdXRhdGlvbnMuZm9yRWFjaCgobHJNdXRhdGlvbikgPT4ge1xuICAgICAgaWYgKGxyTXV0YXRpb24gaW5zdGFuY2VvZiBMck11dGF0aW9uKSB7XG4gICAgICAgIGFkZE9yVGhyb3cobHJNdXRhdGlvbik7XG4gICAgICB9IGVsc2UgaWYgKGxyTXV0YXRpb24gaW5zdGFuY2VvZiBMck1lcmdlZE11dGF0aW9uKSB7XG4gICAgICAgIGxyTXV0YXRpb24uZGVzY2VuZGFudHMuZm9yRWFjaCgodCkgPT4gYWRkT3JUaHJvdyh0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgTHJVbnN1cHBvcnRlZEV4Y2VwdGlvbihcbiAgICAgICAgICBgTHJNZXJnZU11dGF0aW9uIGNhbiBub3QgaGFuZGxlIGNsYXNzOiAke2xyTXV0YXRpb24uY29uc3RydWN0b3IubmFtZX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcmVzb2x2ZSh2YWx1ZTogYW55KSB7XG4gICAgLy8gUmVzb2x2ZXMgYW55IHByb21pc2VzIHdhaXRpbmcgZm9yIHRoZSBjaGlsZCBtdXRhdGlvbnNcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubHJNdXRhdGlvbnMubGVuZ3RoOyArK2kpIHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMucHJlZml4ZXNbaV07XG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgcHJlZml4IGFuZCByZXNvbHZlIGNoaWxkIG11dGF0aW9uLlxuICAgICAgY29uc3QgcmVzOiBhbnkgPSB7fTtcbiAgICAgIGZvciAoY29uc3Qga2V5MiBpbiB2YWx1ZSkge1xuICAgICAgICBpZiAoa2V5Mi5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbEtleSA9IGtleTIuc2xpY2UocHJlZml4Lmxlbmd0aCk7XG4gICAgICAgICAgcmVzW29yaWdpbmFsS2V5XSA9IHZhbHVlW2tleTJdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmxyTXV0YXRpb25zW2ldLnJlc29sdmUocmVzKTtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlcyB0byB0aGUgcmVzdWx0IG9mIGNoaWxkcmVuXG4gICAgUHJvbWlzZS5hbGwodGhpcy5sck11dGF0aW9ucy5tYXAoKG0pID0+IG0ucHJvbWlzZSkpLnRoZW4oXG4gICAgICAoY2hpbGRWYWx1ZXM6IGFueSkgPT4ge1xuICAgICAgICAvLyBSZXNvbHZlcyBhbnkgcHJvbWlzZXMgd2FpdGluZyBmb3IgdGhlIGN1cnJlbnQgbWVyZ2VkIG11dGF0aW9uXG4gICAgICAgIHN1cGVyLnJlc29sdmUoY2hpbGRWYWx1ZXMpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICByZWplY3QocmVhc29uPzogYW55KSB7XG4gICAgc3VwZXIucmVqZWN0KHJlYXNvbik7XG4gICAgdGhpcy5sck11dGF0aW9ucy5mb3JFYWNoKChsck11dGF0aW9uKSA9PiBsck11dGF0aW9uLnJlamVjdChyZWFzb24pKTtcbiAgfVxuXG4gIHNldEV4ZWN1dGVkKCkge1xuICAgIHN1cGVyLnNldEV4ZWN1dGVkKCk7XG4gICAgdGhpcy5sck11dGF0aW9ucy5mb3JFYWNoKChsck11dGF0aW9uKSA9PiBsck11dGF0aW9uLnNldEV4ZWN1dGVkKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5hbWVWYXJpYWJsZURlZmluaXRpb24odmFyRGVmOiBWYXJpYWJsZURlZmluaXRpb25Ob2RlLCBwcmVmaXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udmFyRGVmLFxuICAgICAgdmFyaWFibGU6IHtcbiAgICAgICAgLi4udmFyRGVmLnZhcmlhYmxlLFxuICAgICAgICBuYW1lOiBhc3QubmFtZShwcmVmaXggKyB2YXJEZWYudmFyaWFibGUubmFtZS52YWx1ZSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbmFtZVZhcmlhYmxlRGVmaW5pdGlvbnMoXG4gICAgdmFyRGVmczogUmVhZG9ubHlBcnJheTxWYXJpYWJsZURlZmluaXRpb25Ob2RlPixcbiAgICBwcmVmaXhcbiAgKSB7XG4gICAgcmV0dXJuIHZhckRlZnMubWFwKCh2YXJEZWYpID0+XG4gICAgICB0aGlzLnJlbmFtZVZhcmlhYmxlRGVmaW5pdGlvbih2YXJEZWYsIHByZWZpeClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5hbWVBcmd1bWVudChhcmc6IEFyZ3VtZW50Tm9kZSwgcHJlZml4KSB7XG4gICAgaWYgKGFyZy52YWx1ZS5raW5kICE9PSAnVmFyaWFibGUnKSB7XG4gICAgICByZXR1cm4gYXJnO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5hcmcsXG4gICAgICB2YWx1ZToge1xuICAgICAgICAuLi5hcmcudmFsdWUsXG4gICAgICAgIG5hbWU6IGFzdC5uYW1lKHByZWZpeCArIGFyZy52YWx1ZS5uYW1lLnZhbHVlKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lRmllbGQoc2VsZWN0aW9uOiBGaWVsZE5vZGUsIHByZWZpeCk6IEZpZWxkTm9kZSB7XG4gICAgLy8gT25seSBoYW5kbGluZyB0eXBlIEZpZWxkXG4gICAgaWYgKHNlbGVjdGlvbi5raW5kICE9PSAnRmllbGQnKSB7XG4gICAgICByZXR1cm4gc2VsZWN0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGFsaWFzID0gcHJlZml4ICsgZ2V0QWxpYXNPck5hbWUoc2VsZWN0aW9uKTtcbiAgICBjb25zdCBhcmdzID0gc2VsZWN0aW9uLmFyZ3VtZW50cy5tYXAoKGFyZykgPT5cbiAgICAgIHRoaXMucmVuYW1lQXJndW1lbnQoYXJnLCBwcmVmaXgpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zZWxlY3Rpb24sXG4gICAgICBhbGlhczoge1xuICAgICAgICBraW5kOiAnTmFtZScsXG4gICAgICAgIHZhbHVlOiBhbGlhcyxcbiAgICAgIH0sXG4gICAgICBhcmd1bWVudHM6IGFyZ3MsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lRnJhZ21lbnRTcHJlYWQoXG4gICAgc2VsZWN0aW9uOiBGcmFnbWVudFNwcmVhZE5vZGUsXG4gICAgcHJlZml4XG4gICk6IEZyYWdtZW50U3ByZWFkTm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNlbGVjdGlvbixcbiAgICAgIG5hbWU6IGFzdC5uYW1lKHByZWZpeCArIHNlbGVjdGlvbi5uYW1lLnZhbHVlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzU2VsZWN0aW9uKHNlbGVjdGlvbjogU2VsZWN0aW9uTm9kZSwgcHJlZml4KTogU2VsZWN0aW9uTm9kZSB7XG4gICAgc3dpdGNoIChzZWxlY3Rpb24ua2luZCkge1xuICAgICAgY2FzZSAnRnJhZ21lbnRTcHJlYWQnOlxuICAgICAgICByZXR1cm4gdGhpcy5yZW5hbWVGcmFnbWVudFNwcmVhZChzZWxlY3Rpb24sIHByZWZpeCk7XG4gICAgICBjYXNlICdGaWVsZCc6XG4gICAgICAgIC8vIENvbnRpbnVlIHRvIHByb2Nlc3MgY2hpbGRyZW4gZm9yIG5lc3RlZCBzZWxlY3Rpb25zLlxuICAgICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvblNldCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zZWxlY3Rpb24sXG4gICAgICAgICAgICBzZWxlY3Rpb25TZXQ6IHRoaXMucHJvY2Vzc1NlbGVjdGlvblNldChcbiAgICAgICAgICAgICAgc2VsZWN0aW9uLnNlbGVjdGlvblNldCxcbiAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICApLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NTZWxlY3Rpb25TZXQoXG4gICAgc2VsZWN0aW9uU2V0OiBTZWxlY3Rpb25TZXROb2RlLFxuICAgIHByZWZpeFxuICApOiBTZWxlY3Rpb25TZXROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2VsZWN0aW9uU2V0LFxuICAgICAgc2VsZWN0aW9uczogc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMubWFwKChzZWxlY3Rpb24pID0+XG4gICAgICAgIHRoaXMucHJvY2Vzc1NlbGVjdGlvbihzZWxlY3Rpb24sIHByZWZpeClcbiAgICAgICksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lU2VsZWN0aW9ucyhcbiAgICBzZWxlY3Rpb25zOiBSZWFkb25seUFycmF5PFNlbGVjdGlvbk5vZGU+LFxuICAgIHByZWZpeFxuICApOiBTZWxlY3Rpb25Ob2RlW10ge1xuICAgIHJldHVybiBzZWxlY3Rpb25zLm1hcCgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICBzd2l0Y2ggKHNlbGVjdGlvbi5raW5kKSB7XG4gICAgICAgIGNhc2UgJ0ZpZWxkJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU2VsZWN0aW9uKFxuICAgICAgICAgICAgdGhpcy5yZW5hbWVGaWVsZChzZWxlY3Rpb24sIHByZWZpeCksXG4gICAgICAgICAgICBwcmVmaXhcbiAgICAgICAgICApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBzZWxlY3Rpb247XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmFtZUZyYWdtZW50RGVmaW5pdGlvbihmcmFnbWVudDogRnJhZ21lbnREZWZpbml0aW9uTm9kZSwgcHJlZml4KSB7XG4gICAgY29uc3QgcmV0ID0ge1xuICAgICAgLi4uZnJhZ21lbnQsXG4gICAgICBuYW1lOiBhc3QubmFtZShwcmVmaXggKyBmcmFnbWVudC5uYW1lLnZhbHVlKSxcbiAgICB9O1xuXG4gICAgaWYgKGZyYWdtZW50LnNlbGVjdGlvblNldCkge1xuICAgICAgcmV0LnNlbGVjdGlvblNldCA9IHRoaXMucHJvY2Vzc1NlbGVjdGlvblNldChcbiAgICAgICAgZnJhZ21lbnQuc2VsZWN0aW9uU2V0LFxuICAgICAgICBwcmVmaXhcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lRnJhZ21lbnREZWZpbml0aW9ucyhcbiAgICBmcmFnbWVudHM6IEZyYWdtZW50RGVmaW5pdGlvbk5vZGVbXSxcbiAgICBwcmVmaXhcbiAgKSB7XG4gICAgcmV0dXJuIGZyYWdtZW50cy5tYXAoKGZyYWdtZW50KSA9PlxuICAgICAgdGhpcy5yZW5hbWVGcmFnbWVudERlZmluaXRpb24oZnJhZ21lbnQsIHByZWZpeClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZSgpIHtcbiAgICBsZXQgdmFyaWFibGVEZWZpbml0aW9uczogVmFyaWFibGVEZWZpbml0aW9uTm9kZVtdID0gW107XG4gICAgbGV0IHNlbGVjdGlvbnM6IFNlbGVjdGlvbk5vZGVbXSA9IFtdO1xuICAgIGNvbnN0IG1lcmdlZFZhcmlhYmxlcyA9IHt9O1xuICAgIGxldCBtZXJnZWRGcmFnbWVudHM6IEZyYWdtZW50RGVmaW5pdGlvbk5vZGVbXSA9IFtdO1xuXG4gICAgY29uc3QgcHJlZml4ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBKdXN0IHdhaXQgZm9yIGV2ZXJ5dGhpbmcgdG8gcmVzb2x2ZSBiZWNhdXNlIHdlIGhhdmUgdG9cbiAgICAvLyBtZXJnZSB0aGUgZG9jIHN5bmNocm9ub3VzbHkuXG4gICAgdGhpcy5sck11dGF0aW9ucy5mb3JFYWNoKChsck11dGF0aW9uLCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IHsgbXV0YXRpb24sIHZhcmlhYmxlcyB9ID0gbHJNdXRhdGlvbi5sck11dGF0aW9uRGF0YTtcblxuICAgICAgY29uc3QgY2hpbGRNdXRhdGlvbk5vZGUgPSBnZXRNdXRhdGlvbihtdXRhdGlvbik7XG5cbiAgICAgIC8vIFByZWZpeGluZyBhbGwgbXV0YXRpb24gZmllbGRzIHNvIHRoZXkgZG9uJ3QgY29uZmxpY3QuXG4gICAgICBsZXQgcHJlZml4ID0gYGl0ZW0ke2lkeH1fYDtcbiAgICAgIGlmIChjaGlsZE11dGF0aW9uTm9kZS5uYW1lKSB7XG4gICAgICAgIHByZWZpeCArPSBjaGlsZE11dGF0aW9uTm9kZS5uYW1lLnZhbHVlICsgJ18nO1xuICAgICAgfVxuXG4gICAgICBwcmVmaXhlcy5wdXNoKHByZWZpeCk7XG5cbiAgICAgIC8vIFJlbmFtZSBhbmQgbWVyZ2UgdmFyaWFibGVzXG4gICAgICB2YXJpYWJsZURlZmluaXRpb25zID0gW1xuICAgICAgICAuLi52YXJpYWJsZURlZmluaXRpb25zLFxuICAgICAgICAuLi50aGlzLnJlbmFtZVZhcmlhYmxlRGVmaW5pdGlvbnMoXG4gICAgICAgICAgY2hpbGRNdXRhdGlvbk5vZGUudmFyaWFibGVEZWZpbml0aW9ucyxcbiAgICAgICAgICBwcmVmaXhcbiAgICAgICAgKSxcbiAgICAgIF07XG5cbiAgICAgIC8vIFJlbmFtZSBhbmQgbWVyZ2Ugc2VsZWN0aW9uc1xuICAgICAgc2VsZWN0aW9ucyA9IFtcbiAgICAgICAgLi4uc2VsZWN0aW9ucyxcbiAgICAgICAgLi4udGhpcy5yZW5hbWVTZWxlY3Rpb25zKFxuICAgICAgICAgIGNoaWxkTXV0YXRpb25Ob2RlLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zLFxuICAgICAgICAgIHByZWZpeFxuICAgICAgICApLFxuICAgICAgXTtcblxuICAgICAgLy8gUmVuYW1lIGFuZCBtZXJnZSB2YXJpYWJsZXNcbiAgICAgIGZvciAoY29uc3Qga2V5MiBvZiBPYmplY3Qua2V5cyh2YXJpYWJsZXMpKSB7XG4gICAgICAgIG1lcmdlZFZhcmlhYmxlc1twcmVmaXggKyBrZXkyXSA9IHZhcmlhYmxlc1trZXkyXTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVuYW1lIGFuZCBtZXJnZSBmcmFnbWVudHNcbiAgICAgIGNvbnN0IGZyYWdtZW50cyA9IGdldEZyYWdtZW50cyhtdXRhdGlvbik7XG4gICAgICBtZXJnZWRGcmFnbWVudHMgPSBbXG4gICAgICAgIC4uLm1lcmdlZEZyYWdtZW50cyxcbiAgICAgICAgLi4udGhpcy5yZW5hbWVGcmFnbWVudERlZmluaXRpb25zKGZyYWdtZW50cywgcHJlZml4KSxcbiAgICAgIF07XG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRNdXRhdGlvbjogRG9jdW1lbnROb2RlID0gbG9kYXNoLmNsb25lRGVlcChsck1lcmdlZE11dGF0aW9uRG9jKTtcbiAgICBjb25zdCBtdXRhdGlvbk5vZGUgPSBnZXRNdXRhdGlvbihtZXJnZWRNdXRhdGlvbik7XG4gICAgLy8gQWRkIGluIHRoZSBtdXRhdGlvbiBzZWxlY3Rpb25zXG4gICAgbXV0YXRpb25Ob2RlLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gc2VsZWN0aW9ucztcbiAgICAvLyBBZGQgaW4gdGhlIHZhcmlhYmxlc1xuICAgIC8vIHZhcmlhYmxlRGVmaW5pdGlvbnMgaXMgcmVhZG9ubHkgcHJvcGVydHkuXG4gICAgKG11dGF0aW9uTm9kZSBhcyBhbnkpLnZhcmlhYmxlRGVmaW5pdGlvbnMgPSB2YXJpYWJsZURlZmluaXRpb25zO1xuICAgIC8vIEFkZCBpbiB0aGUgZnJhZ21lbnRzXG4gICAgKG1lcmdlZE11dGF0aW9uIGFzIGFueSkuZGVmaW5pdGlvbnMgPSBbXG4gICAgICAuLi5tZXJnZWRNdXRhdGlvbi5kZWZpbml0aW9ucyxcbiAgICAgIC4uLm1lcmdlZEZyYWdtZW50cyxcbiAgICBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG11dGF0aW9uOiBtZXJnZWRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogbWVyZ2VkVmFyaWFibGVzLFxuICAgICAgcHJlZml4ZXMsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -8,6 +8,47 @@ export class LrMutation extends LrMutationBase {
8
8
  this.mutation = options.mutation;
9
9
  this.variables = options.variables;
10
10
  }
11
+ /**
12
+ * Select a different set of fields from the mutation. Example usage:
13
+ *
14
+ * interface CreateDirectoryMutationResult {
15
+ * createDirectory: {
16
+ * directory: DirectoryNode;
17
+ * };
18
+ * };
19
+ *
20
+ * const CreateDirectoryMutation = gqlTyped<CreateDirectoryMutationResult>`
21
+ * mutation CreateDirectoryMutation(...) {
22
+ * createDirectory(...) {
23
+ * directory {
24
+ * id
25
+ * }
26
+ * }
27
+ * }
28
+ * `
29
+ * interface CreateDirectoryFragmentResult {
30
+ * createDirectory: {
31
+ * directory: DirectoryNode;
32
+ * };
33
+ * };
34
+ *
35
+ * const CreateDirectoryFragment = gqlTyped<CreateDirectoryFragmentResult>`
36
+ * // Note that the string 'createDirectory' can not be changed.
37
+ * // It must match with the mutation field above.
38
+ * // The 'CreateDirectoryPayload' is the return type of the mutation.
39
+ * fragment createDirectory on CreateDirectoryPayload {
40
+ * directory {
41
+ * plainMeta
42
+ * }
43
+ * }
44
+ * `
45
+ * lrGraphQLService.lrMutate({
46
+ * mutation: CreateDirectoryMutation
47
+ * }).select(CreateDirectoryFragment).createDirectory.directory.plainMeta.
48
+ *
49
+ * @param fragments
50
+ * @returns
51
+ */
11
52
  select(fragments) {
12
53
  // Don't touch the original
13
54
  const mutationDoc = lodash.cloneDeep(this.mutation);
@@ -45,4 +86,4 @@ export class LrMutation extends LrMutationBase {
45
86
  });
46
87
  }
47
88
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItbXV0YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXBpL2xyLWdyYXBocWwvbHItbXV0YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxLQUFLLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLFlBQVksRUFDWixXQUFXLEdBRVosTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLGNBQWMsR0FFZixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE1BQU0sT0FBTyxVQUdYLFNBQVEsY0FBNkI7SUFDckMsWUFBWSxPQUFzQztRQUNoRCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sQ0FBVSxTQUFxQztRQUNuRCwyQkFBMkI7UUFDM0IsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFpQixDQUFDO1FBQ3BFLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5QyxNQUFNLFdBQVcsR0FBRyxFQUErQyxDQUFDO1FBQ3BFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFnQyxFQUFFLEVBQUU7WUFDbkUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFNBQW9CLEVBQUUsRUFBRTtZQUNyRCxNQUFNLEtBQUssR0FBRyxTQUFzQixDQUFDO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFeEMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDYixPQUFPO2FBQ1I7WUFFRCx3REFBd0Q7WUFDeEQsd0RBQXdEO1lBQ3hELHFEQUFxRDtZQUNyRCxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRztnREFFekIsMEJBQTBCLEtBQzdCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUU1QixDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUYsWUFBWSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDekQsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtnQkFDOUIscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDbEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxVQUFVLENBQUM7WUFDcEIsUUFBUSxFQUFFLGdDQUNMLFdBQVcsS0FDZCxXQUFXLEVBQUU7b0JBQ1gsZ0NBQWdDO29CQUNoQyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUMvQixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FDM0M7b0JBQ0QsR0FBRyxTQUFTLENBQUMsV0FBVztpQkFDekIsR0FDNEI7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IE9wZXJhdGlvblZhcmlhYmxlcyB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnROb2RlLCBGaWVsZE5vZGUsIEZyYWdtZW50RGVmaW5pdGlvbk5vZGUgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCAqIGFzIGxvZGFzaCBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgYXN0IGZyb20gJy4uLy4uL19jb21tb24vYXN0JztcbmltcG9ydCB7XG4gIGdldEFsaWFzT3JOYW1lLFxuICBnZXRGcmFnbWVudHMsXG4gIGdldE11dGF0aW9uLFxuICBUeXBlZERvY3VtZW50Tm9kZSxcbn0gZnJvbSAnLi4vLi4vX2NvbW1vbi9hc3QnO1xuaW1wb3J0IHtcbiAgZnJhZ21lbnRTcHJlYWRBc3RTZWxlY3Rpb24sXG4gIExyTXV0YXRpb25CYXNlLFxuICBMck11dGF0aW9uRGF0YSxcbn0gZnJvbSAnLi9sci1tdXRhdGlvbi1iYXNlJztcblxuZXhwb3J0IGNsYXNzIExyTXV0YXRpb248XG4gIFQgZXh0ZW5kcyBhbnksXG4gIFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXNcbj4gZXh0ZW5kcyBMck11dGF0aW9uQmFzZTxULCBUVmFyaWFibGVzPiB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExyTXV0YXRpb25EYXRhPFQsIFRWYXJpYWJsZXM+KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm11dGF0aW9uID0gb3B0aW9ucy5tdXRhdGlvbjtcbiAgICB0aGlzLnZhcmlhYmxlcyA9IG9wdGlvbnMudmFyaWFibGVzO1xuICB9XG5cbiAgc2VsZWN0PFRSZXN1bHQ+KGZyYWdtZW50czogVHlwZWREb2N1bWVudE5vZGU8VFJlc3VsdD4pIHtcbiAgICAvLyBEb24ndCB0b3VjaCB0aGUgb3JpZ2luYWxcbiAgICBjb25zdCBtdXRhdGlvbkRvYyA9IGxvZGFzaC5jbG9uZURlZXAodGhpcy5tdXRhdGlvbikgYXMgRG9jdW1lbnROb2RlO1xuICAgIGNvbnN0IG11dGF0aW9uTm9kZSA9IGdldE11dGF0aW9uKG11dGF0aW9uRG9jKTtcblxuICAgIGNvbnN0IGZyYWdtZW50TWFwID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBGcmFnbWVudERlZmluaXRpb25Ob2RlIH07XG4gICAgZ2V0RnJhZ21lbnRzKGZyYWdtZW50cykuZm9yRWFjaCgoZnJhZ21lbnQ6IEZyYWdtZW50RGVmaW5pdGlvbk5vZGUpID0+IHtcbiAgICAgIGZyYWdtZW50TWFwW2ZyYWdtZW50Lm5hbWUudmFsdWVdID0gZnJhZ21lbnQ7XG4gICAgfSk7XG5cbiAgICBjb25zdCByZXBsYWNlRmllbGRTZWxlY3Rpb24gPSAoc2VsZWN0aW9uOiBGaWVsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkID0gc2VsZWN0aW9uIGFzIEZpZWxkTm9kZTtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGdldEFsaWFzT3JOYW1lKGZpZWxkKTtcbiAgICAgIGNvbnN0IGZyYWdtZW50ID0gZnJhZ21lbnRNYXBbZmllbGROYW1lXTtcblxuICAgICAgaWYgKCFmcmFnbWVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIE1ha2UgdGhlIGVudGlyZSBzZWxlY3Rpb24gb2YgdGhlIG11dGF0aW9uIGEgc3ByZWFkIG9mXG4gICAgICAvLyBhIGZyYWdtZW50IHVzaW5nIHRoZSBzYW1lIG5hbWUgYXMgdGhlIG11dGF0aW9uIGZpZWxkLlxuICAgICAgLy8gV2Ugd2lsbCBhbHNvIHJlbmFtZSB0aGUgZnJhZ21lbnQgdG8gdGhlIHNhbWUgbmFtZS5cbiAgICAgIGZpZWxkLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgLi4uZnJhZ21lbnRTcHJlYWRBc3RTZWxlY3Rpb24sXG4gICAgICAgICAgbmFtZTogYXN0Lm5hbWUoZmllbGROYW1lKSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfTtcblxuICAgIG11dGF0aW9uTm9kZS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9ucy5mb3JFYWNoKChzZWxlY3Rpb24pID0+IHtcbiAgICAgIGlmIChzZWxlY3Rpb24ua2luZCA9PT0gJ0ZpZWxkJykge1xuICAgICAgICByZXBsYWNlRmllbGRTZWxlY3Rpb24oc2VsZWN0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjoge1xuICAgICAgICAuLi5tdXRhdGlvbkRvYyxcbiAgICAgICAgZGVmaW5pdGlvbnM6IFtcbiAgICAgICAgICAvLyBSZW1vdmUgYWxsIGV4aXN0aW5nIGZyYWdtZW50c1xuICAgICAgICAgIC4uLm11dGF0aW9uRG9jLmRlZmluaXRpb25zLmZpbHRlcihcbiAgICAgICAgICAgIChkZWYpID0+IGRlZi5raW5kICE9PSAnRnJhZ21lbnREZWZpbml0aW9uJ1xuICAgICAgICAgICksXG4gICAgICAgICAgLi4uZnJhZ21lbnRzLmRlZmluaXRpb25zLFxuICAgICAgICBdLFxuICAgICAgfSBhcyBUeXBlZERvY3VtZW50Tm9kZTxUUmVzdWx0PixcbiAgICAgIHZhcmlhYmxlczogdGhpcy52YXJpYWJsZXMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItbXV0YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXBpL2xyLWdyYXBocWwvbHItbXV0YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxLQUFLLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLFlBQVksRUFDWixXQUFXLEdBRVosTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLGNBQWMsR0FFZixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE1BQU0sT0FBTyxVQUdYLFNBQVEsY0FBNkI7SUFDckMsWUFBWSxPQUFzQztRQUNoRCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bd0NHO0lBQ0gsTUFBTSxDQUFVLFNBQXFDO1FBQ25ELDJCQUEyQjtRQUMzQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQWlCLENBQUM7UUFDcEUsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sV0FBVyxHQUFHLEVBQStDLENBQUM7UUFDcEUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWdDLEVBQUUsRUFBRTtZQUNuRSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsU0FBb0IsRUFBRSxFQUFFO1lBQ3JELE1BQU0sS0FBSyxHQUFHLFNBQXNCLENBQUM7WUFDckMsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV4QyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNiLE9BQU87YUFDUjtZQUVELHdEQUF3RDtZQUN4RCx3REFBd0Q7WUFDeEQscURBQXFEO1lBQ3JELEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHO2dEQUV6QiwwQkFBMEIsS0FDN0IsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBRTVCLENBQUM7UUFDSixDQUFDLENBQUM7UUFFRixZQUFZLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN6RCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUM5QixxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixRQUFRLEVBQUUsZ0NBQ0wsV0FBVyxLQUNkLFdBQVcsRUFBRTtvQkFDWCxnQ0FBZ0M7b0JBQ2hDLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQy9CLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUMzQztvQkFDRCxHQUFHLFNBQVMsQ0FBQyxXQUFXO2lCQUN6QixHQUM0QjtZQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgT3BlcmF0aW9uVmFyaWFibGVzIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudE5vZGUsIEZpZWxkTm9kZSwgRnJhZ21lbnREZWZpbml0aW9uTm9kZSB9IGZyb20gJ2dyYXBocWwnO1xuaW1wb3J0ICogYXMgbG9kYXNoIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgKiBhcyBhc3QgZnJvbSAnLi4vLi4vX2NvbW1vbi9hc3QnO1xuaW1wb3J0IHtcbiAgZ2V0QWxpYXNPck5hbWUsXG4gIGdldEZyYWdtZW50cyxcbiAgZ2V0TXV0YXRpb24sXG4gIFR5cGVkRG9jdW1lbnROb2RlLFxufSBmcm9tICcuLi8uLi9fY29tbW9uL2FzdCc7XG5pbXBvcnQge1xuICBmcmFnbWVudFNwcmVhZEFzdFNlbGVjdGlvbixcbiAgTHJNdXRhdGlvbkJhc2UsXG4gIExyTXV0YXRpb25EYXRhLFxufSBmcm9tICcuL2xyLW11dGF0aW9uLWJhc2UnO1xuXG5leHBvcnQgY2xhc3MgTHJNdXRhdGlvbjxcbiAgVCBleHRlbmRzIGFueSxcbiAgVFZhcmlhYmxlcyA9IE9wZXJhdGlvblZhcmlhYmxlc1xuPiBleHRlbmRzIExyTXV0YXRpb25CYXNlPFQsIFRWYXJpYWJsZXM+IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogTHJNdXRhdGlvbkRhdGE8VCwgVFZhcmlhYmxlcz4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubXV0YXRpb24gPSBvcHRpb25zLm11dGF0aW9uO1xuICAgIHRoaXMudmFyaWFibGVzID0gb3B0aW9ucy52YXJpYWJsZXM7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGEgZGlmZmVyZW50IHNldCBvZiBmaWVsZHMgZnJvbSB0aGUgbXV0YXRpb24uIEV4YW1wbGUgdXNhZ2U6XG4gICAqXG4gICAqIGludGVyZmFjZSBDcmVhdGVEaXJlY3RvcnlNdXRhdGlvblJlc3VsdCB7XG4gICAqICAgY3JlYXRlRGlyZWN0b3J5OiB7XG4gICAqICAgICBkaXJlY3Rvcnk6IERpcmVjdG9yeU5vZGU7XG4gICAqICAgfTtcbiAgICogfTtcbiAgICpcbiAgICogY29uc3QgQ3JlYXRlRGlyZWN0b3J5TXV0YXRpb24gPSBncWxUeXBlZDxDcmVhdGVEaXJlY3RvcnlNdXRhdGlvblJlc3VsdD5gXG4gICAqIG11dGF0aW9uIENyZWF0ZURpcmVjdG9yeU11dGF0aW9uKC4uLikge1xuICAgKiAgIGNyZWF0ZURpcmVjdG9yeSguLi4pIHtcbiAgICogICAgIGRpcmVjdG9yeSB7XG4gICAqICAgICAgIGlkXG4gICAqICAgICB9XG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBcbiAgICogaW50ZXJmYWNlIENyZWF0ZURpcmVjdG9yeUZyYWdtZW50UmVzdWx0IHtcbiAgICogICBjcmVhdGVEaXJlY3Rvcnk6IHtcbiAgICogICAgIGRpcmVjdG9yeTogRGlyZWN0b3J5Tm9kZTtcbiAgICogICB9O1xuICAgKiB9O1xuICAgKlxuICAgKiBjb25zdCBDcmVhdGVEaXJlY3RvcnlGcmFnbWVudCA9IGdxbFR5cGVkPENyZWF0ZURpcmVjdG9yeUZyYWdtZW50UmVzdWx0PmBcbiAgICogICAvLyBOb3RlIHRoYXQgdGhlIHN0cmluZyAnY3JlYXRlRGlyZWN0b3J5JyBjYW4gbm90IGJlIGNoYW5nZWQuXG4gICAqICAgLy8gSXQgbXVzdCBtYXRjaCB3aXRoIHRoZSBtdXRhdGlvbiBmaWVsZCBhYm92ZS5cbiAgICogICAvLyBUaGUgJ0NyZWF0ZURpcmVjdG9yeVBheWxvYWQnIGlzIHRoZSByZXR1cm4gdHlwZSBvZiB0aGUgbXV0YXRpb24uXG4gICAqICAgZnJhZ21lbnQgY3JlYXRlRGlyZWN0b3J5IG9uIENyZWF0ZURpcmVjdG9yeVBheWxvYWQge1xuICAgKiAgICAgZGlyZWN0b3J5IHtcbiAgICogICAgICAgcGxhaW5NZXRhXG4gICAqICAgICB9XG4gICAqICAgfVxuICAgKiBgXG4gICAqIGxyR3JhcGhRTFNlcnZpY2UubHJNdXRhdGUoe1xuICAgKiAgIG11dGF0aW9uOiBDcmVhdGVEaXJlY3RvcnlNdXRhdGlvblxuICAgKiB9KS5zZWxlY3QoQ3JlYXRlRGlyZWN0b3J5RnJhZ21lbnQpLmNyZWF0ZURpcmVjdG9yeS5kaXJlY3RvcnkucGxhaW5NZXRhLlxuICAgKlxuICAgKiBAcGFyYW0gZnJhZ21lbnRzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzZWxlY3Q8VFJlc3VsdD4oZnJhZ21lbnRzOiBUeXBlZERvY3VtZW50Tm9kZTxUUmVzdWx0Pikge1xuICAgIC8vIERvbid0IHRvdWNoIHRoZSBvcmlnaW5hbFxuICAgIGNvbnN0IG11dGF0aW9uRG9jID0gbG9kYXNoLmNsb25lRGVlcCh0aGlzLm11dGF0aW9uKSBhcyBEb2N1bWVudE5vZGU7XG4gICAgY29uc3QgbXV0YXRpb25Ob2RlID0gZ2V0TXV0YXRpb24obXV0YXRpb25Eb2MpO1xuXG4gICAgY29uc3QgZnJhZ21lbnRNYXAgPSB7fSBhcyB7IFtrZXk6IHN0cmluZ106IEZyYWdtZW50RGVmaW5pdGlvbk5vZGUgfTtcbiAgICBnZXRGcmFnbWVudHMoZnJhZ21lbnRzKS5mb3JFYWNoKChmcmFnbWVudDogRnJhZ21lbnREZWZpbml0aW9uTm9kZSkgPT4ge1xuICAgICAgZnJhZ21lbnRNYXBbZnJhZ21lbnQubmFtZS52YWx1ZV0gPSBmcmFnbWVudDtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlcGxhY2VGaWVsZFNlbGVjdGlvbiA9IChzZWxlY3Rpb246IEZpZWxkTm9kZSkgPT4ge1xuICAgICAgY29uc3QgZmllbGQgPSBzZWxlY3Rpb24gYXMgRmllbGROb2RlO1xuICAgICAgY29uc3QgZmllbGROYW1lID0gZ2V0QWxpYXNPck5hbWUoZmllbGQpO1xuICAgICAgY29uc3QgZnJhZ21lbnQgPSBmcmFnbWVudE1hcFtmaWVsZE5hbWVdO1xuXG4gICAgICBpZiAoIWZyYWdtZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gTWFrZSB0aGUgZW50aXJlIHNlbGVjdGlvbiBvZiB0aGUgbXV0YXRpb24gYSBzcHJlYWQgb2ZcbiAgICAgIC8vIGEgZnJhZ21lbnQgdXNpbmcgdGhlIHNhbWUgbmFtZSBhcyB0aGUgbXV0YXRpb24gZmllbGQuXG4gICAgICAvLyBXZSB3aWxsIGFsc28gcmVuYW1lIHRoZSBmcmFnbWVudCB0byB0aGUgc2FtZSBuYW1lLlxuICAgICAgZmllbGQuc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5mcmFnbWVudFNwcmVhZEFzdFNlbGVjdGlvbixcbiAgICAgICAgICBuYW1lOiBhc3QubmFtZShmaWVsZE5hbWUpLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9O1xuXG4gICAgbXV0YXRpb25Ob2RlLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zLmZvckVhY2goKHNlbGVjdGlvbikgPT4ge1xuICAgICAgaWYgKHNlbGVjdGlvbi5raW5kID09PSAnRmllbGQnKSB7XG4gICAgICAgIHJlcGxhY2VGaWVsZFNlbGVjdGlvbihzZWxlY3Rpb24pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiB7XG4gICAgICAgIC4uLm11dGF0aW9uRG9jLFxuICAgICAgICBkZWZpbml0aW9uczogW1xuICAgICAgICAgIC8vIFJlbW92ZSBhbGwgZXhpc3RpbmcgZnJhZ21lbnRzXG4gICAgICAgICAgLi4ubXV0YXRpb25Eb2MuZGVmaW5pdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGRlZikgPT4gZGVmLmtpbmQgIT09ICdGcmFnbWVudERlZmluaXRpb24nXG4gICAgICAgICAgKSxcbiAgICAgICAgICAuLi5mcmFnbWVudHMuZGVmaW5pdGlvbnMsXG4gICAgICAgIF0sXG4gICAgICB9IGFzIFR5cGVkRG9jdW1lbnROb2RlPFRSZXN1bHQ+LFxuICAgICAgdmFyaWFibGVzOiB0aGlzLnZhcmlhYmxlcyxcbiAgICB9KTtcbiAgfVxufVxuIl19