'); } var target = obj.target; if (target) if (target.substring(0, 1) != '.' && target.substring(0, 1) != '#') target = '#' + target; if (obj.reset == "true") { if (id) document.getElementById(id).reset(); $().find('input').not(':button, :submit, :reset, :hidden').val('').removeAttr('checked').removeAttr('selected'); $().find('textarea').val(''); } if (obj.message && obj.title) { // $.dialog.showAlert(obj.message, 'info', obj.title, timeout); Nid.Notify(obj.message, obj.title, 'info', timeout); } if (target && $(target).length > 0) { if (obj.result) { if (obj.resultAddType == 'replace') { $(target).html(obj.result); } else if (obj.resultAddType == 'prepend') { $(target).prepend(obj.result); } else { $(target).append(obj.result); } } else if (obj.redirect) { Nid.get(obj.redirect, { mask: target, target: target }); } } else if (obj.redirect) { Nid.get(obj.redirect, { mask: '#container', target: 'container' }); //commented for asiadl // window.location = obj.redirect; } Nid.forms[id].disable = false; setTimeout("$.dialog.hide()", 3000); } else if (obj.javascript) { $('#javacode').append(''); Nid.forms[id].disable = false; } else if (obj.message) { Nid.forms[id].disable = false; // $.dialog.showAlert(obj.message, 'error', obj.title); Nid.Notify(obj.message, obj.title, 'error'); } else if (obj.showform) { // $.dialog.showAlert(obj.data, 'noicon', obj.title); Nid.Notify(obj.data, obj.title, 'noicon'); submitFlag = 0; if (obj.formajaxSubmit) $("#" + obj.showform).ajaxSubmit(); Nid.forms[id].disable = false; } else if (obj.showpanel) { showPanel(obj.showpanel, obj.panelid, obj.showhide); Nid.forms[id].disable = false; } else { Nid.forms[id].disable = false; var hasError = false; for (r in obj) { var err_list = ""; for (err in obj[r]) { hasError = true; err_list += '

' + obj[r][err] + '

