[{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-54 мин."},"isBanned":false,"roleString":"Мастер-Эксперт","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"Facta loquuntur.","signatureHTML":"Facta loquuntur.","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.979,"absoluteRating":109932,"dynamicRating":1671.581,"dynamicRatingStars":10,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-20T01:54:16.5613406+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":11,"counters":{"daysAtPortal":6576,"questions":12,"questionsPosts":18346,"questionsAnswers":6664,"questionsPostsEvaluations":2832,"forumPosts":5699},"isRfproUserClass":true,"id":17387,"name":"Гордиенко Андрей Владимирович","email":"","role":10,"registDate":"1000-01-01T00:00:00","lastDate":"2024-05-19T05:44:32","photo":"users/17387/f4979bc95a484b9f43f75cfe66538acd.jpg","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"users/17387/200_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview120":"users/17387/120_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview100":"users/17387/100_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview80":"users/17387/80_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview40":"users/17387/40_f4979bc95a484b9f43f75cfe66538acd.jpg","isPhotoExists":true,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-54 мин."},"isBanned":false,"roleString":"Мастер-Эксперт","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"Я пенсионер. Образование высш, радио-инж. Работал инж-электроником, ведущим средств телевидения, связи, слесарем и инженером КИП, грузчиком, программистом. На моём счету десятки рац-предложений, в тч с большим экономич эффектом.\nЯ люблю компьютеры, ремонтирую их друзьям и соседям. Пишу полезные программки в vbs-файлах, автоматизирующие настройку Win-систем, приложений и работу с ними.","aboutHTML":"Я пенсионер. Образование высш, радио-инж. Работал инж-электроником, ведущим средств телевидения, связи, слесарем и инженером КИП, грузчиком, программистом. На моём счету десятки рац-предложений, в тч с большим экономич эффектом.\u003Cbr\u003EЯ люблю компьютеры, ремонтирую их друзьям и соседям. Пишу полезные программки в vbs-файлах, автоматизирующие настройку Win-систем, приложений и работу с ними.","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.935,"absoluteRating":25764,"dynamicRating":459.338,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-20T01:54:16.5615257+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":11,"counters":{"daysAtPortal":5609,"questions":25,"questionsPosts":7464,"questionsAnswers":1226,"questionsPostsEvaluations":789,"forumPosts":401},"isRfproUserClass":true,"id":259041,"name":"Алексеев Владимир Николаевич","email":"","role":10,"registDate":"1000-01-01T00:00:00","lastDate":"2024-05-18T14:53:57","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-54 мин."},"isBanned":false,"roleString":"Старший Модератор","roleIcon":"fa-user-tie","socialMedia":[],"aboutText":"634034, г.Томск, ул.Красноармейская 122, кв.173","aboutHTML":"634034, г.Томск, ул.Красноармейская 122, кв.173","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.985,"absoluteRating":21746,"dynamicRating":410.81,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-20T01:54:16.5616464+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":13,"counters":{"daysAtPortal":5293,"questions":1,"questionsPosts":1973,"questionsAnswers":1283,"questionsPostsEvaluations":588,"forumPosts":91},"isRfproUserClass":true,"id":312929,"name":"Коцюрбенко Алексей Владимирович","email":"","role":12,"registDate":"1000-01-01T00:00:00","lastDate":"2023-11-05T17:20:40","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-54 мин."},"isBanned":false,"roleString":"Советник","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":5,"absoluteRating":9460,"dynamicRating":383.537,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-20T01:54:16.5617402+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":10,"counters":{"daysAtPortal":2466,"questions":0,"questionsPosts":472,"questionsAnswers":398,"questionsPostsEvaluations":298,"forumPosts":1},"isRfproUserClass":true,"id":401284,"name":"Михаил Александров","email":"","role":9,"registDate":"1000-01-01T00:00:00","lastDate":"2024-05-14T19:07:33","photo":"users/401284/48171011af39b6bb3a74df8c0fcf97d0.jpg","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"users/401284/200_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview120":"users/401284/120_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview100":"users/401284/100_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview80":"users/401284/80_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview40":"users/401284/40_48171011af39b6bb3a74df8c0fcf97d0.jpg","isPhotoExists":true,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-54 мин."},"isBanned":false,"roleString":"Посетитель","roleIcon":"fa-user","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.987,"absoluteRating":6052,"dynamicRating":220.475,"dynamicRatingStars":7,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-20T01:54:16.5618131+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":2,"counters":{"daysAtPortal":2745,"questions":0,"questionsPosts":527,"questionsAnswers":250,"questionsPostsEvaluations":155,"forumPosts":0},"isRfproUserClass":true,"id":400669,"name":"epimkin","email":"","role":1,"registDate":"1000-01-01T00:00:00","lastDate":"2024-05-19T18:43:36","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":false},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-54 мин."},"isBanned":false,"roleString":"Посетитель","roleIcon":"fa-user","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"[i]С уважением[/i]\n[i]shvetski[/i]","signatureHTML":"\u003Ci\u003EС уважением\u003C/i\u003E\u003Cbr\u003E\u003Ci\u003Eshvetski\u003C/i\u003E","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.963,"absoluteRating":11493,"dynamicRating":200.389,"dynamicRatingStars":7,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-20T01:54:16.5619154+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":2,"counters":{"daysAtPortal":5735,"questions":35,"questionsPosts":1567,"questionsAnswers":588,"questionsPostsEvaluations":324,"forumPosts":44},"isRfproUserClass":true,"id":226425,"name":"Shvetski","email":"","role":1,"registDate":"1000-01-01T00:00:00","lastDate":"2024-05-15T00:34:48","photo":"users/226425/f345a2332af0cff5fba81b60c4e0d441.jpg","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"users/226425/200_f345a2332af0cff5fba81b60c4e0d441.jpg","photoPreview120":"users/226425/120_f345a2332af0cff5fba81b60c4e0d441.jpg","photoPreview100":"users/226425/100_f345a2332af0cff5fba81b60c4e0d441.jpg","photoPreview80":"users/226425/80_f345a2332af0cff5fba81b60c4e0d441.jpg","photoPreview40":"users/226425/40_f345a2332af0cff5fba81b60c4e0d441.jpg","isPhotoExists":true,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":false}]
Мультизадачность. Модифицировать программу, приведенную в электронном приложении. Подключить задачу, которая при нажатии клавиши F1 приостанавливает выполнение всех задач и возобновляет их выполнение при нажатии клавиши F2.
Приложение:
;программа демонстрирует одновременное выполнение ;трех простых задач в защищенном режиме. Для ее работы необходи- ;мо наличие процессора i80386 или выше. ; Рассмотрим работу программы по шагам. ; - Инициализация GDT и трех LDT (каждая задача имеет свою ;локальную таблицу). На этом этапе в таблицы заносятся адреса ;используемых сегментов (вся остальная информация занесена при ;трансляции). ; - Сохраняются состояния контроллеров прерываний и адрес ;возврата после останова процессора (в программе используется ;способ возврата в реальный режим с использованием аппаратного ;сброса процессора; BIOS передает управление по адресу содержа- ;щемуся в ячейках 0040:0067h и восстанавливает состояние конт- ;роллеров прерываний ). ; - Перепрограммирование контроллеров прерываний. Аппаратным ;прерываниям IRQ0-IRQ7 соответствуют вектора INT20h-INT27h, а ;IRQ8-IRQ15 - вектора INT30h-INT37h. ; - Размаскируются прерывания от таймера и клавиатуры (IRQ0 и ;IRQ1). Обработчик прерывания таймера - планировщик задач (см. ;ниже). Обработчик прерывания клавиатуры передает управление на ;точку выхода из защищенного режима, т.е. при нажатии любой кла- ;виши программа завершает работу и корректно выходит в DOS. ; - Переход в защищенный режим и настройка сегментных регист- ;ров. ; - В LDTR загружается селектор LDT первой задачи, а в TR - ;селектор TSS первой задачи. ; - Передача управления процедуре PUBLIC_CODE. Она является ;общей для первой и второй задач (т.е. эти задачи выполняют один ;и тот же код, но имеют разные сегменты данных). Таким образом, ;мы запустили Задачу, и теперь при передаче управления другой ;задаче ее состояние полностью сохранится в сегменте TSS. ; - При возникновении прерывания таймера управление получает ;планировщик задач (он описан в IDT как шлюз задачи). Пданиров- ;щик находит в списке задач адрес селектора TSS для следующей ;задачи, очищает ее бит Занятости и, адресуя селектор TSS, пе- ;реключается на новую задачу. Этот процесс повторяется примерно ;18 раз в секунду. О частоте переключения задач можно судить по ;частоте щелчков (для наглядности планировщик перед переключени- ;ем задачи выдает короткий щелчок).
EXCEPT_PROC MACRO Ex_Number pusha push Ex_Number jmp report_exc ENDM DESCRIPTOR STRUC seg_limit Dw 0 ; Длина сегмента base_lo_word Dw 0 ; Физ. адрес base_hi_byte Db 0 acces_rights Db 0 ; Байт прав доступа Db 0 base_top_byte Db 0 ; Физ. адрес DESCRIPTOR ENDS
IDT_DESCRIPTOR STRUC int_offset Dw 0 ; Точка входа int_Selector Dw 0 ; Селектор дескриптора в GDT Db 0 int_ss Db 0 ; Вид обработчика прерывания Dw 0 IDT_DESCRIPTOR ENDS
Tss_Stencil386 STRUC ; Шаблон сегмента TSS i386 LINK Dw 0 ; селектор возврата Dw 0 ESP0 Dd 0 ; значение ESP для стека ; уровня 0 SS0 Dw 0 ; значение SS для стека Dw 0 ; уровня 0 ESP1 Dd 0 ; значение ESP для стека ; уровня 1 SS1 Dw 0 ; значение SS для стека Dw 0 ; уровня 1 ESP2 Dd 0 ; значение ESP для стека ; уровня 2 SS2 Dw 0 ; значение SS для стека Dw 0 ; уровня 2 CR3_ Dd 0 ; значение регистра CR3 EIP_ Dw 0 ; значение регистра EIP Dw 0 EFLAGS Dd 0 ; значение регистра EFLAGS EAX_ Dd 0 ; значение регистра EAX ECX_ Dd 0 ; значение регистра ECX EDX_ Dd 0 ; значение регистра EDX EBX_ Dd 0 ; значение регистра EBX ESP_ Dd 0 ; значение регистра ESP EBP_ Dd 0 ; значение регистра EBP ESI_ Dd 0 ; значение регистра ESI EDI_ Dd 0 ; значение регистра EDI ES_ Dw 0 ; значение регистра ES Dw 0 CS_ Dw 0 ; значение регистра CS Dw 0 SS_ Dw 0 ; значение регистра SS Dw 0 DS_ Dw 0 ; значение регистра DS Dw 0 FS_ Dw 0 ; значение регистра FS Dw 0 GS_ Dw 0 ; значение регистра GS Dw 0 LDTR_ Dw 0 ; значение регистра LDTR Dw 0 Dw 0 ; бит 0 - бит ловушки Т BaseMapIO Dw 104 ; относительный адрес БКВВ Tss_Stencil386 ENDS
EVEN ; *************** Глобальная дескрипторная таблица ************ Gdt Label Word Gdt0 Descriptor<> ;************************************************************* ;* описание GDT как сегмента данных ;************************************************************* Gdt_Desc Equ (($-gdt)/8)*8+0000000000000000b Gdt_Pointer Descriptor <gdt_leng-1,,,data_seg_access,> ;************************************************************* ;* дескриптор описывающий CSEG как сегмент кода ;************************************************************* System_Code Equ (($-gdt)/8)*8+0000000000000000b Gdt2 Descriptor<cseg_leng,,,code_seg_access,> ;************************************************************* ;* дескриптор описывающий CSEG как сегмент данных ;************************************************************* System_Data Equ (($-gdt)/8)*8+0000000000000000b Gdt3 Descriptor<cseg_leng,,,data_seg_access,> ;************************************************************* ;* дескриптор описывающий CSEG как сегмент данных ;************************************************************* System_Stack Equ (($-gdt)/8)*8+0000000000000000b Gdt4 Descriptor<0fffeh,,,data_seg_access,> ;************************************************************* ;* дескриптор описывающий IDT как сегмент данных ;************************************************************* Idt_Pointer Descriptor<idt_leng-1,,,data_seg_access> ;************************************************************* ;* дескриптор описывающий видеопамять как сегмент данных ;************************************************************* Video_Desc Equ (($-gdt)/8)*8+0000000000000000b GDT5 Descriptor<1000h,8000h,0bh,data_seg_access> ;************************************************************* ;* cелектор дескриптора TSS для планировщика ;************************************************************* Sheduler_Tss_Selector Equ (($-gdt)/8)*8+0000000000000000b GDT6 Descriptor<103,,,Task_seg_state> ;************************************************************* ;* cелектор дескриптора TSS для первой задачи ;************************************************************* Task1_Tss_Selector Equ (($-gdt)/8)*8+0000000000000000b GDT7 Descriptor<103,,,Task_seg_state> ;************************************************************* ;* cелектор дескриптора TSS для второй задачи ;************************************************************* Task2_Tss_Selector Equ (($-gdt)/8)*8+0000000000000000b GDT8 Descriptor<103,,,Task_seg_state>
;************************************************************* ;* cелектор дескриптора TSS для третьей задачи ;************************************************************* Task3_Tss_Selector Equ (($-gdt)/8)*8+0000000000000000b GDT100 Descriptor<103,,,Task_seg_state> ;************************************************************* ;* cелектор дескриптора LDT для первой задачи ;************************************************************* Task1_Ldt_Selector Equ (($-gdt)/8)*8+0000000000000000b GDT10 Descriptor<Task1_LDT_len,,,ldt_seg_access> ;************************************************************* ;* cелектор дескриптора LDT для второй задачи ;************************************************************* Task2_Ldt_Selector Equ (($-gdt)/8)*8+0000000000000000b GDT11 Descriptor<Task2_LDT_len,,,ldt_seg_access> ;************************************************************* ;* cелектор дескриптора LDT для третьей задачи ;************************************************************* Task3_Ldt_Selector Equ (($-gdt)/8)*8+0000000000000000b GDT110 Descriptor<Task3_LDT_len,,,ldt_seg_access> ;************************************************************* ;* дескриптор данных для списка задач ;************************************************************* Task_List_desc Equ (($-gdt)/8)*8+0000000000000000b GDT12 Descriptor<Task_List_len,,,data_seg_access> ;************************************************************* ;* дескриптор сегмента кода для задач 1 и 2 ;************************************************************* PublicCode_desc Equ (($-gdt)/8)*8+0000000000000000b GDT14 Descriptor<PublicCode_len,,,code_seg_access> ;************************************************************* ;* дескриптор сегмента кода для задачи 3 ;************************************************************* Task3Code_desc Equ (($-gdt)/8)*8+0000000000000000b GDT15 Descriptor<Task3code_len,,,code_seg_access> Gdt_Leng Equ $ - GDT
StackTask1 Dw 80h dup(0) ; стек для Task1 StackTask2 Dw 80h dup(0) ; стек для Task2 StackTask3 Dw 80h dup(0) ; стек для Task3
;************************************************************* ;* сегмент данных для Task1 ;************************************************************* DataS4Task1 Label Byte X Db 20 ;координаты для Y Db 5 ;вывода на экран titl Db 'Task1' ;заголовок ascii_count Dw 3030h ;счетчик Datas4Task1_len Equ $-DataS4Task1
;************************************************************* ;* сегмент данных для Task2 ;************************************************************* DataS4Task2 Label Byte Db 50 ; координата X Db 5 ; координата Y Db 'Task2' ; заголовок Dw 3030h ; счетчик DataS4Task2_len Equ $-DataS4Task2
;************************************************************* ;* сегмент данных для Task3 ;************************************************************* DataS4Task3 Label Byte Db 1 ; X Db 10 ; Y Db 'Демонстрация мультизадачности на примере ' Db 'одновременного выполнения трех задач$' DataS4Task3_len Equ $-DataS4Task3
;************************************************************* ;* список переключаемых задач ;************************************************************* Task_List Label Word Dw 0 Dw Task1_Tss_Selector Dw 0 Dw Task2_Tss_Selector Dw 0 Dw Task3_Tss_Selector Task_List_len Equ $-Task_List
MAIN PROC Assume ds:Cseg call Init_Tab ; Инициализация GDT. call _Set_Protected_Mode ; Переход в защищенный ; режим. mov ax,Task1_Tss_Selector ; Загрузка селектора TSS ltr ax ; первой задачи в TR mov ax,Task1_Ldt_Selector ; Загрузка селектора LDT lldt ax ; первой задачи в LDTR mov ax,Task1_Data ; Настройка регистров mov ds,ax ; DS и ES на область mov es,ax ; данных первой задачи mov ax,Task1_Stack ; Настройка на область mov ss,ax ; стека первой задачи mov sp,60h jmp PublicCode ; Ближний переход на ; CS:PublicCode (переклю- ; чение на первую задачу) ;**************************** Планировщик ******************** ; Сюда произойдет передача управления при первом прерывании от ; системного таймера. SHEDULER label byte start_shed: xor si,si mov bx,fs:[task_counter] ; Считаем номер активной на ; момент прерывания задачи inc bx cmp bx,3 jne save_counter ; Вычислим номер новой xor bx,bx ; активной задачи и save_counter: mov fs:[task_counter],bx ; сохраним его shl bx,2 mov di,[bx+2] ; Сброс бита BUSY в байте add di,5 ; прав доступа дескриптора and es:byte ptr[di],0fdh ; TSS новой задачи mov al,20h ; Выдача в PIC команды out 20h,al ; завершения аппаратного ; прерывания call Beep ; Короткий щелчок jmp ds:Dword ptr [bx] ; Переключение на следующую ; задачу ;Сюда будет передаваться управление при прерывании от таймера jmp short start_shed Sheduler_len Equ $ - Sheduler
Main_2: mov al,Shut_Cmd ; Команда отключения out Status_Port,al ; возврат в реальный режим Main_1: hlt ; Останов процессора jmp short Main_1
;*** Сюда BIOS передаст управление после сброса процессора *** Real: mov dx,cs ;настройка сегментных mov ds,dx ;регистров на адреса mov ss,dx ;в реальном режиме call _A20_Close ;закрытие шины А20 mov al,[i8259_1] ;востановление out inta01,al ;состояния контроллеров mov al,[i8259_2] ;прерываний out intb01,al sti int 20h ; Выход в DOS MAIN ENDP ;************************************************************* ;* обработчики особой ситуации просто выдают на экран ее номер ;************************************************************* ex0_proc : Except_Proc '0' ex1_proc : Except_Proc '1' ex2_proc : Except_Proc '2' ex3_proc : Except_Proc '3' ex4_proc : Except_Proc '4' ex5_proc : Except_Proc '5' ex6_proc : Except_Proc '6' ex7_proc : Except_Proc '7' ex8_proc : Except_Proc '8' ex9_proc : Except_Proc '9' ex10_proc: Except_Proc 'A' ex11_proc: Except_Proc 'B' ex12_proc: Except_Proc 'C' ex13_proc: Except_Proc 'D' ex14_proc: Except_Proc 'E' ex15_proc: Except_Proc 'F' Report_Exc: pop ax push ds ax mov ax,system_data mov ds,ax mov dh,0fh mov cx,exc_mess_len mov si,offset exc_mess mov bh,14h mov bl,17h call writexy ; выдача сообщения 'EXEPTION' pop ax ; извлекаем номер mov bx,1423h ; особой ситуации call Print_Char ; и вывод его на экран pop ds popa iret DUMMY1 PROC ; 'Заглушка' для первого push ax ; контроллера прерываний mov al,20h out 20H,al pop ax iret DUMMY1 ENDP
DUMMY2 PROC push ax ; 'Заглушка' для второго mov al,20h ; контроллера прерываний out 20H,al out 0A0H,al pop ax iret DUMMY2 ENDP
;************************************************************* ;* выдача щелчка ;************************************************************* BEEP PROC push ax bx cx in al,key_port_b push ax mov cx,80 beep0: push cx and al,11111100b out key_port_b,al mov cx,60 id_1: loop id_1 or al,00000010b out key_port_b,al mov cx,60 id_2: loop id_2 pop cx loop beep0 pop ax out key_port_b,al pop cx bx ax ret BEEP ENDP Columns Db 80d Rows Db 25d Text_buf Db ' ' Cur_pos Db 0 Cur_line Db 0
;************************************************************* ;* вывод на экран ;* AX=01 символа в AH ;* AX=02 слова в DX ;************************************************************* INT40_PROC PROC push ds push system_data pop ds cmp ah,01 je int_40_01 cmp ah,02 je int_40_02 iret int_40_01: call print_char jmp Int_40_Exit int_40_02: mov ax,dx call print_word jmp Int_40_Exit int_40_Exit: pop ds iret INT40_PROC ENDP
;------------------------------------------------------------- ; Вывод на экран символа из AL ; (x,y) = (bl,bh) ;------------------------------------------------------------- PRINT_CHAR PROC push di dx es push video_desc pop es mov dx,bx call set_addr stosb pop es dx di ret PRINT_CHAR ENDP
;------------------------------------------------------------- ; Преобразование байта в символьный формат ; ВХОД : AL - входной байт ; ВЫХОД : DX - выходное слово ;------------------------------------------------------------- TABL Db '0123456789ABCDEF' BYTE_TO_HEX PROC push cx bx mov bx, offset TABL push ax and al,0fh xlat mov dl,al pop ax mov cl,4 shr al,cl xlat mov dh,al pop bx cx ret BYTE_TO_HEX ENDP ;-------------------------------------------------------------- ; Вывод на экран содержимого AX ; (x,y) = (bl,bh) ;-------------------------------------------------------------- PRINT_WORD PROC assume gs:cseg push ax bx dx ax mov cl,8 rol ax,cl call byte_to_hex mov [text_buf],dh mov [text_buf+1],dl pop ax call byte_to_hex mov [text_buf+2],dh mov [text_buf+3],dl mov si, offset text_buf mov dh,70h mov cx,4 call writexy pop dx bx ax ret PRINT_WORD ENDP ;-------------------------------------------------------------- ; Процедура подсчитывает смещение от начала видеопамяти ; Вход : DH - строка ; DL - колонка ; Выход: DI - смещение ; Used : Columns - количество столбцов на экране ;-------------------------------------------------------------- SET_ADDR PROC push dx ax xor di,di mov al,dh xor ah,ah mul columns xor dh,dh add ax,dx shl ax,1 mov di,ax pop ax dx ret SET_ADDR ENDP ;------------------------------------------------------------- ;Перепрограммирование контроллера прерываний ; Вход : начальные номера прерываний : ; BH - IRQ0 ; BL - IRQ8 ;------------------------------------------------------------- _SET_IRQ PROC mov ah,bh mov dx,Inta00 call Si_1 mov ah,bl mov dx,Intb00 Si_1: mov al,11h out dx,al jmp short $+2 mov al,ah inc dx out dx,al jmp short $+2 mov al,4 out dx,al jmp short $+2 mov al,1 out dx,al jmp short $+2 mov al,0ffh out dx,al dec dx ret ENDP ;------------------------------------------------------------- ;Вход: DX содержит номер сегмента ; CX содержит внутрисегментное смещение ;Выход: DX содержит значение BASE_LO_WORD ; CX содержит значение BASE_HI_BYTE ;------------------------------------------------------------- _FORM_24BIT_ADDRESS PROC push ax rol dx,4 mov ax,dx and dl,0f0h and ax,0fh add dx,cx mov cx,ax adc cl,ch pop ax ret ENDP ;************************************************************* ;* открытие линии A20 ;************************************************************* _A20_OPEN PROC mov ah,0dfh call _Gate_A20 ret ENDP ;************************************************************* ;* закрытие линии A20 ;************************************************************* _A20_CLOSE PROC mov ah,0ddh call _Gate_A20 ret ENDP
;------------------------------------------------------------- ;Управление прохождением сигнала A20 ; ВХОД: (AH)=0DDH A20 всегда равен 0 ; (AH)=0DFh адресный разряд A20 открыт ; ВЫХОД: (AL)=0 8042 принял команду ; (AH)=2 сбой ;------------------------------------------------------------- _GATE_A20 PROC cli call _Empty_8042 jnz ga_1 mov al,0d1h out Status_Port,al call _Empty_8042 jnz ga_1 mov al,ah out Key_Port_a,al call _Empty_8042 ga_1: ret ENDP
;------------------------------------------------------------- ;Ждать пока буфер 8042 не опустеет ;Вход: нет ;Выход:(AL)=0 буфер пуст ; (AL)=2 не пуст ;------------------------------------------------------------- _EMPTY_8042 PROC push cx sub cx,cx emp_1: in al,status_port and al,00000010b loopnz emp_1 pop cx ret ENDP
;************************************************************* ;* инициализация защищенного режима ;************************************************************* _SET_PROTECTED_MODE PROC push ax bx call _A20_Open in al,inta01 ; сохранение состояния mov [i8259_1],al ; контроллеров прерывания in al,intb01 mov [i8259_2],al mov bx,bios_data_seg mov es,bx mov [es:io_rom_seg],cs ;адрес возврата в mov [es:io_rom_init],offset real ;реальный режим
mov al,08fh ;подготовка к out cmos_port,al ;сбросу процессора jmp short $+2 mov al,5 out cmos_port+1,al cli ;перпрограммирование mov bh,32d ;конролеров mov bl,48d ;прерываний call _Set_Irq
in al,inta01 and al,0fch ; Разрешить прерывания out inta01,al ; таймера и клавиатуры
lgdt [Qword Ptr Gdt_Pointer] ; загрузка GDTR lidt [Fword Ptr Idt_Pointer] ; загрузка IDTR mov eax,cr0 or ax,1 mov cr0,eax ;переход в защищенный режим jumpfar Spm_2,System_Code ; настройка CS на ; сегмент кода
;------------------------------------------------------------- ; Запись строки в видеопамять ; Вход : DS:SI - адрес строки ; CX - длина строки ; BH - строка ; BL - колонка ; DH - атрибут ; Used : переменная COLUMNS : количество столбцов на экране ;------------------------------------------------------------- WRITEXY PROC push di si push es push video_desc pop es xor di,di mov dl,gs:[columns] mov al,bh mul dl xor bh,bh add ax,bx shl ax,1 mov di,ax mov ah,dh w_l: lodsb stosw loop w_l pop es pop si di ret WRITEXY ENDP
;************************************************************* ;* задержка время в CX ;************************************************************* DELAY PROC Del_1: pusha popa loop Del_1 ret DELAY ENDP
PublicCode_len Equ $-PublicCode
;************************************************************* ;* код задачи Task3 ;************************************************************* Task3code Proc xor di,di mov cx,word ptr [di] ; позиция mov si,2 ; смещение стороки T3_1: mov bx,cx mov al,byte ptr [si] inc si cmp al,'$' je T3_Exit ; вывод сообщения mov ah,1 ; на экран с помощью int 40d ; прерывания INT 40h call T3_Delay ; задержка inc cl cmp cl,80 jne t3_2 xor cl,cl inc ch T3_2: jmp Short T3_1 xor dx,dx T3_exit: mov ah,2 mov bx,0e25h int 40d inc dx call T3_Delay jmp Short T3_Exit T3_delay: push cx mov cx,09ffh T3d_1: pusha popa loop t3d_1 pop cx ret Task3code Endp Task3Code_len Equ $-Task3Code
Cseg_Leng Equ $ Cseg Ends End Start
Обсуждение
В консультации пока нет ответов.
Форма ответа
Отправка постов/ответов доступна только зарегистрированным и подтвержденным пользователям.
{"canUserNotesAccess":false,"canUserAdminsNotesAccess":false,"canAskQuestion":false,"canEditQuestions":false,"canSeeQuestionsComplains":false,"isSuperAdmin":false,"isAdmin":false,"isModer":false,"canCreateNewUser":false,"canConfirmUser":false,"canEditUserName":false,"canEditUserRole":false,"canEditUserEmail":false,"canEditUserPhone":false,"canEditUserBirthdate":false,"canEditUserCountry":false,"canEditSocialMedia":false,"canDeleteUserPhoto":false,"canDeleteUser":false,"canEditUserAbout":false,"canBanUser":false,"canResetUserPassword":false,"canEditRegistDate":false,"canChangeUserRating":false,"canAccessToAdmin":false,"canAnnouncements":false,"canManageQuestionPosts":false,"canManageForumSections":false,"canManageForumThreads":false,"canManageForumPosts":false,"canCreateForumThreads":false,"canSeeUserEmail":false,"canSeeUserPhone":false,"canSeeIPAddress":false,"canSeeUserRegistDate":false,"canSeeUserSocialMedia":false,"canSeeBirthDate":false,"canSeeUserCountry":false,"canSeeUserSettings":false,"canSeeDeletedPosts":false,"isEmailConfirmed":false,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":0,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-54 мин."},"isBanned":false,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":0,"absoluteRating":0,"dynamicRating":0,"dynamicRatingStars":0,"timezone":{"id":283,"baseUtcOffset":"03:00:00","displayName":"(UTC\u002B03:00) Москва","linuxid":"Europe/Moscow"},"currentDateTime":"2024-05-20T04:54:16.562387+03:00","isValid":false,"isUnconfirmed":true,"isConfirmed":false,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":1,"counters":{"daysAtPortal":0,"questions":0,"questionsPosts":0,"questionsAnswers":0,"questionsPostsEvaluations":0,"forumPosts":0},"isRfproUserClass":true,"id":0,"name":"Неизвестный","email":"","role":0,"registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":false,"isNewUser":false,"isExisted":false,"isExpert":false}