Fulltext Affective Computing Rahul Khanna19 Dec 2024 One minute Enter Encrypt againPHNjcmlwda28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8CB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0gJy9qcy9wZGYtanMvYnVpbGQvcGRmLmpzJz48L3NjcmlwdD4KCjxzdHlsZT4KICAjZW1iZWQtcGRmLWNvbnRhaW5lciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogYXV0bzsKICAgIG1pbi1oZWlnaHQ6IDIwdmg7CiAgICAgCiAgfQogIAogIC5wZGYtY2FudmFzIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogICAgZGlyZWN0aW9uOiBsdHI7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogYXV0bzsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQogIAogICN0aGUtY2FudmFzIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogICAgZGlyZWN0aW9uOiBsdHI7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogYXV0bzsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQogIAogIAogIC5wZGYtbG9hZGluZ1dyYXBwZXIgewogICAgZGlzcGxheTogbm9uZTsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAzNTBweDsKICB9CiAgCiAgLnBkZi1sb2FkaW5nIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHdpZHRoOiA1MHB4OwogICAgaGVpZ2h0OiA1MHB4OwogICAgYm9yZGVyOiAzcHggc29saWQgI2QyZDBkMDs7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBib3JkZXItdG9wLWNvbG9yOiAjMzgzODM4OwogICAgYW5pbWF0aW9uOiBzcGluIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgfQogIAogIAogIAogIAogIAogICNvdmVybGF5VGV4dCB7CiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICBkaXNwbGF5OiBncmlkOwogICAganVzdGlmeS1jb250ZW50OiBlbmQ7CiAgfQogIAogICNvdmVybGF5VGV4dCBhIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRvcDogMTBweDsKICAgIHJpZ2h0OiA0cHg7CiAgICBjb2xvcjogIzAwMDsKICAgIG1hcmdpbjogYXV0bzsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7CiAgICBwYWRkaW5nOiAwLjNlbSAxZW07CiAgICBib3JkZXI6IHNvbGlkIDJweDsKICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICBib3JkZXItY29sb3I6ICMwMDAwMDAzMDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB9CiAgCiAgI292ZXJsYXlUZXh0IHN2ZyB7CiAgICBoZWlnaHQ6IGNsYW1wKDFlbSwgMnZ3LCAxLjRlbSk7CiAgICB3aWR0aDogIGNsYW1wKDFlbSwgMnZ3LCAxLjRlbSk7CiAgfQogIAogIAogIAogIEBrZXlmcmFtZXMgc3BpbiB7CiAgICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogIH0KICBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogIH0KICA8L3N0eWxlPjxkaXYgY2xhc3M9ImVtYmVkLXBkZi1jb250YWluZXIiIGlkPSJlbWJlZC1wZGYtY29udGFpbmVyLWU1MzY5OGJlIj4KICAgIDxkaXYgY2xhc3M9InBkZi1sb2FkaW5nV3JhcHBlciIgaWQ9InBkZi1sb2FkaW5nV3JhcHBlci1lNTM2OThiZSI+CiAgICAgICAgPGRpdiBjbGFzcz0icGRmLWxvYWRpbmciIGlkPSJwZGYtbG9hZGluZy1lNTM2OThiZSI+PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9Im92ZXJsYXlUZXh0Ij4KICAgICAgPGEgaHJlZj0iL2Z1bGx0ZXh0cy9hZmZlY3RpdmUtY29tcHV0aW5nLnBkZiIgYXJpYS1sYWJlbD0iRG93bmxvYWQiIGRvd25sb2FkPgogICAgICAgIDxzdmcgYXJpYS1oaWRkZW49InRydWUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgICAgICAgICAgPHBhdGggZD0iTTkgMTNjLjMgMCAuNS0uMS43LS4zTDE1LjQgNyAxNCA1LjZsLTQgNFYxSDh2OC42bC00LTRMMi42IDdsNS43IDUuN2MuMi4yLjQuMy43LjN6bS03IDJoMTR2MkgyeiIgLz4KICAgICAgICA8L3N2Zz4KICAgICAgPC9hPgogICAgPC9kaXY+CiAgICA8Y2FudmFzIGNsYXNzPSJwZGYtY2FudmFzIiBpZD0icGRmLWNhbnZhcy1lNTM2OThiZSI+PC9jYW52YXM+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGRmLXBhZ2luYXRvciIgaWQ9InBkZi1wYWdpbmF0b3ItZTUzNjk4YmUiPgogICAgPGJ1dHRvbiBpZD0icGRmLXByZXYtZTUzNjk4YmUiPlByZXZpb3VzPC9idXR0b24+CiAgICA8YnV0dG9uIGlkPSJwZGYtbmV4dC1lNTM2OThiZSI+TmV4dDwvYnV0dG9uPiAmbmJzcDsgJm5ic3A7CiAgICA8c3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InBkZi1wYWdlbnVtIiBpZD0icGRmLXBhZ2VudW0tZTUzNjk4YmUiPjwvc3Bhbj4gLyA8c3BhbiBjbGFzcz0icGRmLXBhZ2Vjb3VudCIgaWQ9InBkZi1wYWdlY291bnQtZTUzNjk4YmUiPjwvc3Bhbj4KICAgIDwvc3Bhbj4KICAgIDxhIGNsYXNzPSJwZGYtc291cmNlIiBpZD0icGRmLXNvdXJjZS1lNTM2OThiZSIgaHJlZj0iL2Z1bGx0ZXh0cy9hZmZlY3RpdmUtY29tcHV0aW5nLnBkZiI+W3BkZl08L2E+CjwvZGl2PgoKPG5vc2NyaXB0PgpWaWV3IHRoZSBQREYgZmlsZSA8YSBjbGFzcz0icGRmLXNvdXJjZSIgaWQ9InBkZi1zb3VyY2Utbm9zY3JpcHQtZTUzNjk4YmUiIGhyZWY9Ii9mdWxsdGV4dHMvYWZmZWN0aXZlLWNvbXB1dGluZy5wZGYiPmhlcmU8L2E+Lgo8L25vc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgKGZ1bmN0aW9uKCl7CiAgICB2YXIgdXJsID0gJ1wvZnVsbHRleHRzXC9hZmZlY3RpdmUtY29tcHV0aW5nLnBkZic7CgogICAgdmFyIGhpZGVQYWdpbmF0b3IgPSAiIiA9PT0gInRydWUiOwogICAgdmFyIGhpZGVMb2FkZXIgPSAiIiA9PT0gInRydWUiOwogICAgdmFyIHNlbGVjdGVkUGFnZU51bSA9IHBhcnNlSW50KCIiKSB8fCAxOwoKICAgIAogICAgdmFyIHBkZmpzTGliID0gd2luZG93WydwZGZqcy1kaXN0L2J1aWxkL3BkZiddOwoKICAgIAogICAgaWYgKHBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjID09ICcnKQogICAgICBwZGZqc0xpYi5HbG9iYWxXb3JrZXJPcHRpb25zLndvcmtlclNyYyA9ICJodHRwczpcL1wvcmFodWwuYXVcLyIgKyAnanMvcGRmLWpzL2J1aWxkL3BkZi53b3JrZXIuanMnOwoKICAgIAogICAgdmFyIHBkZkRvYyA9IG51bGwsCiAgICAgICAgcGFnZU51bSA9IHNlbGVjdGVkUGFnZU51bSwKICAgICAgICBwYWdlUmVuZGVyaW5nID0gZmFsc2UsCiAgICAgICAgcGFnZU51bVBlbmRpbmcgPSBudWxsLAogICAgICAgIHNjYWxlID0gMywKICAgICAgICBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGRmLWNhbnZhcy1lNTM2OThiZScpLAogICAgICAgIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLAogICAgICAgIHBhZ2luYXRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZGYtcGFnaW5hdG9yLWU1MzY5OGJlIiksCiAgICAgICAgbG9hZGluZ1dyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGRmLWxvYWRpbmdXcmFwcGVyLWU1MzY5OGJlJyk7CgoKICAgIAogICAgc2hvd1BhZ2luYXRvcigpOwogICAgc2hvd0xvYWRlcigpOwoKICAgIAoKICAgIGZ1bmN0aW9uIHJlbmRlclBhZ2UobnVtKSB7CiAgICAgIHBhZ2VSZW5kZXJpbmcgPSB0cnVlOwogICAgICAKICAgICAgcGRmRG9jLmdldFBhZ2UobnVtKS50aGVuKGZ1bmN0aW9uKHBhZ2UpIHsKICAgICAgICB2YXIgdmlld3BvcnQgPSBwYWdlLmdldFZpZXdwb3J0KHtzY2FsZTogc2NhbGV9KTsKICAgICAgICBjYW52YXMuaGVpZ2h0ID0gdmlld3BvcnQuaGVpZ2h0OwogICAgICAgIGNhbnZhcy53aWR0aCA9IHZpZXdwb3J0LndpZHRoOwoKICAgICAgICAKICAgICAgICB2YXIgcmVuZGVyQ29udGV4dCA9IHsKICAgICAgICAgIGNhbnZhc0NvbnRleHQ6IGN0eCwKICAgICAgICAgIHZpZXdwb3J0OiB2aWV3cG9ydAogICAgICAgIH07CiAgICAgICAgdmFyIHJlbmRlclRhc2sgPSBwYWdlLnJlbmRlcihyZW5kZXJDb250ZXh0KTsKCiAgICAgICAgCiAgICAgICAgcmVuZGVyVGFzay5wcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICBwYWdlUmVuZGVyaW5nID0gZmFsc2U7CiAgICAgICAgICBzaG93Q29udGVudCgpOwoKICAgICAgICAgIGlmIChwYWdlTnVtUGVuZGluZyAhPT0gbnVsbCkgewogICAgICAgICAgICAKICAgICAgICAgICAgcmVuZGVyUGFnZShwYWdlTnVtUGVuZGluZyk7CiAgICAgICAgICAgIHBhZ2VOdW1QZW5kaW5nID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSk7CgogICAgICAKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BkZi1wYWdlbnVtLWU1MzY5OGJlJykudGV4dENvbnRlbnQgPSBudW07CiAgICB9CgogICAgCgogICAgZnVuY3Rpb24gc2hvd0NvbnRlbnQoKSB7CiAgICAgIGxvYWRpbmdXcmFwcGVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgIGNhbnZhcy5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgIH0KCiAgICAKCiAgICBmdW5jdGlvbiBzaG93TG9hZGVyKCkgewogICAgICBpZihoaWRlTG9hZGVyKSByZXR1cm4KICAgICAgbG9hZGluZ1dyYXBwZXIuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsKICAgICAgY2FudmFzLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB9CgogICAgCgogICAgZnVuY3Rpb24gc2hvd1BhZ2luYXRvcigpIHsKICAgICAgaWYoaGlkZVBhZ2luYXRvcikgcmV0dXJuCiAgICAgIHBhZ2luYXRvci5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgIH0KCiAgICAKCiAgICBmdW5jdGlvbiBxdWV1ZVJlbmRlclBhZ2UobnVtKSB7CiAgICAgIGlmIChwYWdlUmVuZGVyaW5nKSB7CiAgICAgICAgcGFnZU51bVBlbmRpbmcgPSBudW07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmVuZGVyUGFnZShudW0pOwogICAgICB9CiAgICB9CgogICAgCgogICAgZnVuY3Rpb24gb25QcmV2UGFnZSgpIHsKICAgICAgaWYgKHBhZ2VOdW0gPD0gMSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBwYWdlTnVtLS07CiAgICAgIHF1ZXVlUmVuZGVyUGFnZShwYWdlTnVtKTsKICAgIH0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwZGYtcHJldi1lNTM2OThiZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25QcmV2UGFnZSk7CgogICAgCgogICAgZnVuY3Rpb24gb25OZXh0UGFnZSgpIHsKICAgICAgaWYgKHBhZ2VOdW0gPj0gcGRmRG9jLm51bVBhZ2VzKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHBhZ2VOdW0rKzsKICAgICAgcXVldWVSZW5kZXJQYWdlKHBhZ2VOdW0pOwogICAgfQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BkZi1uZXh0LWU1MzY5OGJlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvbk5leHRQYWdlKTsKCiAgICAKCiAgICBwZGZqc0xpYi5nZXREb2N1bWVudCh1cmwpLnByb21pc2UudGhlbihmdW5jdGlvbihwZGZEb2NfKSB7CiAgICAgIHBkZkRvYyA9IHBkZkRvY187CiAgICAgIHZhciBudW1QYWdlcyA9IHBkZkRvYy5udW1QYWdlczsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BkZi1wYWdlY291bnQtZTUzNjk4YmUnKS50ZXh0Q29udGVudCA9IG51bVBhZ2VzOwoKICAgICAgCiAgICAgIGlmKHBhZ2VOdW0gPiBudW1QYWdlcykgewogICAgICAgIHBhZ2VOdW0gPSBudW1QYWdlcwogICAgICB9CgogICAgICAKICAgICAgcmVuZGVyUGFnZShwYWdlTnVtKTsKICAgIH0pOwogICAgfSkoKTsKPC9zY3JpcHQ+