'; } // console.log([r, err_list, '#' + id + ' #err' + r]); $('#' + id + ' .error-div.error-div-' + r).html(err_list); $('#' + id + ' #err' + r).fadeIn(); submitFlag = 0; } if (hasError) { Nid.Notify(__('There was error in form fields. Please chaeck them.'), __('Error in form fields'), 'error'); } if (obj.captcha) { $('#' + id + ' #' + obj.captcha.field).attr('src', Nid.baseUrl + '/img/captcha/' + obj.captcha.id + '.png'); $('#' + id + ' #' + obj.captcha.field + '-id').attr('value', obj.captcha.id); $('#' + id + ' #' + obj.captcha.field + '-input').val(''); } } }; $.ajax({ url: $(self).attr("action"), type: 'POST', dataType: 'json', data: formData, cache: false, contentType: false, processData: false }).done(successFunction).fail(function (obj) { if (onFailFunction) { onFailFunction(obj); return; } if (_typeof(obj) == 'object' && _typeof(obj.responseJSON) == 'object') { if (obj.responseJSON.message && obj.responseJSON.title) { // $.dialog.showAlert(obj.responseJSON.message, 'error', obj.responseJSON.title); Nid.Notify(obj.responseJSON.message, obj.responseJSON.title, 'error'); } else if (obj.responseJSON.title) { // $.dialog.showAlert(obj.responseJSON.title, 'error'); Nid.Notify(obj.responseJSON.title, null, 'error'); } } }).always(function () { Nid.forms[id].disable = false; Nid.loading.hide(); if (clickedbtn.length) { clickedbtn.css('background-image', ''); clickedbtn.css('background-repeat', ''); clickedbtn.css('background-position', ''); clickedbtn.css('padding-right', ''); } }); return false; }); return _this3; } return BaseFormClass; }(React.Component); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImh0dHBzOi8vYXNpYWRsLmlyL2pzLXNyYy9yZWFjdC9iYXNlY2xhc3Nlcy5qcyJdLCJuYW1lcyI6WyJCYXNlTGlrZUJ1dHRvbkNsYXNzIiwicHJvcHMiLCJzZXRTdGF0ZSIsImlzTG9hZGVkIiwiZmV0Y2giLCJOaWQiLCJiYXNlVXJsIiwiY29udHJvbGxlciIsImlkIiwidGhlbiIsInJlcyIsImpzb24iLCJyZXN1bHQiLCJzdWNjZXNzIiwiTm90aWZ5IiwibWVzc2FnZSIsIl9fIiwiYWRkUmVtb3ZlIiwibGlrZWQiLCJlcnJvciIsInN0YXRlIiwiaXNmYXZvcml0IiwiaXRlbXMiLCJpY29uIiwiYnRuQ2xpY2siLCJSZWFjdCIsIkNvbXBvbmVudCIsIkJhc2VMaWtlRGlzbGlrZUNsYXNzIiwiaXNMaWtlZERpc2xpa2VkIiwiTGlrZWREaXNsaWtlZCIsImxpa2VkZGlzbGlrZWQiLCJpc2xpa2VkZGlzbGlrZWQiLCJsaWtlRGlzbGlrZUNvbnRlbnQiLCJoNSIsImJ0bjEiLCJidG5MaWtlZENsaWNrIiwiYnRuMiIsImJ0bkRpc2xpa2VkQ2xpY2siLCJCYXNlRm9ybUNsYXNzIiwiZXZlbnQiLCJzZWxmIiwib25TdWNjZXNzRnVuY3Rpb24iLCJvbkZhaWxGdW5jdGlvbiIsInByZXZlbnREZWZhdWx0IiwiY2xpY2tlZGJ0biIsIiQiLCJmaW5kIiwibGVuZ3RoIiwiY3NzIiwiZ2V0TGluayIsImxvYWRpbmciLCJzaG93IiwiYXR0ciIsImZvcm1zIiwiZGlzYWJsZSIsImZpbHRlciIsImhpZGUiLCJDS0VESVRPUiIsImluc3RhbmNlIiwiaW5zdGFuY2VzIiwidXBkYXRlRWxlbWVudCIsImVhY2giLCJpbmRleCIsInZhbCIsImZhbmN5dHJlZSIsImdlbmVyYXRlRm9ybUVsZW1lbnRzIiwiaHRtbCIsImZvcm1EYXRhIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJzdWNjZXNzRnVuY3Rpb24iLCJvYmoiLCJ0aW1lb3V0Iiwic3RhdHVzIiwiamF2YXNjcmlwdCIsInRhcmdldCIsInN1YnN0cmluZyIsInJlc2V0IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsIm5vdCIsInJlbW92ZUF0dHIiLCJ0aXRsZSIsInJlc3VsdEFkZFR5cGUiLCJwcmVwZW5kIiwicmVkaXJlY3QiLCJnZXQiLCJtYXNrIiwic2V0VGltZW91dCIsInNob3dmb3JtIiwiZGF0YSIsInN1Ym1pdEZsYWciLCJmb3JtYWpheFN1Ym1pdCIsImFqYXhTdWJtaXQiLCJzaG93cGFuZWwiLCJzaG93UGFuZWwiLCJwYW5lbGlkIiwic2hvd2hpZGUiLCJoYXNFcnJvciIsInIiLCJlcnJfbGlzdCIsImVyciIsImZhZGVJbiIsImNhcHRjaGEiLCJmaWVsZCIsImFqYXgiLCJ1cmwiLCJ0eXBlIiwiZGF0YVR5cGUiLCJjYWNoZSIsImNvbnRlbnRUeXBlIiwicHJvY2Vzc0RhdGEiLCJkb25lIiwiZmFpbCIsInJlc3BvbnNlSlNPTiIsImFsd2F5cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFNQSxtQjs7Ozs7QUFDRiwrQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBOztBQUNmLDhCQUFNQSxLQUFOOztBQURlLCtEQVVSLFlBQU07QUFDYixZQUFLQyxRQUFMLENBQWM7QUFBQ0MsUUFBQUEsUUFBUSxFQUFFO0FBQVgsT0FBZDs7QUFDQUMsTUFBQUEsS0FBSyxDQUFDQyxHQUFHLENBQUNDLE9BQUosR0FBZSxNQUFLTCxLQUFMLENBQVdNLFVBQTFCLEdBQXVDLHFCQUF2QyxHQUErRCxNQUFLTixLQUFMLENBQVdPLEVBQTNFLENBQUwsQ0FDS0MsSUFETCxDQUNVLFVBQUFDLEdBQUc7QUFBQSxlQUFJQSxHQUFHLENBQUNDLElBQUosRUFBSjtBQUFBLE9BRGIsRUFFS0YsSUFGTCxDQUdRLFVBQUNHLE1BQUQsRUFBWTtBQUNSLFlBQUlBLE1BQU0sQ0FBQ0MsT0FBWCxFQUFvQjtBQUNoQlIsVUFBQUEsR0FBRyxDQUFDUyxNQUFKLENBQVdGLE1BQU0sQ0FBQ0csT0FBbEIsRUFBMkJDLEVBQUUsQ0FB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O0FBQ2Y5RyxRQUFBQSxHQUFHLENBQUNnRCxLQUFKLENBQVU3QyxFQUFWLEVBQWM4QyxPQUFkLEdBQXdCLEtBQXhCO0FBQ0FqRCxRQUFBQSxHQUFHLENBQUM2QyxPQUFKLENBQVlNLElBQVo7O0FBQ0EsWUFBR1osVUFBVSxDQUFDRyxNQUFkLEVBQXNCO0FBQ2xCSCxVQUFBQSxVQUFVLENBQUNJLEdBQVgsQ0FBZSxrQkFBZixFQUFtQyxFQUFuQztBQUNBSixVQUFBQSxVQUFVLENBQUNJLEdBQVgsQ0FBZSxtQkFBZixFQUFvQyxFQUFwQztBQUNBSixVQUFBQSxVQUFVLENBQUNJLEdBQVgsQ0FBZSxxQkFBZixFQUFzQyxFQUF0QztBQUNBSixVQUFBQSxVQUFVLENBQUNJLEdBQVgsQ0FBZSxlQUFmLEVBQWdDLEVBQWhDO0FBQ0g7QUFDSixPQWxDTDtBQW1DQSxhQUFPLEtBQVA7QUFDSCxLOzs7Ozs7RUF0THVCdkIsS0FBSyxDQUFDQyxTIiwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgQmFzZUxpa2VCdXR0b25DbGFzcyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgbGlrZWQ6IHByb3BzLmlzZmF2b3JpdCxcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgaXRlbXM6IFtdLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGJ0bkNsaWNrID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtpc0xvYWRlZDogdHJ1ZX0pO1xuICAgICAgICBmZXRjaChOaWQuYmFzZVVybCAgKyB0aGlzLnByb3BzLmNvbnRyb2xsZXIgKyBcIi9hZGR0b2Zhdm9yaXRlcy9pZC9cIiArIHRoaXMucHJvcHMuaWQpXG4gICAgICAgICAgICAudGhlbihyZXMgPT4gcmVzLmpzb24oKSlcbiAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBOaWQuTm90aWZ5KHJlc3VsdC5tZXNzYWdlLCBfXygnU3VjY2VzcycpLCAnaW5mbycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5hZGRSZW1vdmUgPT0gJ2FkZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImFkZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGVkOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5hZGRSZW1vdmUgPT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcInJlbW92ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRlZDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgTmlkLk5vdGlmeShyZXN1bHQubWVzc2FnZSwgX18oJ0Vycm9yJyksICdlcnJvcicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNMb2FkZWQ6IGZhbHNlfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe2lzTG9hZGVkOiBmYWxzZX0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IGlzTG9hZGVkID0gdGhpcy5zdGF0ZS5pc0xvYWRlZDtcbiAgICAgICAgbGV0IGljb247XG4gICAgICAgIGlmICghaXNMb2FkZWQpIHtcbiAgICAgICAgICAgIGljb24gPSA8aSBjbGFzc05hbWU9XCJmYSBmYS1oZWFydFwiPjwvaT47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpY29uID0gPGRpdiBjbGFzc05hbWU9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSB0ZXh0LWRhcmtcIiByb2xlPVwic3RhdHVzXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPtiv2LEg2K3Yp9mEINio2KfYsdqv2LLYp9ix24wuLi48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxidXR0b24gZGlzYWJsZWQ9e2lzTG9hZGVkfSBvbkNsaWNrPXt0aGlzLmJ0bkNsaWNrfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9eydidG4gYnRuLWxpZ2h0IHAtMCBib3JkZXItY3UgQ29udGVudC1zaG93LXNoYXJlLWljb24gJyArICh0aGlzLnN0YXRlLmxpa2VkID8gJ0NvbnRlbnQtc2hvdy1zaGFyZS1mb2xsb3cnIDogJycpfT5cbiAgICAgICAgICAgICAgICB7aWNvbn1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApO1xuICAgIH1cbn1cbmNsYXNzIEJhc2VMaWtlRGlzbGlrZUNsYXNzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBMaWtlZERpc2xpa2VkOiBwcm9wcy5saWtlZGRpc2xpa2VkICYmIHByb3BzLmxpa2VkZGlzbGlrZWQgPT0gJzEnPyB0cnVlOiBmYWxzZSxcbiAgICAgICAgICAgIGlzTGlrZWREaXNsaWtlZDogcHJvcHMuaXNsaWtlZGRpc2xpa2VkICYmIHByb3BzLmlzbGlrZWRkaXNsaWtlZCA9PSAnMSc/IHRydWU6IGZhbHNlLFxuICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICBpdGVtczogW10sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgYnRuTGlrZWRDbGljayA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNMb2FkZWQ6IHRydWV9KTtcbiAgICAgICAgZmV0Y2goTmlkLmJhc2VVcmwgKyB0aGlzLnByb3BzLmNvbnRyb2xsZXIgKyBcIi9saWtlZGlzbGlrZS9pZC9cIiArIHRoaXMucHJvcHMuaWQrJy9saWtlLzEnKVxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpXG4gICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgTmlkLk5vdGlmeShyZXN1bHQubWVzc2FnZSwgX18oJ1N1Y2Nlc3MnKSwgJ2luZm8nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTGlrZWREaXNsaWtlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWtlZERpc2xpa2VkOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGVkOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE5pZC5Ob3RpZnkocmVzdWx0Lm1lc3NhZ2UsIF9fKCdFcnJvcicpLCAnZXJyb3InKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe2lzTG9hZGVkOiBmYWxzZX0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtpc0xvYWRlZDogZmFsc2V9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgfVxuXG4gICAgYnRuRGlzbGlrZWRDbGljayA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNMb2FkZWQ6IHRydWV9KTtcbiAgICAgICAgZmV0Y2goTmlkLmJhc2VVcmwgKyB0aGlzLnByb3BzLmNvbnRyb2xsZXIgKyBcIi9saWtlZGlzbGlrZS9pZC9cIiArIHRoaXMucHJvcHMuaWQrJy9saWtlLzAnKVxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpXG4gICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgTmlkLk5vdGlmeShyZXN1bHQubWVzc2FnZSwgX18oJ1N1Y2Nlc3MnKSwgJ2luZm8nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTGlrZWREaXNsaWtlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWtlZERpc2xpa2VkOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGVkOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE5pZC5Ob3RpZnkocmVzdWx0Lm1lc3NhZ2UsIF9fKCdFcnJvcicpLCAnZXJyb3InKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe2lzTG9hZGVkOiBmYWxzZX0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtpc0xvYWRlZDogZmFsc2V9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCBpc0xpa2VkRGlzbGlrZWQgPSB0aGlzLnN0YXRlLmlzTGlrZWREaXNsaWtlZDtcbiAgICAgICAgY29uc3QgTGlrZWREaXNsaWtlZCA9IHRoaXMuc3RhdGUuTGlrZWREaXNsaWtlZDtcbiAgICAgICAgbGV0IGxpa2VEaXNsaWtlQ29udGVudDtcbiAgICAgICAgaWYgKCFpc0xpa2VkRGlzbGlrZWQpIHtcbiAgICAgICAgICAgIGxldCBoNSA9IDxoNSBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBzaXplLWluZm8tYiB0ZXh0LWJvZHlcIj7YotuM2Kcg2KfbjNmGINmF2LfZhNioINio2LHYp9uMINi02YXYpyDZhdmB24zYryDYqNmI2K/YnzwvaDU+O1xuICAgICAgICAgICAgbGV0IGJ0bjEgPSBcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXN1Y2Nlc3MgbXgtMSBweC0zXCIgb25DbGljaz17dGhpcy5idG5MaWtlZENsaWNrfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1sLTFcIj7YqNmE24w8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXMgZmEtdGh1bWJzLXVwIGZhLXQtMVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+O1xuICAgICAgICAgICAgbGV0IGJ0bjIgPSBcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLWRhbmdlciBteC0xIHB4LTNcIiBvbkNsaWNrPXt0aGlzLmJ0bkRpc2xpa2VkQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWwtMVwiPtiu24zYsTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS10aHVtYnMtZG93biBmYS10LTFcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPjtcbiAgICAgICAgICAgIGxpa2VEaXNsaWtlQ29udGVudCA9IFxuICAgICAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAge2g1fVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YnRuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtidG4yfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxpa2VEaXNsaWtlQ29udGVudCA9IDxzcGFuPnsn2KfbjNmGINmF2LfZhNioINio2LHYp9uMINi02YXYpyDZhdmB24zYryAnICsgKExpa2VkRGlzbGlrZWQ/ICfYqNmI2K/Zhyc6ICfZhtio2YjYr9mHJykgKyAnINin2LPYqid9PC9zcGFuPjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKGxpa2VEaXNsaWtlQ29udGVudCk7XG4gICAgfVxufVxuXG5jbGFzcyBCYXNlRm9ybUNsYXNzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBoYW5kbGVTdWJtaXRGbiA9IChldmVudCwgc2VsZiwgb25TdWNjZXNzRnVuY3Rpb24sIG9uRmFpbEZ1bmN0aW9uKSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIC8vIHZhciBjbGlja2VkYnRuID0gJCh0aGlzKS5maW5kKFwiaW5wdXRbdHlwZT1zdWJtaXRdOmZvY3VzXCIpO1xuICAgICAgICB2YXIgY2xpY2tlZGJ0biA9ICQodGhpcykuZmluZChcImlucHV0W3R5cGU9c3VibWl0XVtjbGlja2VkZm9yc3VibWl0PXRydWVdXCIpO1xuICAgICAgICBpZihjbGlja2VkYnRuLmxlbmd0aCkge1xuICAgICAgICAgICAgY2xpY2tlZGJ0bi5jc3MoJ2JhY2tncm91bmQtaW1hZ2UnLCAndXJsKCcrZ2V0TGluaygnL2ltZy9sb2FkaW5nLmdpZicpKycpJyk7XG4gICAgICAgICAgICBjbGlja2VkYnRuLmNzcygnYmFja2dyb3VuZC1yZXBlYXQnLCAnbm8tcmVwZWF0Jyk7XG4gICAgICAgICAgICBjbGlja2VkYnRuLmNzcygnYmFja2dyb3VuZC1wb3NpdGlvbicsICdyaWdodCcpO1xuICAgICAgICAgICAgY2xpY2tlZGJ0bi5jc3MoJ3BhZGRpbmctcmlnaHQnLCAnMjVweCcpO1xuICAgICAgICB9XG4gICAgICAgIE5pZC5sb2FkaW5nLnNob3coKTtcbiAgICAgICAgdmFyIGlkID0gJChzZWxmKS5hdHRyKCdpZCcpO1xuICAgICAgICBOaWQuZm9ybXNbaWRdID0gc2VsZjtcbiAgICAgICAgaWYgKE5pZC5mb3Jtc1tpZF0uZGlzYWJsZSA9PT0gdHJ1ZSl7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgTmlkLmZvcm1zW2lkXS5kaXNhYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAkKHNlbGYpLmZpbmQoJyonKS5maWx0ZXIoXCJ1bC5lcnJvcnNcIikuaGlkZSgpO1xuICAgICAgICBpZih0eXBlb2YgQ0tFRElUT1IgIT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGZvciAoIGluc3RhbmNlIGluIENLRURJVE9SLmluc3RhbmNlcyApIHtcbiAgICAgICAgICAgICAgICBDS0VESVRPUi5pbnN0YW5jZXNbaW5zdGFuY2VdLnVwZGF0ZUVsZW1lbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkLmVhY2goJChcIi5mYW5jeXRyZWUtZGl2XCIpLCBmdW5jdGlvbihpbmRleCwgdmFsKSB7XG4gICAgICAgICAgICAkKHZhbCkuZmFuY3l0cmVlKFwiZ2V0VHJlZVwiKS5nZW5lcmF0ZUZvcm1FbGVtZW50cygkKHZhbCkuYXR0cignbmFtZScpPyAkKHZhbCkuYXR0cignbmFtZScpKydbXSc6IHRydWUsIHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgJCgnLmVycm9yLWRpdicsICQoc2VsZikpLmh0bWwoJycpO1xuICAgICAgICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoJChzZWxmKVswXSk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChjbGlja2VkYnRuLmF0dHIoJ25hbWUnKSwgY2xpY2tlZGJ0bi52YWwoKSk7XG4gICAgICAgIHZhciBzdWNjZXNzRnVuY3Rpb24gPSBmdW5jdGlvbihvYmope1xuICAgICAgICAgICAgaWYob25TdWNjZXNzRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBvblN1Y2Nlc3NGdW5jdGlvbihvYmopO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKG9iaik7XG4gICAgICAgICAgICAvLyBhbGVydChcInN1Y2Nlc3NcIik7XG4gICAgICAgICAgICBpZihvYmoudGltZW91dClcbiAgICAgICAgICAgICAgICB2YXIgdGltZW91dCA9IG9iai50aW1lb3V0O1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHZhciB0aW1lb3V0ID0gMDtcbiAgICAgICAgICAgIE5pZC5sb2FkaW5nLmhpZGUoKTtcbiAgICAgICAgICAgIGlmIChvYmouc3RhdHVzID09IFwic3VjY2Vzc1wiKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlmIChvYmouamF2YXNjcmlwdClcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICQoJyNqYXZhY29kZScpLmFwcGVuZCgnPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+JytvYmouamF2YXNjcmlwdCsnPC9zY3JpcHQ+Jyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9IG9iai50YXJnZXQ7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5zdWJzdHJpbmcoMCwxKSAhPSAnLicgJiYgdGFyZ2V0LnN1YnN0cmluZygwLDEpICE9ICcjJylcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9ICcjJyArIHRhcmdldDtcbiAgICAgICAgICAgICAgICBpZiAob2JqLnJlc2V0ID09IFwidHJ1ZVwiKVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICQoKS5maW5kKCdpbnB1dCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAubm90KCc6YnV0dG9uLCA6c3VibWl0LCA6cmVzZXQsIDpoaWRkZW4nKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbCgnJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZW1vdmVBdHRyKCdjaGVja2VkJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZW1vdmVBdHRyKCdzZWxlY3RlZCcpO1xuICAgICAgICAgICAgICAgICAgICAkKCkuZmluZCgndGV4dGFyZWEnKS52YWwoJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZihvYmoubWVzc2FnZSAmJiBvYmoudGl0bGUpe1xuICAgICAgICAgICAgICAgICAgICAvLyAkLmRpYWxvZy5zaG93QWxlcnQob2JqLm1lc3NhZ2UsICdpbmZvJywgb2JqLnRpdGxlLCB0aW1lb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgTmlkLk5vdGlmeShvYmoubWVzc2FnZSwgb2JqLnRpdGxlLCAnaW5mbycsIHRpbWVvdXQpO1xuICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldCAmJiAkKHRhcmdldCkubGVuZ3RoID4gMClcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvYmoucmVzdWx0KVxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JqLnJlc3VsdEFkZFR5cGUgPT0gJ3JlcGxhY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0YXJnZXQpLmh0bWwob2JqLnJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9iai5yZXN1bHRBZGRUeXBlID09ICdwcmVwZW5kJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGFyZ2V0KS5wcmVwZW5kKG9iai5yZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRhcmdldCkuYXBwZW5kKG9iai5yZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9iai5yZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgTmlkLmdldChvYmoucmVkaXJlY3QsIHttYXNrOiB0YXJnZXQsIHRhcmdldDogdGFyZ2V0fSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9iai5yZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICBOaWQuZ2V0KG9iai5yZWRpcmVjdCwge21hc2s6ICcjY29udGFpbmVyJywgdGFyZ2V0OiAnY29udGFpbmVyJ30pOyAvL2NvbW1lbnRlZCBmb3IgYXNpYWRsXG4gICAgICAgICAgICAgICAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbiA9IG9iai5yZWRpcmVjdDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBOaWQuZm9ybXNbaWRdLmRpc2FibGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KFwiJC5kaWFsb2cuaGlkZSgpXCIsIDMwMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAob2JqLmphdmFzY3JpcHQpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJCgnI2phdmFjb2RlJykuYXBwZW5kKCc8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj4nK29iai5qYXZhc2NyaXB0Kyc8L3NjcmlwdD4nKTtcbiAgICAgICAgICAgICAgICBOaWQuZm9ybXNbaWRdLmRpc2FibGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG9iai5tZXNzYWdlKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIE5pZC5mb3Jtc1tpZF0uZGlzYWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vICQuZGlhbG9nLnNob3dBbGVydChvYmoubWVzc2FnZSwgJ2Vycm9yJywgb2JqLnRpdGxlKTtcbiAgICAgICAgICAgICAgICBOaWQuTm90aWZ5KG9iai5tZXNzYWdlLCBvYmoudGl0bGUsICdlcnJvcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZihvYmouc2hvd2Zvcm0pXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLy8gJC5kaWFsb2cuc2hvd0FsZXJ0KG9iai5kYXRhLCAnbm9pY29uJywgb2JqLnRpdGxlKTtcbiAgICAgICAgICAgICAgICBOaWQuTm90aWZ5KG9iai5kYXRhLCBvYmoudGl0bGUsICdub2ljb24nKTtcbiAgICAgICAgICAgICAgICBzdWJtaXRGbGFnID0gMDtcbiAgICAgICAgICAgICAgICBpZihvYmouZm9ybWFqYXhTdWJtaXQpXG4gICAgICAgICAgICAgICAgICAgICQoXCIjXCIrb2JqLnNob3dmb3JtKS5hamF4U3VibWl0KCk7XG4gICAgICAgICAgICAgICAgTmlkLmZvcm1zW2lkXS5kaXNhYmxlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmKG9iai5zaG93cGFuZWwpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2hvd1BhbmVsKG9iai5zaG93cGFuZWwsIG9iai5wYW5lbGlkLCBvYmouc2hvd2hpZGUpO1xuICAgICAgICAgICAgICAgIE5pZC5mb3Jtc1tpZF0uZGlzYWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIE5pZC5mb3Jtc1tpZF0uZGlzYWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxldCBoYXNFcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGZvciAociBpbiBvYmopXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZXJyX2xpc3QgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGVyciBpbiBvYmpbcl0pXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycl9saXN0ICs9ICc8cCBjbGFzcz1cImVyci1maWxkXCI+JyArIG9ialtyXVtlcnJdICsgJzwvcD4nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFtyLCBlcnJfbGlzdCwgJyMnICsgaWQgKyAnICNlcnInICsgcl0pO1xuICAgICAgICAgICAgICAgICAgICAkKCcjJyArIGlkICsgJyAuZXJyb3ItZGl2LmVycm9yLWRpdi0nICsgcikuaHRtbChlcnJfbGlzdCk7XG5cbiAgICAgICAgICAgICAgICAgICAgJCgnIycgKyBpZCArICcgI2VycicgKyByKS5mYWRlSW4oKTtcbiAgICAgICAgICAgICAgICAgICAgc3VibWl0RmxhZyA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmKGhhc0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIE5pZC5Ob3RpZnkoX18oJ1RoZXJlIHdhcyBlcnJvciBpbiBmb3JtIGZpZWxkcy4gUGxlYXNlIGNoYWVjayB0aGVtLicpLCBfXygnRXJyb3IgaW4gZm9ybSBmaWVsZHMnKSwgJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmouY2FwdGNoYSkge1xuICAgICAgICAgICAgICAgICAgICAkKCcjJyArIGlkICsgJyAjJyArIG9iai5jYXB0Y2hhLmZpZWxkKS5hdHRyKCdzcmMnLCBOaWQuYmFzZVVybCArICcvaW1nL2NhcHRjaGEvJyArIG9iai5jYXB0Y2hhLmlkICsgJy5wbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgJCgnIycgKyBpZCArICcgIycgKyBvYmouY2FwdGNoYS5maWVsZCArICctaWQnKS5hdHRyKCd2YWx1ZScsIG9iai5jYXB0Y2hhLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgJCgnIycgKyBpZCArICcgIycgKyBvYmouY2FwdGNoYS5maWVsZCArICctaW5wdXQnKS52YWwoJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgJC5hamF4KHtcbiAgICAgICAgICAgIHVybDogJChzZWxmKS5hdHRyKFwiYWN0aW9uXCIpLFxuICAgICAgICAgICAgdHlwZTogJ1BPU1QnLFxuICAgICAgICAgICAgZGF0YVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgIGRhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgICAgY2FjaGU6IGZhbHNlLFxuICAgICAgICAgICAgY29udGVudFR5cGU6IGZhbHNlLFxuICAgICAgICAgICAgcHJvY2Vzc0RhdGE6IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuZG9uZShzdWNjZXNzRnVuY3Rpb24pXG4gICAgICAgICAgICAuZmFpbChmdW5jdGlvbihvYmopIHtcbiAgICAgICAgICAgICAgICBpZihvbkZhaWxGdW5jdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBvbkZhaWxGdW5jdGlvbihvYmopO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmKHR5cGVvZiBvYmogPT0gJ29iamVjdCcgJiYgdHlwZW9mIG9iai5yZXNwb25zZUpTT04gPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYob2JqLnJlc3BvbnNlSlNPTi5tZXNzYWdlICYmIG9iai5yZXNwb25zZUpTT04udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICQuZGlhbG9nLnNob3dBbGVydChvYmoucmVzcG9uc2VKU09OLm1lc3NhZ2UsICdlcnJvcicsIG9iai5yZXNwb25zZUpTT04udGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgTmlkLk5vdGlmeShvYmoucmVzcG9uc2VKU09OLm1lc3NhZ2UsIG9iai5yZXNwb25zZUpTT04udGl0bGUsICdlcnJvcicpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYob2JqLnJlc3BvbnNlSlNPTi50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gJC5kaWFsb2cuc2hvd0FsZXJ0KG9iai5yZXNwb25zZUpTT04udGl0bGUsICdlcnJvcicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgTmlkLk5vdGlmeShvYmoucmVzcG9uc2VKU09OLnRpdGxlLCBudWxsLCAnZXJyb3InKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWx3YXlzKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIE5pZC5mb3Jtc1tpZF0uZGlzYWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIE5pZC5sb2FkaW5nLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBpZihjbGlja2VkYnRuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjbGlja2VkYnRuLmNzcygnYmFja2dyb3VuZC1pbWFnZScsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgY2xpY2tlZGJ0bi5jc3MoJ2JhY2tncm91bmQtcmVwZWF0JywgJycpO1xuICAgICAgICAgICAgICAgICAgICBjbGlja2VkYnRuLmNzcygnYmFja2dyb3VuZC1wb3NpdGlvbicsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgY2xpY2tlZGJ0bi5jc3MoJ3BhZGRpbmctcmlnaHQnLCAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xufSJdfQ==
Untitled-1 Untitled-1

سبد خرید ۰

  • سبد خرید شما خالی است
۱۷ شهریور۱۴۰۰
افزودن نظر
  • فرمت (پسوند) rar
  • تعداد بازدید 1220

عنوان Erica در سبک ماجراجویی می‌باشد که توسط استودیوهای Flavourworks و London Studio ساخته شده و شرکت Sony Interactive Entertainment آن را در سال 2019 و 2021 برای کنسول PlayStation 4 و رایانه‌های شخصی عرضه نمود. خانم جوانی به‌نام اریکا با کابوس‌های قتل پدرش مواجه می‌باشد. با حوادث ناگواری که از دوران کودکی به یاد دارد، شما از طریق سرنخ‌های کاملا جدید بایستی حقیقت تکان دهنده‌ای را آشکار کنید. در خانه Delphi شما به کاوش پرداخته و هر انتخابی که می‌کنید بر پیشرفت بازی تاثیر می‌گذارد و در انتها نیز پایان‌های متفاوتی انتظار شما را می‌کشد. شما بایستی با کاراکترهای دیگر از طریق مکالمه تعامل داشته باشید و روابط خود با آن‌ها را شکل دهید.

 

توجه: مناسب برای سنین 17 سال به بالا

 

نام بازي: Erica

نام فارسي: اریکا
پلتفرم: PC
سازنده: Cyanide Studio
ناشر: Nacon

ریلیز Doge

*شماره ثبت در بنیاد بازی‌های رایانه‌ای : هنوز ثبت نشده است. پس از ثبت و در صورت عدم تاييد و بنا به درخواست ساماندهي حذف خواهد شد.
عرضه شده براي ديگر پلتفرم ها: Xbox One  - PS4
 

 

جزئیات

CPU: i3
RAM: 4 GB
GPU: GTX 970 / Radeon 390
DX: Version 11
OS: Win 10
Store: 37 GB

راهنماي نصب ریلیز Doge:
1- ابتدا قبل از Extract کردن فايل هاي بازي، آنتي ويروس خود را غير فعال کنيد.
2- تمام پارتهاي بازي را از حالت Zip خارج کرده وبا اجراي فايل setup به نصب بازي بپردازيد.
3- براي نصب بازي ها با فرمت iso بايد نرم افزار Daemon Tools را دانلود و نصب نماييد.
4- حال تمام پارتهاي بازي را از حالت Zip خارج کرده و فايل iso موجود در آن را با نرم افزار Daemon Tools به اجرا در آورديد. در اين روش نصب بازي به صورت درايو مجازي صورت گرفته و ميتوانيد به نصب آن بپردازيد.
5- در آخر محتويات پوشه Doge را در محل نصب بازي کپي نماييد.

توجه داشته باشید اگر نسخه DirectX بازی را در فایل ایمیج یا در محل نصب بازی مشاهده کردید, حتما آن را نصب نمائید
مطالب پیشنهادی از سراسر وب

بازخورد شما

آیا این مطلب برای شما مفید بود؟
شما هم می‌توانید امتیاز دهید.
امتیاز دادن

نظرات

شما هم می‌توانید نقد و نظر بدهید.
فقط کافیه ابتدا وارد حساب کاربری خود شوید.