{"behavior":"degenerate_repetition","label_filter":null,"limit":10,"next_offset":5456,"offset":5446,"previous_offset":null,"rows":[{"assistant_initiates":false,"asst_text":"```json\n{\n    \"BestAnswer\": 2\n}\n```\n\n**\u041e\u0431\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435:**\n\n1. **\u0421\u043c\u044b\u0441\u043b\u043e\u0432\u0430\u044f \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c:** \n   - \u041e\u0431\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u044e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u043c\u043e\u0434\u0435\u043b\u044c 2 \u0434\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0433 \u0437\u0430 \u0448\u0430\u0433\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043b\u0443\u0447\u0448\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u044d\u0442\u0430\u043b\u043e\u043d\u0443.\n\n2. **\u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0435\u0439:**\n   - \u041e\u0442\u0432\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 2 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0448\u0430\u0433\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0434\u0430\u0442\u0430\u043c\u0438 \u0438 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \"\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044c\", \u0447\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0435\u0442\u0430\u043b\u044f\u043c \u0432 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0435.\n   - \u041e\u0442\u0432\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 1 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0447\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043c\u044b\u0432\u0430\u0435\u0442 \u0444\u043e\u043a\u0443\u0441 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u041c\u043e\u0434\u0435\u043b\u044c 2 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u0442\u043a\u043e \u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430.\n\n3. **\u041e\u0431\u0449\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0441\u0442\u044c:**\n   - \u041e\u0431\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u044b. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043e\u0442\u0432\u0435\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 2 \u0431\u044b\u043b\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u043b\u043e\u0432\u0430 \"1\u0421:\u0411\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u044f\" \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043c\u043e\u0434\u0435\u043b\u044c\u044e 1.\n\n\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u044d\u0442\u0430\u043b\u043e\u043d\u0443, \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0448\u0430\u0433\u043e\u0432, \u043e\u0442\u0432\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 2 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0443\u0447\u0448\u0438\u043c.","behavior":"degenerate_repetition","conversation_hash":"ab69770d01a0af3cb4c218355394b4de","conversation_redacted":false,"conversation_toxic":false,"country":"United Kingdom","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"Russian","model":"gpt-4o-2024-08-06","n_chars":4138,"n_turns_in_conversation":1,"n_words":574,"source_row_offset":5446,"source_shard":"turns-00053.parquet","timestamp":"Mon, 18 Nov 2024 18:12:00 GMT","turn_id":"bda43c4a73563ae152309a7c","turn_index":0,"user_text":"\u0422\u044b \u2014 \u044d\u043a\u0441\u043f\u0435\u0440\u0442 \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 1\u0421:\u0411\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u044f 8 (\u0440\u0435\u0434. 3.0).  \n\u042f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0432\u043e\u043f\u0440\u043e\u0441, \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0438 \u0434\u0432\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439. \u0422\u0432\u043e\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u0439 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432:  \n\n- \u0421\u043c\u044b\u0441\u043b\u043e\u0432\u0430\u044f \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c: \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u0438\u0437\u043e\u043a \u0441\u043c\u044b\u0441\u043b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u043a \u044d\u0442\u0430\u043b\u043e\u043d\u0443.  \n- \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0435\u0439: \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0442\u0432\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0444\u0430\u043a\u0442\u044b \u0438 \u0430\u0441\u043f\u0435\u043a\u0442\u044b, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0435.  \n- \u041e\u0431\u0449\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0441\u0442\u044c: \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0432\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u043d, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u044b \u0438 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0448\u0438\u0431\u043e\u043a.  \n\n\u0412\u044b\u0431\u0435\u0440\u0438 \u043b\u0443\u0447\u0448\u0438\u0439 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432:  \n- \u0415\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043b\u0443\u0447\u0448\u0435, \u0443\u043a\u0430\u0436\u0438 \u043d\u043e\u043c\u0435\u0440 \u043c\u043e\u0434\u0435\u043b\u0438 (1 \u0438\u043b\u0438 2).  \n- \u0415\u0441\u043b\u0438 \u043e\u0442\u0432\u0435\u0442\u044b \u0440\u0430\u0432\u043d\u044b \u043f\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0443, \u0443\u043a\u0430\u0436\u0438 0.  \n\n\u0412\u043e\u043f\u0440\u043e\u0441:  \n{\u041a\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430?}  \n\n\u042d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442:\n{\u0418\u0441\u0442\u043e\u0440\u0438\u044e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \"1\u0421:\u0411\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u044f 8\" (\u0440\u0435\u0434. 3.0) \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f\u0445 \u043e\u0431 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 (\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a \"\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438\").\n  1. \u0420\u0430\u0437\u0434\u0435\u043b: \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u2013 \u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438.\n  2. \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u0431\u043b\u043e\u043a \"\u0410\u0434\u0440\u0435\u0441 \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\".\n  3. \u0412 \u0431\u043b\u043e\u043a\u0435 \"\u0410\u0434\u0440\u0435\u0441 \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\" \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \"\u0418\u0441\u0442\u043e\u0440\u0438\u044f\" \u0432 \u0444\u043e\u0440\u043c\u0443 \"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\".\n  4. \u0412 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u044b \"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\" \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u041b\u044e\u0431\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0441 \u043d\u043e\u0432\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c.\n  5. \u041a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0444\u043e\u0440\u043c\u0435 \"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\" \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0441 \u0434\u0430\u0442\u044b \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \"\u0414\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\" \u043d\u0430 \u0434\u0430\u0442\u0443 \u0432 \u044d\u0442\u043e\u0439 \u0436\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438.}  \n\n\u041e\u0442\u0432\u0435\u0442 \u041c\u043e\u0434\u0435\u043b\u0438 1:  \n{\u041a\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430?\n- \u0414\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \"1\u0421:\u0411\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u044f 8\" \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b \"\u0413\u043b\u0430\u0432\u043d\u043e\u0435\", \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0443\u043d\u043a\u0442 \"\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438\". \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443 \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u0412 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \"\u0418\u0441\u0442\u043e\u0440\u0438\u044f\", \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\". \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0430\u0442\u0443 \u043d\u0430\u0447\u0430\u043b\u0430 \u0435\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445.}  \n\n\u041e\u0442\u0432\u0435\u0442 \u041c\u043e\u0434\u0435\u043b\u0438 2: \n{\u041a\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430?\n\u0427\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \"1\u0421:\u0411\u0443\u0445\u0433\u0430\u043b\u0435\u0442\u0435\u0440\u0438\u044f 8\" (\u0440\u0435\u0434. 3.0) \u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438:\n\n1. \u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b \"\u0413\u043b\u0430\u0432\u043d\u043e\u0435\" \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0443\u043d\u043a\u0442 \"\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438\".\n2. \u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u0443\u0436\u043d\u0443\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441.\n3. \u0412 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0439\u0434\u0438\u0442\u0435 \u0431\u043b\u043e\u043a \"\u0410\u0434\u0440\u0435\u0441 \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\".\n4. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \"\u0418\u0441\u0442\u043e\u0440\u0438\u044f\", \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\".\n5. \u0412 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u0432 \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435.\n6. \u0414\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\". \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0438 \u0434\u0430\u0442\u0443 \u0435\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f.\n7. \u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0438 \"\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044c\".\n\n\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \"1\u0421:\u0411\u0443\u0445\u0433\u0430\u043b\u0435\u0442\u0435\u0440\u0438\u044f 8\" (\u0440\u0435\u0434. 3.0) \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.}  \n\n\u041e\u0446\u0435\u043d\u0438 \u043e\u0431\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u043e \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON.\n\u0412\u044b\u0432\u043e\u0434: \n{\n    \"BestAnswer\": 0, 1 \u0438\u043b\u0438 2\n}\n"},{"assistant_initiates":false,"asst_text":"\u0915\u094d\u092f\u093e \u0906\u092a \u092e\u0947\u0930\u0947 \u0921\u094d\u0930\u093e\u0907\u0935\u093f\u0902\u0917 \u0932\u093e\u0907\u0938\u0947\u0902\u0938 \u0938\u0924\u094d\u092f\u093e\u092a\u0928 \u0915\u0947 \u092a\u0930\u093f\u0923\u093e\u092e \u092a\u094d\u0930\u093e\u092a\u094d\u0924 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u092e\u0947\u0930\u0940 \u092e\u0926\u0926 \u0915\u0930 \u0938\u0915\u0924\u0947 \u0939\u0948\u0902, \u0905\u0928\u0941\u0930\u094b\u0927 \u0906\u0908\u0921\u0940 \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0915\u0947?","behavior":"degenerate_repetition","conversation_hash":"2d275bc9b036d68cf503b1ef9c8d7ce1","conversation_redacted":false,"conversation_toxic":false,"country":"United States","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4o-2024-08-06","n_chars":365,"n_turns_in_conversation":1,"n_words":56,"source_row_offset":5447,"source_shard":"turns-00053.parquet","timestamp":"Mon, 18 Nov 2024 18:12:12 GMT","turn_id":"ea78bec1bb7d46effc648ad8","turn_index":0,"user_text":"Translate the text to India :\nCould you help me get the results for my driving license verification using the request ID?.\n\n                    Please only output the translation result. Do not output anything else.\n\n                    You response:"},{"assistant_initiates":false,"asst_text":"1 + 1 equals 2.","behavior":"degenerate_repetition","conversation_hash":"bfef7aab6f58da9efdcd937954e73858","conversation_redacted":false,"conversation_toxic":false,"country":"Russia","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"Latin","model":"gpt-4o-2024-08-06","n_chars":19,"n_turns_in_conversation":1,"n_words":6,"source_row_offset":5448,"source_shard":"turns-00053.parquet","timestamp":"Mon, 18 Nov 2024 18:12:16 GMT","turn_id":"030cc01d9de1cb520037e552","turn_index":0,"user_text":"1+1"},{"assistant_initiates":false,"asst_text":"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435!\n\n\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u0430\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430. \u042f \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442 \u0432\u044b\u0441\u0435\u043b\u0438\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (\u0438\u043b\u0438 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438), \u0437\u0430\u043f\u0438\u0441\u044c \u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 \"\u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\", \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \"\u0410\u0440\u0445\u0438\u0432\u044b\", \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u043f\u043b\u0430\u0442\u0435 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \"\u041f\u043b\u0430\u0442\u0435\u0436\u0438\" \u043a\u0430\u043a \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430, \u0442\u0430\u043a \u0438 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430.\n\n**1. \u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0430\u0440\u0445\u0438\u0432 \u043f\u0440\u0438 \u0432\u044b\u0441\u0435\u043b\u0435\u043d\u0438\u0438**\n\n\u0412 \u0432\u0430\u0448\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0435 `DashboardReceptionist`, \u0432\u043d\u0443\u0442\u0440\u0438 `ReservationsPanel`, \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 `checkOut(int reservationId)`, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0441\u0435\u043b\u0435\u043d\u0438\u044f.\n\n\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434:\n\n- **\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b `Reservations`**: \u041c\u0435\u0442\u043e\u0434 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u0441\u0435\u043b\u0438\u0442\u044c.\n\n- **\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \"\u0412\u044b\u0441\u0435\u043b\u0435\u043d\"**: \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 `Reservations` \u0441\u0442\u0430\u0442\u0443\u0441 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 `\u0412\u044b\u0441\u0435\u043b\u0435\u043d`.\n\n- **\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 `Archived_Reservations`**: \u0412\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 `Archived_Reservations`, \u0432\u043a\u043b\u044e\u0447\u0430\u044f `reservation_id`, `customer_id`, `room_id`, \u0434\u0430\u0442\u044b \u0437\u0430\u0435\u0437\u0434\u0430 \u0438 \u0432\u044b\u0435\u0437\u0434\u0430, \u0441\u0442\u0430\u0442\u0443\u0441, \u043e\u0431\u0449\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.\n\n- **\u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b `Reservations`**: \u041f\u043e\u0441\u043b\u0435 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438, \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439.\n\n- **\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u043e\u043c\u0435\u0440\u0430 \u043d\u0430 \"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d\"**: \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 `Rooms` \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u043e\u043c\u0435\u0440\u0430 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 `\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d`, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c.\n\n\u0412\u043e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430:\n\n```java\nprivate void checkOut(int reservationId) {\n    String selectQuery = \"SELECT * FROM Reservations WHERE reservation_id = ?\";\n    String updateQuery = \"UPDATE Reservations SET status = '\u0412\u044b\u0441\u0435\u043b\u0435\u043d', updated_at = NOW() WHERE reservation_id = ?\";\n    String insertArchiveQuery = \"INSERT INTO Archived_Reservations (reservation_id, customer_id, room_id, check_in, check_out, status, total_amount, created_at, updated_at) \" +\n            \"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\";\n    String deleteQuery = \"DELETE FROM Reservations WHERE reservation_id = ?\";\n\n    //... (\u043a\u043e\u0434 \u043e\u043f\u0443\u0449\u0435\u043d \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438)\n\n    // \u0412\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430 try \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u044b\u0431\u043e\u0440\u043a\u0430, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435, \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\n\n    // \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u043d\u0430 '\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d'\n    String updateRoomQuery = \"UPDATE Rooms SET status = '\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d' WHERE room_id = ?\";\n    //... (\u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f updateRoomQuery)\n}\n```\n\n\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442 \u0432\u044b\u0441\u0435\u043b\u044f\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0435\u0433\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b `Reservations` \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 `Archived_Reservations`, \u043a\u0430\u043a \u0432\u044b \u0438 \u0445\u043e\u0442\u0435\u043b\u0438.\n\n**2. \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u043e\u043f\u043b\u0430\u0442\u0435**\n\n\u0412 \u043f\u0430\u043d\u0435\u043b\u0438 `PaymentsPanel` \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 `Payments` \u0441 \u043e\u0431\u043e\u0438\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 `Reservations` \u0438 `Archived_Reservations`, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0438 \u043d\u043e\u043c\u0435\u0440\u0435.\n\n\u0412\u043e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0438\u0437 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 `PaymentsPanel`:\n\n```java\nprivate void loadPayments() {\n    tableModel.setRowCount(0);\n    String query = \"SELECT p.payment_id, p.reservation_id, c.full_name, r.room_number, \" +\n            \"p.payment_date, p.amount, p.payment_method \" +\n            \"FROM Payments p \" +\n            \"LEFT JOIN Reservations res ON p.reservation_id = res.reservation_id \" +\n            \"LEFT JOIN Archived_Reservations ar ON p.reservation_id = ar.reservation_id \" +\n            \"LEFT JOIN Customers c ON (res.customer_id = c.customer_id OR ar.customer_id = c.customer_id) \" +\n            \"LEFT JOIN Rooms r ON (res.room_id = r.room_id OR ar.room_id = r.room_id)\";\n    //... (\u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b)\n}\n```\n\n\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f `LEFT JOIN` \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 `Reservations` \u0438 `Archived_Reservations`, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430\u043c, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.\n\n**3. \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044f\u0445 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0438 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430**\n\n\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 `PaymentsPanel` \u043a\u0430\u043a \u0432 `DashboardAdmin`, \u0442\u0430\u043a \u0438 \u0432 `DashboardReceptionist`. \u041e\u0431\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439, \u0447\u0442\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430\u0445 \u043d\u0430 \u043e\u0431\u0435\u0438\u0445 \u043f\u0430\u043d\u0435\u043b\u044f\u0445.\n\n**\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435**\n\n\u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0430\u043c\u0438 \u043a\u043e\u0434\u0430, \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u043e\u043f\u0438\u0441\u0430\u043b\u0438, \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430:\n\n- \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0441\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0435\u0433\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b `Reservations` \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 `Archived_Reservations`.\n- \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u043f\u043b\u0430\u0442\u0435, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u043a\u0430\u043a \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c\u0438, \u0442\u0430\u043a \u0438 \u0441 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \"\u041f\u043b\u0430\u0442\u0435\u0436\u0438\" \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044f\u0445 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0438 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430.\n\n**\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438**\n\n\u0427\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0435\u0441\u0442\u044b:\n\n- **\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0432\u044b\u0441\u0435\u043b\u0435\u043d\u0438\u044f**: \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u043e\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0430 \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0441\u0435\u043b\u0438\u0442\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u043d\u0435\u043b\u044c \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \"\u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\", \u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \"\u0410\u0440\u0445\u0438\u0432\u044b\".\n\n- **\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439**: \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u043f\u043b\u0430\u0442\u0435 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0432\u0441\u0451 \u0435\u0449\u0451 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \"\u041f\u043b\u0430\u0442\u0435\u0436\u0438\" \u043a\u0430\u043a \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430, \u0442\u0430\u043a \u0438 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430.\n\n- **\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438**: \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0451\u0442\u0435\u0441\u044c \u0441 \u043a\u0430\u043a\u0438\u043c\u0438-\u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043b\u0430\u0442\u0435\u0436 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0438\u043b\u0438 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432, \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0442\u043b\u0430\u0434\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043a\u043e\u0434\u0430.\n\n\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043a\u043e\u0434\u0430, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u0435 \u043c\u043d\u0435, \u0438 \u044f \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0430\u043c \u0434\u0430\u043b\u044c\u0448\u0435.\n\n\u0421 \u0443\u0432\u0430\u0436\u0435\u043d\u0438\u0435\u043c.","behavior":"degenerate_repetition","conversation_hash":"5322a4db2f3acac3ee7e9d15096e483d","conversation_redacted":false,"conversation_toxic":false,"country":"Kyrgyzstan","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"o1-preview-2024-09-12","n_chars":108458,"n_turns_in_conversation":1,"n_words":8156,"source_row_offset":5449,"source_shard":"turns-00053.parquet","timestamp":"Mon, 18 Nov 2024 18:12:25 GMT","turn_id":"89ec2020366a5e9803c5d5f4","turn_index":0,"user_text":"\n-- \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\nCREATE DATABASE IF NOT EXISTS hotel;\nUSE hotel;\n\n-- \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Administrators\nCREATE TABLE Administrators (\n    admin_id INT AUTO_INCREMENT PRIMARY KEY,\n    full_name VARCHAR(150) NOT NULL,\n    passport_number VARCHAR(20) UNIQUE NOT NULL,\n    address TEXT NOT NULL,\n    phone_number VARCHAR(30) UNIQUE NOT NULL,\n    email VARCHAR(100) UNIQUE NOT NULL,\n    login VARCHAR(30) UNIQUE NOT NULL,\n    password VARCHAR(255) NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\n);\n\n-- \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Receptionists\nCREATE TABLE Receptionists (\n    receptionist_id INT AUTO_INCREMENT PRIMARY KEY,\n    full_name VARCHAR(150) NOT NULL,\n    passport_number VARCHAR(20) UNIQUE NOT NULL,\n    address TEXT NOT NULL,\n    phone_number VARCHAR(15) UNIQUE NOT NULL,\n    email VARCHAR(100) UNIQUE NOT NULL,\n    login VARCHAR(20) UNIQUE NOT NULL,\n    password VARCHAR(255) NOT NULL,\n    admin_id INT NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    FOREIGN KEY (admin_id) REFERENCES Administrators(admin_id) ON DELETE CASCADE\n);\n\n-- \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Rooms\nCREATE TABLE Rooms (\n    room_id INT AUTO_INCREMENT PRIMARY KEY,\n    room_number INT UNIQUE NOT NULL,\n    status ENUM('\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d', '\u041d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d', '\u0422\u0440\u0435\u0431\u0443\u0435\u0442 \u0443\u0431\u043e\u0440\u043a\u0438') DEFAULT '\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d',\n    price DECIMAL(10,2) NOT NULL,\n    bed_type ENUM('\u041e\u0434\u043d\u043e\u043c\u0435\u0441\u0442\u043d\u044b\u0439', '\u0414\u0432\u0443\u0445\u043c\u0435\u0441\u0442\u043d\u044b\u0439', '\u0422\u0440\u0435\u0445\u043c\u0435\u0441\u0442\u043d\u044b\u0439', '\u0427\u0435\u0442\u044b\u0440\u0435\u0445\u043c\u0435\u0441\u0442\u043d\u044b\u0439') NOT NULL,\n    room_type ENUM('\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442', '\u041b\u044e\u043a\u0441', '\u0414\u0435\u043b\u044e\u043a\u0441') NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\n);\n\n-- \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Customers\nCREATE TABLE Customers (\n    customer_id INT AUTO_INCREMENT PRIMARY KEY,\n    full_name VARCHAR(100) NOT NULL,\n    phone VARCHAR(15) UNIQUE NOT NULL,\n    email VARCHAR(100) UNIQUE,\n    gender ENUM('\u041c\u0443\u0436\u0441\u043a\u043e\u0439', '\u0416\u0435\u043d\u0441\u043a\u0438\u0439'),\n    country VARCHAR(50),\n    address TEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    receptionist_id INT,\n    FOREIGN KEY (receptionist_id) REFERENCES Receptionists(receptionist_id) ON DELETE SET NULL\n);\n\n-- \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Reservations\nCREATE TABLE Reservations (\n    reservation_id INT AUTO_INCREMENT PRIMARY KEY,\n    customer_id INT NOT NULL,\n    room_id INT NOT NULL,\n    check_in DATE NOT NULL,\n    check_out DATE NOT NULL,\n    status ENUM('\u0417\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d', '\u0417\u0430\u0441\u0435\u043b\u0451\u043d', '\u0412\u044b\u0441\u0435\u043b\u0435\u043d', '\u041e\u0442\u043c\u0435\u043d\u0451\u043d') DEFAULT '\u0417\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d',\n    total_amount DECIMAL(10,2),\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    receptionist_id INT,\n    FOREIGN KEY (customer_id) REFERENCES Customers(customer_id) ON DELETE CASCADE,\n    FOREIGN KEY (room_id) REFERENCES Rooms(room_id) ON DELETE CASCADE,\n    FOREIGN KEY (receptionist_id) REFERENCES Receptionists(receptionist_id) ON DELETE RESTRICT\n);\n\n-- \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Payments\nCREATE TABLE Payments (\n    payment_id INT AUTO_INCREMENT PRIMARY KEY,\n    reservation_id INT NOT NULL,\n    amount DECIMAL(10, 2) NOT NULL,\n    payment_date DATE NOT NULL,\n    payment_method ENUM('\u041d\u0430\u043b\u0438\u0447\u043d\u044b\u0435', '\u041a\u0440\u0435\u0434\u0438\u0442\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430', '\u0414\u0435\u0431\u0435\u0442\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430', '\u041e\u043d\u043b\u0430\u0439\u043d \u043f\u0435\u0440\u0435\u0432\u043e\u0434') NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    FOREIGN KEY (reservation_id) REFERENCES Reservations(reservation_id) ON DELETE CASCADE\n);\n\n-- \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Archived_Reservations\nCREATE TABLE IF NOT EXISTS Archived_Reservations (\n    archive_id INT AUTO_INCREMENT PRIMARY KEY,\n    reservation_id INT NOT NULL,\n    customer_id INT NOT NULL,\n    room_id INT NOT NULL,\n    check_in DATE NOT NULL,\n    check_out DATE NOT NULL,\n    status ENUM('\u0417\u0430\u0441\u0435\u043b\u0451\u043d', '\u0412\u044b\u0441\u0435\u043b\u0435\u043d', '\u041e\u0442\u043c\u0435\u043d\u0451\u043d') NOT NULL,\n    total_amount DECIMAL(10,2) NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    FOREIGN KEY (customer_id) REFERENCES Customers(customer_id) ON DELETE CASCADE,\n    FOREIGN KEY (room_id) REFERENCES Rooms(room_id) ON DELETE CASCADE\n);\n\n\n\n\n\n\n\n\n\n\n// src/h/DashboardAdmin.java\npackage h;\n\nimport javax.swing.*;\nimport javax.swing.table.DefaultTableModel;\nimport java.awt.*;\nimport java.awt.event.*;\nimport java.sql.*;\nimport java.security.MessageDigest;\nimport java.security.NoSuchAlgorithmException;\n\npublic class DashboardAdmin extends JFrame {\n\n    private int adminId; // \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\n\n    public DashboardAdmin(int adminId) {\n        this.adminId = adminId;\n        setTitle(\"\u041f\u0430\u043d\u0435\u043b\u044c \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\");\n        setSize(900, 600);\n        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        setLocationRelativeTo(null);\n\n        // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u043e\u043a\n        JTabbedPane tabbedPane = new JTabbedPane();\n\n        tabbedPane.addTab(\"\u0420\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u044b\", new ReceptionistsPanel());\n        tabbedPane.addTab(\"\u041d\u043e\u043c\u0435\u0440\u0430\", new RoomsPanel());\n        tabbedPane.addTab(\"\u0410\u0440\u0445\u0438\u0432\u044b\", new ArchivesPanel());\n        tabbedPane.addTab(\"\u0424\u0438\u043d\u0430\u043d\u0441\u044b\", new FinancePanel());\n\n        add(tabbedPane);\n        setVisible(true);\n    }\n\n    // \u041c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f\n    private String hashPassword(String password) {\n        try {\n            MessageDigest md = MessageDigest.getInstance(\"SHA-256\");\n            byte[] hashBytes = md.digest(password.getBytes());\n\n            StringBuilder sb = new StringBuilder();\n            for(byte b : hashBytes){\n                sb.append(String.format(\"%02x\", b));\n            }\n\n            return sb.toString();\n        } catch (NoSuchAlgorithmException e) {\n            e.printStackTrace();\n            return null;\n        }\n    }\n\n    // \u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430\u043c\u0438\n    class ReceptionistsPanel extends JPanel {\n        private JTable table;\n        private DefaultTableModel tableModel;\n        private JButton addButton, editButton, deleteButton;\n\n        public ReceptionistsPanel() {\n            setLayout(new BorderLayout());\n\n            // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n            tableModel = new DefaultTableModel();\n            tableModel.setColumnIdentifiers(new String[] {\"ID\", \"\u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f\", \"\u041f\u0430\u0441\u043f\u043e\u0440\u0442\", \"\u0410\u0434\u0440\u0435\u0441\", \"\u0422\u0435\u043b\u0435\u0444\u043e\u043d\", \"Email\", \"\u041b\u043e\u0433\u0438\u043d\"});\n            table = new JTable(tableModel);\n            loadReceptionists();\n\n            add(new JScrollPane(table), BorderLayout.CENTER);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\n            JPanel buttonPanel = new JPanel();\n            addButton = new JButton(\"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\");\n            editButton = new JButton(\"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\");\n            deleteButton = new JButton(\"\u0423\u0434\u0430\u043b\u0438\u0442\u044c\");\n            buttonPanel.add(addButton);\n            buttonPanel.add(editButton);\n            buttonPanel.add(deleteButton);\n\n            add(buttonPanel, BorderLayout.SOUTH);\n\n            // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\n            addButton.addActionListener(e -> openReceptionistForm(null));\n            editButton.addActionListener(e -> {\n                int selectedRow = table.getSelectedRow();\n                if (selectedRow >= 0) {\n                    int receptionistId = (int)tableModel.getValueAt(selectedRow, 0);\n                    openReceptionistForm(receptionistId);\n                } else {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\");\n                }\n            });\n            deleteButton.addActionListener(e -> {\n                int selectedRow = table.getSelectedRow();\n                if (selectedRow >= 0) {\n                    int receptionistId = (int)tableModel.getValueAt(selectedRow, 0);\n                    int confirm = JOptionPane.showConfirmDialog(this, \"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430?\", \"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\", JOptionPane.YES_NO_OPTION);\n                    if (confirm == JOptionPane.YES_OPTION) {\n                        deleteReceptionist(receptionistId);\n                        loadReceptionists();\n                    }\n                } else {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f.\");\n                }\n            });\n        }\n\n        private void loadReceptionists() {\n            tableModel.setRowCount(0);\n            String query = \"SELECT receptionist_id, full_name, passport_number, address, phone_number, email, login FROM Receptionists\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    tableModel.addRow(new Object[] {\n                            rs.getInt(\"receptionist_id\"),\n                            rs.getString(\"full_name\"),\n                            rs.getString(\"passport_number\"),\n                            rs.getString(\"address\"),\n                            rs.getString(\"phone_number\"),\n                            rs.getString(\"email\"),\n                            rs.getString(\"login\")\n                    });\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u043e\u0432.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private void openReceptionistForm(Integer receptionistId) {\n            new ReceptionistForm(receptionistId, this);\n        }\n\n        private void deleteReceptionist(int receptionistId) {\n            String query = \"DELETE FROM Receptionists WHERE receptionist_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, receptionistId);\n                pstmt.executeUpdate();\n\n                JOptionPane.showMessageDialog(this, \"\u0420\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d.\");\n\n            } catch (SQLException e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n    }\n\n    // \u0424\u043e\u0440\u043c\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430\n    class ReceptionistForm extends JDialog implements ActionListener {\n        private JTextField nameField, passportField, addressField, phoneField, emailField, loginField;\n        private JPasswordField passwordField;\n        private JButton saveButton, cancelButton;\n        private Integer receptionistId; // Null \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0435 null \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n        private ReceptionistsPanel parentPanel;\n\n        public ReceptionistForm(Integer receptionistId, ReceptionistsPanel parentPanel) {\n            this.receptionistId = receptionistId;\n            this.parentPanel = parentPanel;\n\n            setTitle(receptionistId == null ? \"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0420\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430\" : \"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0420\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430\");\n            setSize(400, 500);\n            setLocationRelativeTo(null);\n            setModal(true);\n            setLayout(new GridBagLayout());\n            GridBagConstraints gbc = new GridBagConstraints();\n            gbc.fill = GridBagConstraints.HORIZONTAL;\n            gbc.insets = new Insets(5,5,5,5);\n\n            // \u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f\n            gbc.gridx = 0;\n            gbc.gridy = 0;\n            add(new JLabel(\"\u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f:\"), gbc);\n            nameField = new JTextField(20);\n            gbc.gridx = 1;\n            add(nameField, gbc);\n\n            // \u041f\u0430\u0441\u043f\u043e\u0440\u0442\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u041d\u043e\u043c\u0435\u0440 \u043f\u0430\u0441\u043f\u043e\u0440\u0442\u0430:\"), gbc);\n            passportField = new JTextField(20);\n            gbc.gridx = 1;\n            add(passportField, gbc);\n\n            // \u0410\u0434\u0440\u0435\u0441\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0410\u0434\u0440\u0435\u0441:\"), gbc);\n            addressField = new JTextField(20);\n            gbc.gridx = 1;\n            add(addressField, gbc);\n\n            // \u0422\u0435\u043b\u0435\u0444\u043e\u043d\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0422\u0435\u043b\u0435\u0444\u043e\u043d:\"), gbc);\n            phoneField = new JTextField(20);\n            gbc.gridx = 1;\n            add(phoneField, gbc);\n\n            // Email\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"Email:\"), gbc);\n            emailField = new JTextField(20);\n            gbc.gridx = 1;\n            add(emailField, gbc);\n\n            // \u041b\u043e\u0433\u0438\u043d\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u041b\u043e\u0433\u0438\u043d:\"), gbc);\n            loginField = new JTextField(20);\n            gbc.gridx = 1;\n            add(loginField, gbc);\n\n            // \u041f\u0430\u0440\u043e\u043b\u044c\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u041f\u0430\u0440\u043e\u043b\u044c:\"), gbc);\n            passwordField = new JPasswordField(20);\n            gbc.gridx = 1;\n            add(passwordField, gbc);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0438\n            gbc.gridx = 0;\n            gbc.gridy++;\n            gbc.gridwidth = 2;\n            JPanel buttonPanel = new JPanel();\n            saveButton = new JButton(\"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\");\n            cancelButton = new JButton(\"\u041e\u0442\u043c\u0435\u043d\u0430\");\n            buttonPanel.add(saveButton);\n            buttonPanel.add(cancelButton);\n            add(buttonPanel, gbc);\n\n            // \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n            if (receptionistId != null) {\n                loadReceptionistData();\n            }\n\n            // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438\n            saveButton.addActionListener(this);\n            cancelButton.addActionListener(e -> dispose());\n\n            setVisible(true);\n        }\n\n        private void loadReceptionistData() {\n            String query = \"SELECT * FROM Receptionists WHERE receptionist_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, receptionistId);\n                try (ResultSet rs = pstmt.executeQuery()) {\n                    if (rs.next()) {\n                        nameField.setText(rs.getString(\"full_name\"));\n                        passportField.setText(rs.getString(\"passport_number\"));\n                        addressField.setText(rs.getString(\"address\"));\n                        phoneField.setText(rs.getString(\"phone_number\"));\n                        emailField.setText(rs.getString(\"email\"));\n                        loginField.setText(rs.getString(\"login\"));\n                        // \u041f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438\n                    }\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        @Override\n        public void actionPerformed(ActionEvent e) {\n            if (e.getSource() == saveButton) {\n                String fullName = nameField.getText().trim();\n                String passport = passportField.getText().trim();\n                String address = addressField.getText().trim();\n                String phone = phoneField.getText().trim();\n                String email = emailField.getText().trim();\n                String login = loginField.getText().trim();\n                String password = new String(passwordField.getPassword()).trim();\n\n                // \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f\n                if (fullName.isEmpty() || passport.isEmpty() || address.isEmpty() ||\n                        phone.isEmpty() || email.isEmpty() || login.isEmpty() ||\n                        (receptionistId == null && password.isEmpty())) {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                    return;\n                }\n\n                try (ConnectMySQL connection = new ConnectMySQL()) {\n                    Connection conn = connection.getConnection();\n                    PreparedStatement pstmt;\n                    if (receptionistId == null) {\n                        // \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430\n                        String query = \"INSERT INTO Receptionists (full_name, passport_number, address, phone_number, email, login, password, admin_id, created_at, updated_at) \" +\n                                \"VALUES (?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW())\";\n                        pstmt = conn.prepareStatement(query);\n                        pstmt.setString(1, fullName);\n                        pstmt.setString(2, passport);\n                        pstmt.setString(3, address);\n                        pstmt.setString(4, phone);\n                        pstmt.setString(5, email);\n                        pstmt.setString(6, login);\n                        pstmt.setString(7, hashPassword(password));\n                        pstmt.setInt(8, adminId); // \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\n                    } else {\n                        // \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430\n                        String query = \"UPDATE Receptionists SET full_name = ?, passport_number = ?, address = ?, phone_number = ?, email = ?, login = ?\" +\n                                (password.isEmpty() ? \"\" : \", password = ?\") +\n                                \", updated_at = NOW() WHERE receptionist_id = ?\";\n                        pstmt = conn.prepareStatement(query);\n                        pstmt.setString(1, fullName);\n                        pstmt.setString(2, passport);\n                        pstmt.setString(3, address);\n                        pstmt.setString(4, phone);\n                        pstmt.setString(5, email);\n                        pstmt.setString(6, login);\n                        int paramIndex = 7;\n                        if (!password.isEmpty()) {\n                            pstmt.setString(paramIndex++, hashPassword(password));\n                        }\n                        pstmt.setInt(paramIndex, receptionistId);\n                    }\n\n                    pstmt.executeUpdate();\n                    JOptionPane.showMessageDialog(this, \"\u0414\u0430\u043d\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b.\");\n                    parentPanel.loadReceptionists();\n                    dispose();\n\n                } catch (SQLIntegrityConstraintViolationException ex) {\n                    JOptionPane.showMessageDialog(this, \"\u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u043d\u0430, \u043f\u0430\u0441\u043f\u043e\u0440\u0442\u0430 \u0438\u043b\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                } catch (Exception ex) {\n                    ex.printStackTrace();\n                    JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                }\n            }\n        }\n    }\n\n    // \u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0430\u043c\u0438\n    class RoomsPanel extends JPanel {\n        private JTable table;\n        private DefaultTableModel tableModel;\n        private JButton addButton, editButton, deleteButton;\n\n        public RoomsPanel() {\n            setLayout(new BorderLayout());\n\n            // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n            tableModel = new DefaultTableModel();\n            tableModel.setColumnIdentifiers(new String[] {\"ID\", \"\u041d\u043e\u043c\u0435\u0440\", \"\u0421\u0442\u0430\u0442\u0443\u0441\", \"\u0426\u0435\u043d\u0430\", \"\u0422\u0438\u043f \u043a\u0440\u043e\u0432\u0430\u0442\u0438\", \"\u0422\u0438\u043f \u043d\u043e\u043c\u0435\u0440\u0430\"});\n            table = new JTable(tableModel);\n            loadRooms();\n\n            add(new JScrollPane(table), BorderLayout.CENTER);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\n            JPanel buttonPanel = new JPanel();\n            addButton = new JButton(\"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\");\n            editButton = new JButton(\"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\");\n            deleteButton = new JButton(\"\u0423\u0434\u0430\u043b\u0438\u0442\u044c\");\n            buttonPanel.add(addButton);\n            buttonPanel.add(editButton);\n            buttonPanel.add(deleteButton);\n\n            add(buttonPanel, BorderLayout.SOUTH);\n\n            // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\n            addButton.addActionListener(e -> openRoomForm(null));\n            editButton.addActionListener(e -> {\n                int selectedRow = table.getSelectedRow();\n                if (selectedRow >= 0) {\n                    int roomId = (int)tableModel.getValueAt(selectedRow, 0);\n                    openRoomForm(roomId);\n                } else {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\");\n                }\n            });\n            deleteButton.addActionListener(e -> {\n                int selectedRow = table.getSelectedRow();\n                if (selectedRow >= 0) {\n                    int roomId = (int)tableModel.getValueAt(selectedRow, 0);\n                    int confirm = JOptionPane.showConfirmDialog(this, \"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440?\", \"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\", JOptionPane.YES_NO_OPTION);\n                    if (confirm == JOptionPane.YES_OPTION) {\n                        deleteRoom(roomId);\n                        loadRooms();\n                    }\n                } else {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f.\");\n                }\n            });\n        }\n\n        private void loadRooms() {\n            tableModel.setRowCount(0);\n            String query = \"SELECT room_id, room_number, status, price, bed_type, room_type FROM Rooms\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    tableModel.addRow(new Object[] {\n                            rs.getInt(\"room_id\"),\n                            rs.getInt(\"room_number\"),\n                            rs.getString(\"status\"),\n                            rs.getBigDecimal(\"price\"),\n                            rs.getString(\"bed_type\"),\n                            rs.getString(\"room_type\")\n                    });\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private void openRoomForm(Integer roomId) {\n            new RoomForm(roomId, this);\n        }\n\n        private void deleteRoom(int roomId) {\n            String query = \"DELETE FROM Rooms WHERE room_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, roomId);\n                pstmt.executeUpdate();\n\n                JOptionPane.showMessageDialog(this, \"\u041d\u043e\u043c\u0435\u0440 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d.\");\n\n            } catch (SQLException e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u043c\u0435\u0440\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n    }\n\n    // \u0424\u043e\u0440\u043c\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0430\n    class RoomForm extends JDialog implements ActionListener {\n        private JTextField roomNumberField, priceField;\n        private JComboBox<String> statusComboBox, bedTypeComboBox, roomTypeComboBox;\n        private JButton saveButton, cancelButton;\n        private Integer roomId;\n        private RoomsPanel parentPanel;\n\n        public RoomForm(Integer roomId, RoomsPanel parentPanel) {\n            this.roomId = roomId;\n            this.parentPanel = parentPanel;\n\n            setTitle(roomId == null ? \"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u041d\u043e\u043c\u0435\u0440\" : \"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u041d\u043e\u043c\u0435\u0440\");\n            setSize(400, 400);\n            setLocationRelativeTo(null);\n            setModal(true);\n            setLayout(new GridBagLayout());\n            GridBagConstraints gbc = new GridBagConstraints();\n            gbc.fill = GridBagConstraints.HORIZONTAL;\n            gbc.insets = new Insets(5,5,5,5);\n\n            // \u041d\u043e\u043c\u0435\u0440 \u043a\u043e\u043c\u043d\u0430\u0442\u044b\n            gbc.gridx = 0;\n            gbc.gridy = 0;\n            add(new JLabel(\"\u041d\u043e\u043c\u0435\u0440 \u043a\u043e\u043c\u043d\u0430\u0442\u044b:\"), gbc);\n            roomNumberField = new JTextField(20);\n            gbc.gridx = 1;\n            add(roomNumberField, gbc);\n\n            // \u0421\u0442\u0430\u0442\u0443\u0441\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0421\u0442\u0430\u0442\u0443\u0441:\"), gbc);\n            statusComboBox = new JComboBox<>(new String[] {\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d\", \"\u041d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d\"});\n            gbc.gridx = 1;\n            add(statusComboBox, gbc);\n\n            // \u0426\u0435\u043d\u0430\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0426\u0435\u043d\u0430:\"), gbc);\n            priceField = new JTextField(20);\n            gbc.gridx = 1;\n            add(priceField, gbc);\n\n            // \u0422\u0438\u043f \u043a\u0440\u043e\u0432\u0430\u0442\u0438\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0422\u0438\u043f \u043a\u0440\u043e\u0432\u0430\u0442\u0438:\"), gbc);\n            bedTypeComboBox = new JComboBox<>(new String[] {\"\u041e\u0434\u043d\u043e\u043c\u0435\u0441\u0442\u043d\u044b\u0439\", \"\u0414\u0432\u0443\u0445\u043c\u0435\u0441\u0442\u043d\u044b\u0439\", \"\u0422\u0440\u0435\u0445\u043c\u0435\u0441\u0442\u043d\u044b\u0439\", \"\u0427\u0435\u0442\u044b\u0440\u0435\u0445\u043c\u0435\u0441\u0442\u043d\u044b\u0439\"});\n            gbc.gridx = 1;\n            add(bedTypeComboBox, gbc);\n\n            // \u0422\u0438\u043f \u043d\u043e\u043c\u0435\u0440\u0430\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0422\u0438\u043f \u043d\u043e\u043c\u0435\u0440\u0430:\"), gbc);\n            roomTypeComboBox = new JComboBox<>(new String[] {\"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\", \"\u041b\u044e\u043a\u0441\", \"\u0414\u0435\u043b\u044e\u043a\u0441\"});\n            gbc.gridx = 1;\n            add(roomTypeComboBox, gbc);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0438\n            gbc.gridx = 0;\n            gbc.gridy++;\n            gbc.gridwidth = 2;\n            JPanel buttonPanel = new JPanel();\n            saveButton = new JButton(\"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\");\n            cancelButton = new JButton(\"\u041e\u0442\u043c\u0435\u043d\u0430\");\n            buttonPanel.add(saveButton);\n            buttonPanel.add(cancelButton);\n            add(buttonPanel, gbc);\n\n            // \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n            if (roomId != null) {\n                loadRoomData();\n            }\n\n            // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438\n            saveButton.addActionListener(this);\n            cancelButton.addActionListener(e -> dispose());\n\n            setVisible(true);\n        }\n\n        private void loadRoomData() {\n            String query = \"SELECT * FROM Rooms WHERE room_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, roomId);\n                try (ResultSet rs = pstmt.executeQuery()) {\n                    if (rs.next()) {\n                        roomNumberField.setText(String.valueOf(rs.getInt(\"room_number\")));\n                        statusComboBox.setSelectedItem(rs.getString(\"status\"));\n                        priceField.setText(rs.getBigDecimal(\"price\").toString());\n                        bedTypeComboBox.setSelectedItem(rs.getString(\"bed_type\"));\n                        roomTypeComboBox.setSelectedItem(rs.getString(\"room_type\"));\n                    }\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u043e\u043c\u0435\u0440\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        @Override\n        public void actionPerformed(ActionEvent e) {\n            if (e.getSource() == saveButton) {\n                String roomNumberStr = roomNumberField.getText().trim();\n                String status = (String)statusComboBox.getSelectedItem();\n                String priceStr = priceField.getText().trim();\n                String bedType = (String)bedTypeComboBox.getSelectedItem();\n                String roomType = (String)roomTypeComboBox.getSelectedItem();\n\n                // \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f\n                if (roomNumberStr.isEmpty() || status == null || priceStr.isEmpty() || bedType == null || roomType == null) {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                    return;\n                }\n\n                int roomNumber;\n                double price;\n                try {\n                    roomNumber = Integer.parseInt(roomNumberStr);\n                    price = Double.parseDouble(priceStr);\n                } catch (NumberFormatException ex) {\n                    JOptionPane.showMessageDialog(this, \"\u041d\u043e\u043c\u0435\u0440 \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0438 \u0446\u0435\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                    return;\n                }\n\n                try (ConnectMySQL connection = new ConnectMySQL()) {\n                    Connection conn = connection.getConnection();\n                    PreparedStatement pstmt;\n\n                    if (roomId == null) {\n                        // \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430\n                        String query = \"INSERT INTO Rooms (room_number, status, price, bed_type, room_type, created_at, updated_at) \" +\n                                \"VALUES (?, ?, ?, ?, ?, NOW(), NOW())\";\n                        pstmt = conn.prepareStatement(query);\n                        pstmt.setInt(1, roomNumber);\n                        pstmt.setString(2, status);\n                        pstmt.setDouble(3, price);\n                        pstmt.setString(4, bedType);\n                        pstmt.setString(5, roomType);\n                    } else {\n                        // \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430\n                        String query = \"UPDATE Rooms SET room_number = ?, status = ?, price = ?, bed_type = ?, room_type = ?, updated_at = NOW() WHERE room_id = ?\";\n                        pstmt = conn.prepareStatement(query);\n                        pstmt.setInt(1, roomNumber);\n                        pstmt.setString(2, status);\n                        pstmt.setDouble(3, price);\n                        pstmt.setString(4, bedType);\n                        pstmt.setString(5, roomType);\n                        pstmt.setInt(6, roomId);\n                    }\n\n                    pstmt.executeUpdate();\n                    JOptionPane.showMessageDialog(this, \"\u0414\u0430\u043d\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b.\");\n                    parentPanel.loadRooms();\n                    dispose();\n\n                } catch (SQLIntegrityConstraintViolationException ex) {\n                    JOptionPane.showMessageDialog(this, \"\u041d\u043e\u043c\u0435\u0440 \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                } catch (Exception ex) {\n                    ex.printStackTrace();\n                    JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u043e\u043c\u0435\u0440\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                }\n            }\n        }\n    }\n\n    // \u041f\u0430\u043d\u0435\u043b\u044c \u0430\u0440\u0445\u0438\u0432\u043e\u0432 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439\n    class ArchivesPanel extends JPanel {\n        private JTable table;\n        private DefaultTableModel tableModel;\n\n        public ArchivesPanel() {\n            setLayout(new BorderLayout());\n\n            // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n            tableModel = new DefaultTableModel();\n            tableModel.setColumnIdentifiers(new String[] {\"\u0410\u0440\u0445\u0438\u0432 ID\", \"\u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ID\", \"\u041a\u043b\u0438\u0435\u043d\u0442\", \"\u041d\u043e\u043c\u0435\u0440\", \"\u0414\u0430\u0442\u0430 \u0437\u0430\u0435\u0437\u0434\u0430\", \"\u0414\u0430\u0442\u0430 \u0432\u044b\u0435\u0437\u0434\u0430\", \"\u0421\u0442\u0430\u0442\u0443\u0441\", \"\u0421\u0443\u043c\u043c\u0430\"});\n            table = new JTable(tableModel);\n            loadArchivedReservations();\n\n            add(new JScrollPane(table), BorderLayout.CENTER);\n        }\n\n        private void loadArchivedReservations() {\n            tableModel.setRowCount(0);\n            String query = \"SELECT ar.archive_id, ar.reservation_id, c.full_name, r.room_number, ar.check_in, ar.check_out, ar.status, ar.total_amount \" +\n                    \"FROM Archived_Reservations ar \" +\n                    \"JOIN Customers c ON ar.customer_id = c.customer_id \" +\n                    \"JOIN Rooms r ON ar.room_id = r.room_id\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    tableModel.addRow(new Object[] {\n                            rs.getInt(\"archive_id\"),\n                            rs.getInt(\"reservation_id\"),\n                            rs.getString(\"full_name\"),\n                            rs.getInt(\"room_number\"),\n                            rs.getDate(\"check_in\"),\n                            rs.getDate(\"check_out\"),\n                            rs.getString(\"status\"),\n                            rs.getBigDecimal(\"total_amount\")\n                    });\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0430\u0440\u0445\u0438\u0432\u043d\u044b\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n    }\n\n    // \u041f\u0430\u043d\u0435\u043b\u044c \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\n    class FinancePanel extends JPanel {\n        private JTable table;\n        private DefaultTableModel tableModel;\n        private JLabel totalRevenueLabel;\n\n        public FinancePanel() {\n            setLayout(new BorderLayout());\n\n            // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n            tableModel = new DefaultTableModel();\n            tableModel.setColumnIdentifiers(new String[] {\"\u041f\u043b\u0430\u0442\u0435\u0436 ID\", \"\u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ID\", \"\u041a\u043b\u0438\u0435\u043d\u0442\", \"\u041d\u043e\u043c\u0435\u0440\", \"\u0414\u0430\u0442\u0430 \u043e\u043f\u043b\u0430\u0442\u044b\", \"\u0421\u0443\u043c\u043c\u0430\", \"\u041c\u0435\u0442\u043e\u0434 \u043e\u043f\u043b\u0430\u0442\u044b\"});\n            table = new JTable(tableModel);\n            loadPayments();\n\n            add(new JScrollPane(table), BorderLayout.CENTER);\n\n            // \u041f\u0430\u043d\u0435\u043b\u044c \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0434\u043e\u0445\u043e\u0434\u0430\n            JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            totalRevenueLabel = new JLabel(\"\u041e\u0431\u0449\u0438\u0439 \u0434\u043e\u0445\u043e\u0434: 0.00\");\n            bottomPanel.add(totalRevenueLabel);\n            add(bottomPanel, BorderLayout.SOUTH);\n\n            calculateTotalRevenue();\n        }\n\n        private void loadPayments() {\n            tableModel.setRowCount(0);\n            String query = \"SELECT p.payment_id, p.reservation_id, c.full_name, r.room_number, \" +\n                    \"p.payment_date, p.amount, p.payment_method \" +\n                    \"FROM Payments p \" +\n                    \"LEFT JOIN Reservations res ON p.reservation_id = res.reservation_id \" +\n                    \"LEFT JOIN Archived_Reservations ar ON p.reservation_id = ar.reservation_id \" +\n                    \"LEFT JOIN Customers c ON (res.customer_id = c.customer_id OR ar.customer_id = c.customer_id) \" +\n                    \"LEFT JOIN Rooms r ON (res.room_id = r.room_id OR ar.room_id = r.room_id)\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    tableModel.addRow(new Object[] {\n                            rs.getInt(\"payment_id\"),\n                            rs.getInt(\"reservation_id\"),\n                            rs.getString(\"full_name\"),\n                            rs.getInt(\"room_number\"),\n                            rs.getDate(\"payment_date\"),\n                            rs.getBigDecimal(\"amount\"),\n                            rs.getString(\"payment_method\")\n                    });\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private void calculateTotalRevenue() {\n            String query = \"SELECT SUM(amount) AS total_revenue FROM Payments\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                if (rs.next()) {\n                    double totalRevenue = rs.getDouble(\"total_revenue\");\n                    totalRevenueLabel.setText(\"\u041e\u0431\u0449\u0438\u0439 \u0434\u043e\u0445\u043e\u0434: \" + String.format(\"%.2f\", totalRevenue));\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0434\u043e\u0445\u043e\u0434\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n    }\n}\n\n\n\n\n\n\n\n\n\n\n\n\n// src/h/DashboardReceptionist.java\npackage h;\n\nimport javax.swing.*;\nimport javax.swing.table.DefaultTableModel;\nimport java.awt.*;\nimport java.awt.event.*;\nimport java.sql.*;\nimport org.jdatepicker.impl.*;\nimport java.util.Properties;\nimport java.text.ParseException;\nimport java.text.SimpleDateFormat;\n\npublic class DashboardReceptionist extends JFrame {\n\n    private int receptionistId; // \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430\n\n    public DashboardReceptionist(int receptionistId) {\n        this.receptionistId = receptionistId;\n        setTitle(\"\u041f\u0430\u043d\u0435\u043b\u044c \u0420\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430\");\n        setSize(1000, 700);\n        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        setLocationRelativeTo(null);\n\n        // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u043e\u043a\n        JTabbedPane tabbedPane = new JTabbedPane();\n\n        tabbedPane.addTab(\"\u041a\u043b\u0438\u0435\u043d\u0442\u044b\", new CustomersPanel());\n        tabbedPane.addTab(\"\u041d\u043e\u043c\u0435\u0440\u0430\", new RoomsViewPanel());\n        tabbedPane.addTab(\"\u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\", new ReservationsPanel());\n        tabbedPane.addTab(\"\u041f\u043b\u0430\u0442\u0435\u0436\u0438\", new PaymentsPanel());\n        tabbedPane.addTab(\"\u0410\u0440\u0445\u0438\u0432\", new ArchivePanel());\n\n        add(tabbedPane);\n        setVisible(true);\n    }\n\n    // \u041c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f\n    private String hashPassword(String password) {\n        try {\n            java.security.MessageDigest md = java.security.MessageDigest.getInstance(\"SHA-256\");\n            byte[] hashBytes = md.digest(password.getBytes());\n\n            StringBuilder sb = new StringBuilder();\n            for(byte b : hashBytes){\n                sb.append(String.format(\"%02x\", b));\n            }\n\n            return sb.toString();\n        } catch (java.security.NoSuchAlgorithmException e) {\n            e.printStackTrace();\n            return null;\n        }\n    }\n\n    // \u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438\n    class CustomersPanel extends JPanel {\n        private JTable table;\n        private DefaultTableModel tableModel;\n        private JButton addButton, editButton, deleteButton, refreshButton;\n\n        public CustomersPanel() {\n            setLayout(new BorderLayout());\n\n            // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n            tableModel = new DefaultTableModel();\n            tableModel.setColumnIdentifiers(new String[] {\"ID\", \"\u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f\", \"\u0422\u0435\u043b\u0435\u0444\u043e\u043d\", \"Email\", \"\u041f\u043e\u043b\", \"\u0421\u0442\u0440\u0430\u043d\u0430\", \"\u0410\u0434\u0440\u0435\u0441\"});\n            table = new JTable(tableModel);\n            loadCustomers();\n\n            add(new JScrollPane(table), BorderLayout.CENTER);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\n            JPanel buttonPanel = new JPanel();\n            addButton = new JButton(\"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\");\n            editButton = new JButton(\"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\");\n            deleteButton = new JButton(\"\u0423\u0434\u0430\u043b\u0438\u0442\u044c\");\n            refreshButton = new JButton(\"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\");\n            buttonPanel.add(addButton);\n            buttonPanel.add(editButton);\n            buttonPanel.add(deleteButton);\n            buttonPanel.add(refreshButton);\n\n            add(buttonPanel, BorderLayout.SOUTH);\n\n            // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\n            addButton.addActionListener(e -> openCustomerForm(null));\n            editButton.addActionListener(e -> {\n                int selectedRow = table.getSelectedRow();\n                if (selectedRow >= 0) {\n                    int customerId = (int)tableModel.getValueAt(selectedRow, 0);\n                    openCustomerForm(customerId);\n                } else {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\");\n                }\n            });\n            deleteButton.addActionListener(e -> {\n                int selectedRow = table.getSelectedRow();\n                if (selectedRow >= 0) {\n                    int customerId = (int)tableModel.getValueAt(selectedRow, 0);\n                    int confirm = JOptionPane.showConfirmDialog(this, \"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430?\", \"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\", JOptionPane.YES_NO_OPTION);\n                    if (confirm == JOptionPane.YES_OPTION) {\n                        deleteCustomer(customerId);\n                        loadCustomers();\n                    }\n                } else {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f.\");\n                }\n            });\n            refreshButton.addActionListener(e -> loadCustomers());\n        }\n\n        private void loadCustomers() {\n            tableModel.setRowCount(0);\n            String query = \"SELECT customer_id, full_name, phone, email, gender, country, address FROM Customers\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    tableModel.addRow(new Object[] {\n                            rs.getInt(\"customer_id\"),\n                            rs.getString(\"full_name\"),\n                            rs.getString(\"phone\"),\n                            rs.getString(\"email\"),\n                            rs.getString(\"gender\"),\n                            rs.getString(\"country\"),\n                            rs.getString(\"address\")\n                    });\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private void openCustomerForm(Integer customerId) {\n            new CustomerForm(customerId, this);\n        }\n\n        private void deleteCustomer(int customerId) {\n            String query = \"DELETE FROM Customers WHERE customer_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, customerId);\n                pstmt.executeUpdate();\n\n                JOptionPane.showMessageDialog(this, \"\u041a\u043b\u0438\u0435\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d.\");\n\n            } catch (SQLException e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n    }\n\n    // \u0424\u043e\u0440\u043c\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430\n    class CustomerForm extends JDialog implements ActionListener {\n        private JTextField nameField, phoneField, emailField, countryField, addressField;\n        private JComboBox<String> genderComboBox;\n        private JButton saveButton, cancelButton;\n        private Integer customerId; // Null \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0435 null \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n        private CustomersPanel parentPanel;\n\n        public CustomerForm(Integer customerId, CustomersPanel parentPanel) {\n            this.customerId = customerId;\n            this.parentPanel = parentPanel;\n\n            setTitle(customerId == null ? \"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u041a\u043b\u0438\u0435\u043d\u0442\u0430\" : \"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u041a\u043b\u0438\u0435\u043d\u0442\u0430\");\n            setSize(500, 500);\n            setLocationRelativeTo(null);\n            setModal(true);\n            setLayout(new GridBagLayout());\n            GridBagConstraints gbc = new GridBagConstraints();\n            gbc.fill = GridBagConstraints.HORIZONTAL;\n            gbc.insets = new Insets(10,10,10,10);\n\n            // \u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f\n            gbc.gridx = 0;\n            gbc.gridy = 0;\n            add(new JLabel(\"\u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f:\"), gbc);\n            nameField = new JTextField(20);\n            gbc.gridx = 1;\n            add(nameField, gbc);\n\n            // \u0422\u0435\u043b\u0435\u0444\u043e\u043d\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0422\u0435\u043b\u0435\u0444\u043e\u043d:\"), gbc);\n            phoneField = new JTextField(20);\n            gbc.gridx = 1;\n            add(phoneField, gbc);\n\n            // Email\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"Email:\"), gbc);\n            emailField = new JTextField(20);\n            gbc.gridx = 1;\n            add(emailField, gbc);\n\n            // \u041f\u043e\u043b\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u041f\u043e\u043b:\"), gbc);\n            genderComboBox = new JComboBox<>(new String[] {\"\u041c\u0443\u0436\u0441\u043a\u043e\u0439\", \"\u0416\u0435\u043d\u0441\u043a\u0438\u0439\"});\n            gbc.gridx = 1;\n            add(genderComboBox, gbc);\n\n            // \u0421\u0442\u0440\u0430\u043d\u0430\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0421\u0442\u0440\u0430\u043d\u0430:\"), gbc);\n            countryField = new JTextField(20);\n            gbc.gridx = 1;\n            add(countryField, gbc);\n\n            // \u0410\u0434\u0440\u0435\u0441\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0410\u0434\u0440\u0435\u0441:\"), gbc);\n            addressField = new JTextField(20);\n            gbc.gridx = 1;\n            add(addressField, gbc);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0438\n            gbc.gridx = 0;\n            gbc.gridy++;\n            gbc.gridwidth = 2;\n            JPanel buttonPanel = new JPanel();\n            saveButton = new JButton(\"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\");\n            cancelButton = new JButton(\"\u041e\u0442\u043c\u0435\u043d\u0430\");\n            buttonPanel.add(saveButton);\n            buttonPanel.add(cancelButton);\n            add(buttonPanel, gbc);\n\n            // \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n            if (customerId != null) {\n                loadCustomerData();\n            }\n\n            // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438\n            saveButton.addActionListener(this);\n            cancelButton.addActionListener(e -> dispose());\n\n            setVisible(true);\n        }\n\n        private void loadCustomerData() {\n            String query = \"SELECT * FROM Customers WHERE customer_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, customerId);\n                try (ResultSet rs = pstmt.executeQuery()) {\n                    if (rs.next()) {\n                        nameField.setText(rs.getString(\"full_name\"));\n                        phoneField.setText(rs.getString(\"phone\"));\n                        emailField.setText(rs.getString(\"email\"));\n                        genderComboBox.setSelectedItem(rs.getString(\"gender\"));\n                        countryField.setText(rs.getString(\"country\"));\n                        addressField.setText(rs.getString(\"address\"));\n                    }\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        @Override\n        public void actionPerformed(ActionEvent e) {\n            if (e.getSource() == saveButton) {\n                String fullName = nameField.getText().trim();\n                String phone = phoneField.getText().trim();\n                String email = emailField.getText().trim();\n                String gender = (String)genderComboBox.getSelectedItem();\n                String country = countryField.getText().trim();\n                String address = addressField.getText().trim();\n\n                // \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f\n                if (fullName.isEmpty() || phone.isEmpty() || email.isEmpty() || gender == null || country.isEmpty() || address.isEmpty()) {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                    return;\n                }\n\n                try (ConnectMySQL connection = new ConnectMySQL()) {\n                    Connection conn = connection.getConnection();\n                    PreparedStatement pstmt;\n                    if (customerId == null) {\n                        // \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430\n                        String query = \"INSERT INTO Customers (full_name, phone, email, gender, country, address, created_at, updated_at, receptionist_id) \" +\n                                \"VALUES (?, ?, ?, ?, ?, ?, NOW(), NOW(), ?)\";\n                        pstmt = conn.prepareStatement(query);\n                        pstmt.setString(1, fullName);\n                        pstmt.setString(2, phone);\n                        pstmt.setString(3, email);\n                        pstmt.setString(4, gender);\n                        pstmt.setString(5, country);\n                        pstmt.setString(6, address);\n                        pstmt.setInt(7, receptionistId);\n                    } else {\n                        // \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430\n                        String query = \"UPDATE Customers SET full_name = ?, phone = ?, email = ?, gender = ?, country = ?, address = ?, updated_at = NOW() WHERE customer_id = ?\";\n                        pstmt = conn.prepareStatement(query);\n                        pstmt.setString(1, fullName);\n                        pstmt.setString(2, phone);\n                        pstmt.setString(3, email);\n                        pstmt.setString(4, gender);\n                        pstmt.setString(5, country);\n                        pstmt.setString(6, address);\n                        pstmt.setInt(7, customerId);\n                    }\n\n                    pstmt.executeUpdate();\n                    JOptionPane.showMessageDialog(this, \"\u0414\u0430\u043d\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b.\");\n                    parentPanel.loadCustomers();\n                    dispose();\n\n                } catch (SQLIntegrityConstraintViolationException ex) {\n                    JOptionPane.showMessageDialog(this, \"\u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u0438\u043b\u0438 email.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                } catch (Exception ex) {\n                    ex.printStackTrace();\n                    JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                }\n            }\n        }\n    }\n\n    // \u041f\u0430\u043d\u0435\u043b\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043d\u043e\u043c\u0435\u0440\u043e\u0432\n    class RoomsViewPanel extends JPanel {\n        private JTable table;\n        private DefaultTableModel tableModel;\n        private JButton refreshButton;\n\n        public RoomsViewPanel() {\n            setLayout(new BorderLayout());\n\n            // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n            tableModel = new DefaultTableModel();\n            tableModel.setColumnIdentifiers(new String[] {\"\u041d\u043e\u043c\u0435\u0440 ID\", \"\u041d\u043e\u043c\u0435\u0440 \u043a\u043e\u043c\u043d\u0430\u0442\u044b\", \"\u0421\u0442\u0430\u0442\u0443\u0441\", \"\u0426\u0435\u043d\u0430\", \"\u0422\u0438\u043f \u043a\u0440\u043e\u0432\u0430\u0442\u0438\", \"\u0422\u0438\u043f \u043d\u043e\u043c\u0435\u0440\u0430\"});\n            table = new JTable(tableModel);\n            loadRooms();\n\n            add(new JScrollPane(table), BorderLayout.CENTER);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\n            JPanel buttonPanel = new JPanel();\n            refreshButton = new JButton(\"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\");\n            buttonPanel.add(refreshButton);\n            add(buttonPanel, BorderLayout.SOUTH);\n\n            refreshButton.addActionListener(e -> loadRooms());\n        }\n\n        private void loadRooms() {\n            tableModel.setRowCount(0);\n            String query = \"SELECT room_id, room_number, status, price, bed_type, room_type FROM Rooms\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    tableModel.addRow(new Object[] {\n                            rs.getInt(\"room_id\"),\n                            rs.getInt(\"room_number\"),\n                            rs.getString(\"status\"),\n                            rs.getBigDecimal(\"price\"),\n                            rs.getString(\"bed_type\"),\n                            rs.getString(\"room_type\")\n                    });\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n    }\n\n    // \u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438\n    class ReservationsPanel extends JPanel {\n        private JTable table;\n        private DefaultTableModel tableModel;\n        private JButton addButton, editButton, refreshButton, checkInButton, checkOutButton;\n\n        public ReservationsPanel() {\n            setLayout(new BorderLayout());\n\n            // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n            tableModel = new DefaultTableModel();\n            tableModel.setColumnIdentifiers(new String[] {\"ID\", \"\u041a\u043b\u0438\u0435\u043d\u0442\", \"\u041d\u043e\u043c\u0435\u0440\", \"\u0414\u0430\u0442\u0430 \u0437\u0430\u0435\u0437\u0434\u0430\", \"\u0414\u0430\u0442\u0430 \u0432\u044b\u0435\u0437\u0434\u0430\", \"\u0421\u0442\u0430\u0442\u0443\u0441\", \"\u0421\u0443\u043c\u043c\u0430\"});\n            table = new JTable(tableModel);\n            loadReservations();\n\n            add(new JScrollPane(table), BorderLayout.CENTER);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\n            JPanel buttonPanel = new JPanel();\n            addButton = new JButton(\"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\");\n            editButton = new JButton(\"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\");\n            checkInButton = new JButton(\"\u0417\u0430\u0441\u0435\u043b\u0438\u0442\u044c\");\n            checkOutButton = new JButton(\"\u0412\u044b\u0441\u0435\u043b\u0438\u0442\u044c\");\n            refreshButton = new JButton(\"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\");\n            buttonPanel.add(addButton);\n            buttonPanel.add(editButton);\n            buttonPanel.add(checkInButton);\n            buttonPanel.add(checkOutButton);\n            buttonPanel.add(refreshButton);\n\n            add(buttonPanel, BorderLayout.SOUTH);\n\n            // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\n            addButton.addActionListener(e -> openReservationForm(null));\n            editButton.addActionListener(e -> {\n                int selectedRow = table.getSelectedRow();\n                if (selectedRow >= 0) {\n                    int reservationId = (int)tableModel.getValueAt(selectedRow, 0);\n                    openReservationForm(reservationId);\n                } else {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\");\n                }\n            });\n            checkInButton.addActionListener(e -> {\n                int selectedRow = table.getSelectedRow();\n                if (selectedRow >= 0) {\n                    int reservationId = (int)tableModel.getValueAt(selectedRow, 0);\n                    checkIn(reservationId);\n                    loadReservations();\n                } else {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u044f.\");\n                }\n            });\n            checkOutButton.addActionListener(e -> {\n                int selectedRow = table.getSelectedRow();\n                if (selectedRow >= 0) {\n                    int reservationId = (int)tableModel.getValueAt(selectedRow, 0);\n                    checkOut(reservationId);\n                    loadReservations();\n                } else {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u044b\u0441\u0435\u043b\u0435\u043d\u0438\u044f.\");\n                }\n            });\n            refreshButton.addActionListener(e -> loadReservations());\n        }\n\n        private void loadReservations() {\n            tableModel.setRowCount(0);\n            String query = \"SELECT res.reservation_id, c.full_name, r.room_number, res.check_in, res.check_out, res.status, res.total_amount \" +\n                    \"FROM Reservations res \" +\n                    \"JOIN Customers c ON res.customer_id = c.customer_id \" +\n                    \"JOIN Rooms r ON res.room_id = r.room_id\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    tableModel.addRow(new Object[] {\n                            rs.getInt(\"reservation_id\"),\n                            rs.getString(\"full_name\"),\n                            rs.getInt(\"room_number\"),\n                            rs.getDate(\"check_in\"),\n                            rs.getDate(\"check_out\"),\n                            rs.getString(\"status\"),\n                            rs.getBigDecimal(\"total_amount\")\n                    });\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private void openReservationForm(Integer reservationId) {\n            new ReservationForm(reservationId, this, receptionistId);\n        }\n\n        private void deleteReservation(int reservationId) {\n            String query = \"DELETE FROM Reservations WHERE reservation_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, reservationId);\n                pstmt.executeUpdate();\n\n                JOptionPane.showMessageDialog(this, \"\u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043e.\");\n\n            } catch (SQLException e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private void checkIn(int reservationId) {\n            // \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n            String updateQuery = \"UPDATE Reservations SET status = '\u0417\u0430\u0441\u0435\u043b\u0451\u043d', updated_at = NOW() WHERE reservation_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(updateQuery)) {\n\n                pstmt.setInt(1, reservationId);\n                pstmt.executeUpdate();\n\n                JOptionPane.showMessageDialog(this, \"\u041a\u043b\u0438\u0435\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0441\u0435\u043b\u0435\u043d.\");\n\n            } catch (SQLException e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private void checkOut(int reservationId) {\n            String selectQuery = \"SELECT * FROM Reservations WHERE reservation_id = ?\";\n            String updateQuery = \"UPDATE Reservations SET status = '\u0412\u044b\u0441\u0435\u043b\u0435\u043d', updated_at = NOW() WHERE reservation_id = ?\";\n            String insertArchiveQuery = \"INSERT INTO Archived_Reservations (reservation_id, customer_id, room_id, check_in, check_out, status, total_amount, created_at, updated_at) \" +\n                    \"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\";\n            String deleteQuery = \"DELETE FROM Reservations WHERE reservation_id = ?\";\n\n            Connection conn = null;\n            PreparedStatement selectStmt = null;\n            PreparedStatement updateStmt = null;\n            PreparedStatement insertArchiveStmt = null;\n            PreparedStatement deleteStmt = null;\n\n            try {\n                ConnectMySQL connection = new ConnectMySQL();\n                conn = connection.getConnection();\n                conn.setAutoCommit(false); // \u041d\u0430\u0447\u0430\u043b\u043e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438\n\n                // \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n                selectStmt = conn.prepareStatement(selectQuery);\n                selectStmt.setInt(1, reservationId);\n                ResultSet rs = selectStmt.executeQuery();\n\n                if (!rs.next()) {\n                    JOptionPane.showMessageDialog(this, \"\u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                    return;\n                }\n\n                int customerId = rs.getInt(\"customer_id\");\n                int roomId = rs.getInt(\"room_id\");\n                Date checkIn = rs.getDate(\"check_in\");\n                Date checkOut = rs.getDate(\"check_out\");\n                String status = rs.getString(\"status\");\n                double totalAmount = rs.getDouble(\"total_amount\");\n                Timestamp createdAt = rs.getTimestamp(\"created_at\");\n                Timestamp updatedAt = rs.getTimestamp(\"updated_at\");\n\n                // \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n                updateStmt = conn.prepareStatement(updateQuery);\n                updateStmt.setInt(1, reservationId);\n                updateStmt.executeUpdate();\n\n                // \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432 \u0430\u0440\u0445\u0438\u0432\n                insertArchiveStmt = conn.prepareStatement(insertArchiveQuery);\n                insertArchiveStmt.setInt(1, reservationId);\n                insertArchiveStmt.setInt(2, customerId);\n                insertArchiveStmt.setInt(3, roomId);\n                insertArchiveStmt.setDate(4, checkIn);\n                insertArchiveStmt.setDate(5, checkOut);\n                insertArchiveStmt.setString(6, \"\u0412\u044b\u0441\u0435\u043b\u0435\u043d\");\n                insertArchiveStmt.setDouble(7, totalAmount);\n                insertArchiveStmt.setTimestamp(8, createdAt);\n                insertArchiveStmt.setTimestamp(9, updatedAt);\n                insertArchiveStmt.executeUpdate();\n\n                // \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439\n                deleteStmt = conn.prepareStatement(deleteQuery);\n                deleteStmt.setInt(1, reservationId);\n                deleteStmt.executeUpdate();\n\n                // \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u043d\u0430 '\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d'\n                String updateRoomQuery = \"UPDATE Rooms SET status = '\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d' WHERE room_id = ?\";\n                try (PreparedStatement pstmt = conn.prepareStatement(updateRoomQuery)) {\n                    pstmt.setInt(1, roomId);\n                    pstmt.executeUpdate();\n                }\n\n                conn.commit(); // \u041a\u043e\u043c\u043c\u0438\u0442 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438\n                JOptionPane.showMessageDialog(this, \"\u041a\u043b\u0438\u0435\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u044b\u0441\u0435\u043b\u0435\u043d.\");\n\n            } catch (SQLException e) {\n                e.printStackTrace();\n                if (conn != null) {\n                    try {\n                        conn.rollback(); // \u041e\u0442\u043a\u0430\u0442 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435\n                    } catch (SQLException ex) {\n                        ex.printStackTrace();\n                    }\n                }\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0432\u044b\u0441\u0435\u043b\u0435\u043d\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            } finally {\n                try {\n                    if (selectStmt != null) selectStmt.close();\n                    if (updateStmt != null) updateStmt.close();\n                    if (insertArchiveStmt != null) insertArchiveStmt.close();\n                    if (deleteStmt != null) deleteStmt.close();\n                    if (conn != null) conn.setAutoCommit(true);\n                    if (conn != null) conn.close();\n                } catch (SQLException e) {\n                    e.printStackTrace();\n                }\n            }\n        }\n    }\n\n    // \u0424\u043e\u0440\u043c\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n    class ReservationForm extends JDialog implements ActionListener {\n        private JComboBox<String> customerComboBox, roomComboBox;\n        private JDatePickerImpl checkInDatePicker, checkOutDatePicker;\n        private JButton saveButton, cancelButton;\n        private Integer reservationId; // Null \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0435 null \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n        private ReservationsPanel parentPanel;\n        private int receptionistId;\n\n        public ReservationForm(Integer reservationId, ReservationsPanel parentPanel, int receptionistId) {\n            this.reservationId = reservationId;\n            this.parentPanel = parentPanel;\n            this.receptionistId = receptionistId;\n\n            setTitle(reservationId == null ? \"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\" : \"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\");\n            setSize(500, 400);\n            setLocationRelativeTo(null);\n            setModal(true);\n            setLayout(new GridBagLayout());\n            GridBagConstraints gbc = new GridBagConstraints();\n            gbc.fill = GridBagConstraints.HORIZONTAL;\n            gbc.insets = new Insets(10,10,10,10);\n\n            // \u041a\u043b\u0438\u0435\u043d\u0442\n            gbc.gridx = 0;\n            gbc.gridy = 0;\n            add(new JLabel(\"\u041a\u043b\u0438\u0435\u043d\u0442:\"), gbc);\n            customerComboBox = new JComboBox<>();\n            loadCustomers();\n            gbc.gridx = 1;\n            add(customerComboBox, gbc);\n\n            // \u041d\u043e\u043c\u0435\u0440\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u041d\u043e\u043c\u0435\u0440:\"), gbc);\n            roomComboBox = new JComboBox<>();\n            loadAvailableRooms();\n            gbc.gridx = 1;\n            add(roomComboBox, gbc);\n\n            // \u0414\u0430\u0442\u0430 \u0437\u0430\u0435\u0437\u0434\u0430\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0414\u0430\u0442\u0430 \u0437\u0430\u0435\u0437\u0434\u0430:\"), gbc);\n            checkInDatePicker = createDatePicker();\n            gbc.gridx = 1;\n            add(checkInDatePicker, gbc);\n\n            // \u0414\u0430\u0442\u0430 \u0432\u044b\u0435\u0437\u0434\u0430\n            gbc.gridx = 0;\n            gbc.gridy++;\n            add(new JLabel(\"\u0414\u0430\u0442\u0430 \u0432\u044b\u0435\u0437\u0434\u0430:\"), gbc);\n            checkOutDatePicker = createDatePicker();\n            gbc.gridx = 1;\n            add(checkOutDatePicker, gbc);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0438\n            gbc.gridx = 0;\n            gbc.gridy++;\n            gbc.gridwidth = 2;\n            JPanel buttonPanel = new JPanel();\n            saveButton = new JButton(\"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\");\n            cancelButton = new JButton(\"\u041e\u0442\u043c\u0435\u043d\u0430\");\n            buttonPanel.add(saveButton);\n            buttonPanel.add(cancelButton);\n            add(buttonPanel, gbc);\n\n            // \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n            if (reservationId != null) {\n                loadReservationData();\n            }\n\n            // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438\n            saveButton.addActionListener(this);\n            cancelButton.addActionListener(e -> dispose());\n\n            setVisible(true);\n        }\n\n        private void loadCustomers() {\n            String query = \"SELECT customer_id, full_name FROM Customers\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    customerComboBox.addItem(rs.getInt(\"customer_id\") + \" - \" + rs.getString(\"full_name\"));\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private void loadAvailableRooms() {\n            // \u0423\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0441\u0435\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043d\u043e\u043c\u0435\u0440\u043e\u0432\n            String query = \"SELECT room_id, room_number FROM Rooms WHERE status = '\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d'\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    roomComboBox.addItem(rs.getInt(\"room_id\") + \" - \" + rs.getInt(\"room_number\"));\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private JDatePickerImpl createDatePicker() {\n            UtilDateModel model = new UtilDateModel();\n            Properties p = new Properties();\n            p.put(\"text.today\", \"\u0421\u0435\u0433\u043e\u0434\u043d\u044f\");\n            p.put(\"text.month\", \"\u041c\u0435\u0441\u044f\u0446\");\n            p.put(\"text.year\", \"\u0413\u043e\u0434\");\n            JDatePanelImpl datePanel = new JDatePanelImpl(model, p);\n            return new JDatePickerImpl(datePanel, new DateLabelFormatter());\n        }\n\n        private void loadReservationData() {\n            String query = \"SELECT * FROM Reservations WHERE reservation_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, reservationId);\n                try (ResultSet rs = pstmt.executeQuery()) {\n                    if (rs.next()) {\n                        customerComboBox.setSelectedItem(rs.getInt(\"customer_id\") + \" - \" + getCustomerName(rs.getInt(\"customer_id\")));\n                        roomComboBox.setSelectedItem(rs.getInt(\"room_id\") + \" - \" + getRoomNumber(rs.getInt(\"room_id\")));\n                        checkInDatePicker.getModel().setDate(rs.getDate(\"check_in\").toLocalDate().getYear(), rs.getDate(\"check_in\").toLocalDate().getMonthValue() - 1, rs.getDate(\"check_in\").toLocalDate().getDayOfMonth());\n                        checkInDatePicker.getModel().setSelected(true);\n                        checkOutDatePicker.getModel().setDate(rs.getDate(\"check_out\").toLocalDate().getYear(), rs.getDate(\"check_out\").toLocalDate().getMonthValue() - 1, rs.getDate(\"check_out\").toLocalDate().getDayOfMonth());\n                        checkOutDatePicker.getModel().setSelected(true);\n                    }\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private String getCustomerName(int customerId) {\n            String name = \"\";\n            String query = \"SELECT full_name FROM Customers WHERE customer_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, customerId);\n                try (ResultSet rs = pstmt.executeQuery()) {\n                    if (rs.next()) {\n                        name = rs.getString(\"full_name\");\n                    }\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n            }\n            return name;\n        }\n\n        private int getRoomNumber(int roomId) {\n            int roomNumber = -1;\n            String query = \"SELECT room_number FROM Rooms WHERE room_id = ?\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, roomId);\n                try (ResultSet rs = pstmt.executeQuery()) {\n                    if (rs.next()) {\n                        roomNumber = rs.getInt(\"room_number\");\n                    }\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n            }\n            return roomNumber;\n        }\n\n        @Override\n        public void actionPerformed(ActionEvent e) {\n            if (e.getSource() == saveButton) {\n                String customerStr = (String)customerComboBox.getSelectedItem();\n                String roomStr = (String)roomComboBox.getSelectedItem();\n                java.util.Date checkInDate = (java.util.Date)checkInDatePicker.getModel().getValue();\n                java.util.Date checkOutDate = (java.util.Date)checkOutDatePicker.getModel().getValue();\n\n                if (customerStr == null || roomStr == null || checkInDate == null || checkOutDate == null) {\n                    JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u043f\u043e\u043b\u044f.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                    return;\n                }\n\n                int customerId = Integer.parseInt(customerStr.split(\" - \")[0]);\n                int roomId = Integer.parseInt(roomStr.split(\" - \")[0]);\n\n                java.sql.Date checkInSqlDate = new java.sql.Date(checkInDate.getTime());\n                java.sql.Date checkOutSqlDate = new java.sql.Date(checkOutDate.getTime());\n\n                // \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u0430\u0442\n                if (!validateDates(checkInSqlDate, checkOutSqlDate)) {\n                    JOptionPane.showMessageDialog(this, \"\u0414\u0430\u0442\u0430 \u0432\u044b\u0435\u0437\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0434\u0430\u0442\u044b \u0437\u0430\u0435\u0437\u0434\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                    return;\n                }\n\n                // \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043d\u043e\u043c\u0435\u0440\u0430\n                if (!isRoomAvailable(roomId, checkInSqlDate, checkOutSqlDate, reservationId)) {\n                    JOptionPane.showMessageDialog(this, \"\u041d\u043e\u043c\u0435\u0440 \u0443\u0436\u0435 \u0437\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u0442\u044b.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                    return;\n                }\n\n                // \u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u0449\u0435\u0439 \u0441\u0443\u043c\u043c\u044b\n                double totalAmount = calculateTotalAmount(roomId, checkInSqlDate, checkOutSqlDate);\n\n                try (ConnectMySQL connection = new ConnectMySQL()) {\n                    Connection conn = connection.getConnection();\n                    PreparedStatement pstmt;\n                    if (reservationId == null) {\n                        // \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n                        String query = \"INSERT INTO Reservations (customer_id, room_id, check_in, check_out, status, total_amount, created_at, updated_at, receptionist_id) \" +\n                                \"VALUES (?, ?, ?, ?, '\u0417\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d', ?, NOW(), NOW(), ?)\";\n                        pstmt = conn.prepareStatement(query);\n                        pstmt.setInt(1, customerId);\n                        pstmt.setInt(2, roomId);\n                        pstmt.setDate(3, checkInSqlDate);\n                        pstmt.setDate(4, checkOutSqlDate);\n                        pstmt.setDouble(5, totalAmount);\n                        pstmt.setInt(6, receptionistId);\n                    } else {\n                        // \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n                        String query = \"UPDATE Reservations SET customer_id = ?, room_id = ?, check_in = ?, check_out = ?, status = '\u0417\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d', total_amount = ?, updated_at = NOW(), receptionist_id = ? WHERE reservation_id = ?\";\n                        pstmt = conn.prepareStatement(query);\n                        pstmt.setInt(1, customerId);\n                        pstmt.setInt(2, roomId);\n                        pstmt.setDate(3, checkInSqlDate);\n                        pstmt.setDate(4, checkOutSqlDate);\n                        pstmt.setDouble(5, totalAmount);\n                        pstmt.setInt(6, receptionistId);\n                        pstmt.setInt(7, reservationId);\n                    }\n\n                    pstmt.executeUpdate();\n                    JOptionPane.showMessageDialog(this, \"\u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043e.\");\n                    parentPanel.loadReservations();\n                    dispose();\n\n                } catch (SQLException ex) {\n                    ex.printStackTrace();\n                    JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                }\n            }\n        }\n\n        private boolean validateDates(java.sql.Date checkIn, java.sql.Date checkOut) {\n            return checkOut.after(checkIn);\n        }\n\n        private boolean isRoomAvailable(int roomId, java.sql.Date checkIn, java.sql.Date checkOut, Integer currentReservationId) {\n            String query = \"SELECT COUNT(*) AS count FROM Reservations WHERE room_id = ? AND status NOT IN ('\u041e\u0442\u043c\u0435\u043d\u0451\u043d', '\u0412\u044b\u0441\u0435\u043b\u0435\u043d') AND (\" +\n                    \"(check_in <= ? AND check_out > ?) OR \" +\n                    \"(check_in < ? AND check_out >= ?) OR \" +\n                    \"(check_in >= ? AND check_out <= ?))\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, roomId);\n                pstmt.setDate(2, checkOut);\n                pstmt.setDate(3, checkIn);\n                pstmt.setDate(4, checkIn);\n                pstmt.setDate(5, checkOut);\n                pstmt.setDate(6, checkIn);\n                pstmt.setDate(7, checkOut);\n\n                try (ResultSet rs = pstmt.executeQuery()) {\n                    if (rs.next()) {\n                        int count = rs.getInt(\"count\");\n                        if (currentReservationId != null && count > 0) {\n                            // \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\n                            String excludeQuery = \"SELECT COUNT(*) AS exclude_count FROM Reservations WHERE reservation_id = ? AND \" +\n                                    \"room_id = ? AND status NOT IN ('\u041e\u0442\u043c\u0435\u043d\u0451\u043d', '\u0412\u044b\u0441\u0435\u043b\u0435\u043d') AND (\" +\n                                    \"(check_in <= ? AND check_out > ?) OR \" +\n                                    \"(check_in < ? AND check_out >= ?) OR \" +\n                                    \"(check_in >= ? AND check_out <= ?))\";\n                            try (PreparedStatement pstmtExclude = connection.getConnection().prepareStatement(excludeQuery)) {\n                                pstmtExclude.setInt(1, currentReservationId);\n                                pstmtExclude.setInt(2, roomId);\n                                pstmtExclude.setDate(3, checkOut);\n                                pstmtExclude.setDate(4, checkIn);\n                                pstmtExclude.setDate(5, checkIn);\n                                pstmtExclude.setDate(6, checkOut);\n                                pstmtExclude.setDate(7, checkIn);\n                                pstmtExclude.setDate(8, checkOut);\n\n                                try (ResultSet rsExclude = pstmtExclude.executeQuery()) {\n                                    if (rsExclude.next()) {\n                                        int excludeCount = rsExclude.getInt(\"exclude_count\");\n                                        if (excludeCount > 0) {\n                                            count -= excludeCount;\n                                        }\n                                    }\n                                }\n                            }\n                        }\n                        return count == 0;\n                    }\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n            }\n            return false;\n        }\n\n        private double calculateTotalAmount(int roomId, java.sql.Date checkIn, java.sql.Date checkOut) {\n            String query = \"SELECT price FROM Rooms WHERE room_id = ?\";\n            double price = 0.0;\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n                pstmt.setInt(1, roomId);\n                try (ResultSet rs = pstmt.executeQuery()) {\n                    if (rs.next()) {\n                        price = rs.getDouble(\"price\");\n                    }\n                }\n\n                long diffInMillies = checkOut.getTime() - checkIn.getTime();\n                long days = diffInMillies / (1000 * 60 * 60 * 24);\n                return price * days;\n\n            } catch (Exception e) {\n                e.printStackTrace();\n            }\n            return price;\n        }\n    }\n\n    // \u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0442\u0435\u0436\u0430\u043c\u0438\n    class PaymentsPanel extends JPanel {\n        private JTable table;\n        private DefaultTableModel tableModel;\n        private JButton refreshButton;\n        private JLabel totalRevenueLabel;\n\n        public PaymentsPanel() {\n            setLayout(new BorderLayout());\n\n            // \u041f\u0430\u043d\u0435\u043b\u044c \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0434\u043e\u0445\u043e\u0434\u0430\n            JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));\n            totalRevenueLabel = new JLabel(\"\u041e\u0431\u0449\u0438\u0439 \u0434\u043e\u0445\u043e\u0434: 0.00\");\n            topPanel.add(totalRevenueLabel);\n            add(topPanel, BorderLayout.NORTH); // \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u043f\u0430\u043d\u0435\u043b\u0438\n\n            // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n            tableModel = new DefaultTableModel();\n            tableModel.setColumnIdentifiers(new String[] {\"ID \u041f\u043b\u0430\u0442\u0435\u0436\u0430\", \"\u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ID\", \"\u041a\u043b\u0438\u0435\u043d\u0442\", \"\u041d\u043e\u043c\u0435\u0440\", \"\u0414\u0430\u0442\u0430 \u043e\u043f\u043b\u0430\u0442\u044b\", \"\u0421\u0443\u043c\u043c\u0430\", \"\u041c\u0435\u0442\u043e\u0434 \u043e\u043f\u043b\u0430\u0442\u044b\"});\n            table = new JTable(tableModel);\n            loadPayments();\n\n            add(new JScrollPane(table), BorderLayout.CENTER);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\n            JPanel buttonPanel = new JPanel();\n            refreshButton = new JButton(\"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\");\n            buttonPanel.add(refreshButton);\n            add(buttonPanel, BorderLayout.SOUTH);\n\n            // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\n            refreshButton.addActionListener(e -> loadPayments());\n        }\n\n        private void loadPayments() {\n            tableModel.setRowCount(0);\n            String query = \"SELECT p.payment_id, p.reservation_id, c.full_name, r.room_number, \" +\n                    \"p.payment_date, p.amount, p.payment_method \" +\n                    \"FROM Payments p \" +\n                    \"LEFT JOIN Reservations res ON p.reservation_id = res.reservation_id \" +\n                    \"LEFT JOIN Archived_Reservations ar ON p.reservation_id = ar.reservation_id \" +\n                    \"LEFT JOIN Customers c ON (res.customer_id = c.customer_id OR ar.customer_id = c.customer_id) \" +\n                    \"LEFT JOIN Rooms r ON (res.room_id = r.room_id OR ar.room_id = r.room_id)\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    tableModel.addRow(new Object[] {\n                            rs.getInt(\"payment_id\"),\n                            rs.getInt(\"reservation_id\"),\n                            rs.getString(\"full_name\"),\n                            rs.getInt(\"room_number\"),\n                            rs.getDate(\"payment_date\"),\n                            rs.getBigDecimal(\"amount\"),\n                            rs.getString(\"payment_method\")\n                    });\n                }\n\n                // \u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0434\u043e\u0445\u043e\u0434\u0430\n                calculateTotalRevenue();\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        private void calculateTotalRevenue() {\n            String query = \"SELECT SUM(amount) AS total_revenue FROM Payments\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                if (rs.next()) {\n                    double totalRevenue = rs.getDouble(\"total_revenue\");\n                    totalRevenueLabel.setText(\"\u041e\u0431\u0449\u0438\u0439 \u0434\u043e\u0445\u043e\u0434: \" + String.format(\"%.2f\", totalRevenue));\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0434\u043e\u0445\u043e\u0434\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n    }\n\n    // \u041f\u0430\u043d\u0435\u043b\u044c \u0430\u0440\u0445\u0438\u0432\u043e\u0432 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439\n    class ArchivePanel extends JPanel {\n        private JTable table;\n        private DefaultTableModel tableModel;\n        private JButton refreshButton;\n\n        public ArchivePanel() {\n            setLayout(new BorderLayout());\n\n            // \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n            tableModel = new DefaultTableModel();\n            tableModel.setColumnIdentifiers(new String[] {\"\u0410\u0440\u0445\u0438\u0432 ID\", \"\u0411\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ID\", \"\u041a\u043b\u0438\u0435\u043d\u0442\", \"\u041d\u043e\u043c\u0435\u0440\", \"\u0414\u0430\u0442\u0430 \u0437\u0430\u0435\u0437\u0434\u0430\", \"\u0414\u0430\u0442\u0430 \u0432\u044b\u0435\u0437\u0434\u0430\", \"\u0421\u0442\u0430\u0442\u0443\u0441\", \"\u0421\u0443\u043c\u043c\u0430\"});\n            table = new JTable(tableModel);\n            loadArchivedReservations();\n\n            add(new JScrollPane(table), BorderLayout.CENTER);\n\n            // \u041a\u043d\u043e\u043f\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\n            JPanel buttonPanel = new JPanel();\n            refreshButton = new JButton(\"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\");\n            buttonPanel.add(refreshButton);\n            add(buttonPanel, BorderLayout.SOUTH);\n\n            refreshButton.addActionListener(e -> loadArchivedReservations());\n        }\n\n        private void loadArchivedReservations() {\n            tableModel.setRowCount(0);\n            String query = \"SELECT ar.archive_id, ar.reservation_id, c.full_name, r.room_number, ar.check_in, ar.check_out, ar.status, ar.total_amount \" +\n                    \"FROM Archived_Reservations ar \" +\n                    \"JOIN Customers c ON ar.customer_id = c.customer_id \" +\n                    \"JOIN Rooms r ON ar.room_id = r.room_id\";\n            try (ConnectMySQL connection = new ConnectMySQL();\n                 PreparedStatement pstmt = connection.getConnection().prepareStatement(query);\n                 ResultSet rs = pstmt.executeQuery()) {\n\n                while (rs.next()) {\n                    tableModel.addRow(new Object[] {\n                            rs.getInt(\"archive_id\"),\n                            rs.getInt(\"reservation_id\"),\n                            rs.getString(\"full_name\"),\n                            rs.getInt(\"room_number\"),\n                            rs.getDate(\"check_in\"),\n                            rs.getDate(\"check_out\"),\n                            rs.getString(\"status\"),\n                            rs.getBigDecimal(\"total_amount\")\n                    });\n                }\n\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0430\u0440\u0445\u0438\u0432\u043d\u044b\u0445 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n    }\n\n    // \u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u0442\u044b \u0432 JDatePicker\n    class DateLabelFormatter extends JFormattedTextField.AbstractFormatter {\n\n        private String datePattern = \"yyyy-MM-dd\";\n        private SimpleDateFormat dateFormatter = new SimpleDateFormat(datePattern);\n\n        @Override\n        public Object stringToValue(String text) throws ParseException {\n            if (text == null || text.isEmpty()) {\n                return null;\n            }\n            return dateFormatter.parse(text);\n        }\n\n        @Override\n        public String valueToString(Object value) throws ParseException {\n            if (value != null) {\n                if (value instanceof java.util.Date) {\n                    java.util.Date date = (java.util.Date) value;\n                    return dateFormatter.format(date);\n                } else if (value instanceof java.util.Calendar) {\n                    java.util.Calendar cal = (java.util.Calendar) value;\n                    return dateFormatter.format(cal.getTime());\n                }\n            }\n            return \"\";\n        }\n    }\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n// src/h/ConnectMySQL.java\npackage h;\n\nimport java.sql.*;\n\npublic class ConnectMySQL implements AutoCloseable {\n    private static final String URL = \"jdbc:mysql://localhost:1369/hotel?useSSL=false&serverTimezone=UTC\";\n    private static final String USER = \"root\";\n    private static final String PASSWORD = \"1369sukAnigghaD1ck\";\n\n    private Connection connection;\n\n    public ConnectMySQL() throws SQLException {\n        // \u041a\u043b\u0430\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 MySQL JDBC \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043d\u0443\u0436\u0435\u043d\n        this.connection = DriverManager.getConnection(URL, USER, PASSWORD);\n    }\n\n    public Connection getConnection() {\n        return connection;\n    }\n\n    @Override\n    public void close() throws SQLException {\n        if (connection != null && !connection.isClosed()) {\n            connection.close();\n        }\n    }\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// src/h/Login.java\npackage h;\n\nimport java.awt.*;\nimport javax.swing.*;\nimport java.awt.event.*;\nimport java.sql.*;\nimport java.security.MessageDigest;\nimport java.security.NoSuchAlgorithmException;\n\npublic class Login extends JFrame implements ActionListener {\n\n    private JLabel usernameLabel, passwordLabel;\n    private JTextField usernameField;\n    private JPasswordField passwordField;\n    private JButton loginButton, cancelButton;\n    private JCheckBox showPasswordCheck;\n    private JButton signupLink;\n\n    public Login() {\n        setTitle(\"\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f\");\n        setBounds(700, 300, 400, 300);\n        setLayout(null);\n\n        // \u041c\u0435\u0442\u043a\u0430 \u0438 \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u043d\u0430\n        usernameLabel = new JLabel(\"\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:\");\n        usernameLabel.setBounds(50, 50, 120, 30);\n        add(usernameLabel);\n\n        usernameField = new JTextField();\n        usernameField.setBounds(180, 50, 150, 30);\n        add(usernameField);\n\n        // \u041c\u0435\u0442\u043a\u0430 \u0438 \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0434\u043b\u044f \u043f\u0430\u0440\u043e\u043b\u044f\n        passwordLabel = new JLabel(\"\u041f\u0430\u0440\u043e\u043b\u044c:\");\n        passwordLabel.setBounds(50, 100, 120, 30);\n        add(passwordLabel);\n\n        passwordField = new JPasswordField();\n        passwordField.setBounds(180, 100, 150, 30);\n        add(passwordField);\n\n        // \u0427\u0435\u043a\u0431\u043e\u043a\u0441 \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u043f\u0430\u0440\u043e\u043b\u044f\n        showPasswordCheck = new JCheckBox(\"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c\");\n        showPasswordCheck.setBounds(180, 140, 150, 25);\n        showPasswordCheck.setBackground(Color.WHITE);\n        showPasswordCheck.addActionListener(this);\n        add(showPasswordCheck);\n\n        // \u041a\u043d\u043e\u043f\u043a\u0430 \u0432\u0445\u043e\u0434\u0430\n        loginButton = new JButton(\"\u0412\u043e\u0439\u0442\u0438\");\n        loginButton.setBounds(50, 180, 120, 30);\n        loginButton.setForeground(Color.BLACK);\n        loginButton.setBackground(Color.BLACK);\n        loginButton.addActionListener(this);\n        add(loginButton);\n\n        // \u041a\u043d\u043e\u043f\u043a\u0430 \u043e\u0442\u043c\u0435\u043d\u044b\n        cancelButton = new JButton(\"\u0412\u044b\u0445\u043e\u0434\");\n        cancelButton.setBounds(210, 180, 120, 30);\n        cancelButton.setForeground(Color.BLACK);\n        cancelButton.setBackground(Color.BLACK);\n        cancelButton.addActionListener(this);\n        add(cancelButton);\n\n        // \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e\n        signupLink = new JButton(\"<HTML><U>\u041d\u0435\u0442 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430? \u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f</U></HTML>\");\n        signupLink.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));\n        signupLink.setBorderPainted(false);\n        signupLink.setForeground(Color.BLUE.darker());\n        signupLink.setBackground(Color.WHITE);\n        signupLink.setFocusPainted(false);\n        signupLink.setBounds(100, 220, 200, 25);\n        signupLink.addActionListener(this);\n        add(signupLink);\n\n        getContentPane().setBackground(Color.WHITE);\n        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        setVisible(true);\n    }\n\n    // \u041c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f\n    private String hashPassword(String password) {\n        try {\n            MessageDigest md = MessageDigest.getInstance(\"SHA-256\");\n            byte[] hash = md.digest(password.getBytes());\n            StringBuilder sb = new StringBuilder();\n            for (byte b : hash) {\n                sb.append(String.format(\"%02x\", b));\n            }\n            return sb.toString();\n        } catch (NoSuchAlgorithmException e) {\n            e.printStackTrace();\n            return null;\n        }\n    }\n\n    // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\n    public void actionPerformed(ActionEvent ae) {\n        // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0447\u0435\u043a\u0431\u043e\u043a\u0441\u0430 \u043f\u043e\u043a\u0430\u0437\u0430 \u043f\u0430\u0440\u043e\u043b\u044f\n        if (ae.getSource() == showPasswordCheck) {\n            if (showPasswordCheck.isSelected()) {\n                passwordField.setEchoChar((char) 0);\n            } else {\n                passwordField.setEchoChar('\u2022');\n            }\n        }\n\n        // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u043d\u043e\u043f\u043a\u0438 \"\u0412\u043e\u0439\u0442\u0438\"\n        if (ae.getSource() == loginButton) {\n            authenticateUser();\n        }\n\n        // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u043d\u043e\u043f\u043a\u0438 \"\u041e\u0442\u043c\u0435\u043d\u0430\"\n        if (ae.getSource() == cancelButton) {\n            int confirm = JOptionPane.showConfirmDialog(this, \"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u0439\u0442\u0438?\", \"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\", JOptionPane.YES_NO_OPTION);\n            if (confirm == JOptionPane.YES_OPTION) {\n                System.exit(0);\n            }\n        }\n\n        // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e\n        if (ae.getSource() == signupLink) {\n            new SignUp().setVisible(true);\n            this.dispose();\n        }\n    }\n\n    // \u041c\u0435\u0442\u043e\u0434 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n    private void authenticateUser() {\n        String username = usernameField.getText().trim();\n        String password = new String(passwordField.getPassword()).trim();\n\n        if (username.isEmpty() || password.isEmpty()) {\n            JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044c.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            return;\n        }\n\n        String hashedPassword = hashPassword(password);\n        if (hashedPassword == null) {\n            JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            return;\n        }\n\n        // \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\n        Pr user = authenticateInRole(\"Administrators\", \"admin_id\", \"login\", \"password\");\n        if (user != null) {\n            JOptionPane.showMessageDialog(this, \"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c, \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440!\");\n            new DashboardAdmin(user.getId()).setVisible(true);\n            this.dispose();\n            return;\n        }\n\n        // \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0420\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\n        user = authenticateInRole(\"Receptionists\", \"receptionist_id\", \"login\", \"password\");\n        if (user != null) {\n            JOptionPane.showMessageDialog(this, \"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c, \u0420\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442!\");\n            new DashboardReceptionist(user.getId()).setVisible(true);\n            this.dispose();\n            return;\n        }\n\n        // \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\n        JOptionPane.showMessageDialog(this, \"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n        usernameField.setText(\"\");\n        passwordField.setText(\"\");\n    }\n\n    /**\n     * \u041c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u043e\u043b\u0438.\n     *\n     * @param tableName      \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b (Administrators \u0438\u043b\u0438 Receptionists)\n     * @param idColumn       \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 ID (admin_id \u0438\u043b\u0438 receptionist_id)\n     * @param loginColumn    \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c\n     * @param passwordColumn \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u043f\u0430\u0440\u043e\u043b\u0435\u043c\n     * @return \u041e\u0431\u044a\u0435\u043a\u0442 Pr \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435 \u0438\u043b\u0438 null, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\n     */\n    private Pr authenticateInRole(String tableName, String idColumn, String loginColumn, String passwordColumn) {\n        String query = \"SELECT * FROM \" + tableName + \" WHERE \" + loginColumn + \" = ? AND \" + passwordColumn + \" = ?\";\n        try (ConnectMySQL connection = new ConnectMySQL();\n             PreparedStatement pstmt = connection.getConnection().prepareStatement(query)) {\n\n            pstmt.setString(1, usernameField.getText().trim());\n            pstmt.setString(2, hashPassword(new String(passwordField.getPassword()).trim()));\n\n            try (ResultSet rs = pstmt.executeQuery()) {\n                if (rs.next()) {\n                    int id = rs.getInt(idColumn);\n                    String fullName = rs.getString(\"full_name\");\n                    String role = tableName.equals(\"Administrators\") ? \"Administrator\" : \"Receptionist\";\n                    return new Pr(id, fullName, role);\n                }\n            }\n\n        } catch (SQLException e) {\n            e.printStackTrace();\n            JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n        }\n        return null;\n    }\n\n    public static void main(String[] args) {\n        // \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f\n        try {\n            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\n        } catch (Exception ignored) {}\n\n        new Login();\n    }\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// src/h/Pr.java\npackage h;\n\npublic class Pr {\n    private int id;\n    private String fullName;\n    private String role;\n\n    public Pr(int id, String fullName, String role) {\n        this.id = id;\n        this.fullName = fullName;\n        this.role = role;\n    }\n\n    public int getId() {\n        return id;\n    }\n\n    public String getFullName() {\n        return fullName;\n    }\n\n    public String getRole() {\n        return role;\n    }\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// src/h/SignUp.java\npackage h;\n\nimport java.awt.*;\nimport java.awt.event.*;\nimport javax.swing.*;\nimport java.sql.*;\nimport java.security.MessageDigest;\nimport java.security.NoSuchAlgorithmException;\n\npublic class SignUp extends JFrame implements ActionListener {\n\n    private JTextField nameField, passportField, addressField, phoneField, emailField, loginField;\n    private JPasswordField passwordField;\n    private JCheckBox showPasswordCheck;\n    private JButton signupButton, cancelButton;\n    private JButton loginLink;\n\n    public SignUp() {\n        setTitle(\"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\");\n        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        setSize(500, 500);\n        setLocationRelativeTo(null);\n\n        JPanel panel = new JPanel(new GridBagLayout());\n        panel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));\n        GridBagConstraints gbc = new GridBagConstraints();\n        gbc.fill = GridBagConstraints.HORIZONTAL;\n\n        gbc.insets = new Insets(5,5,5,5);\n\n        // \u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f\n        JLabel nameLabel = new JLabel(\"\u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f:\");\n        gbc.gridx = 0;\n        gbc.gridy = 0;\n        panel.add(nameLabel, gbc);\n\n        nameField = new JTextField(20);\n        gbc.gridx = 1;\n        panel.add(nameField, gbc);\n\n        // \u041d\u043e\u043c\u0435\u0440 \u043f\u0430\u0441\u043f\u043e\u0440\u0442\u0430\n        JLabel passportLabel = new JLabel(\"\u041d\u043e\u043c\u0435\u0440 \u043f\u0430\u0441\u043f\u043e\u0440\u0442\u0430:\");\n        gbc.gridx = 0;\n        gbc.gridy++;\n        panel.add(passportLabel, gbc);\n\n        passportField = new JTextField(20);\n        gbc.gridx = 1;\n        panel.add(passportField, gbc);\n\n        // \u0410\u0434\u0440\u0435\u0441\n        JLabel addressLabel = new JLabel(\"\u0410\u0434\u0440\u0435\u0441:\");\n        gbc.gridx = 0;\n        gbc.gridy++;\n        panel.add(addressLabel, gbc);\n\n        addressField = new JTextField(20);\n        gbc.gridx = 1;\n        panel.add(addressField, gbc);\n\n        // \u0422\u0435\u043b\u0435\u0444\u043e\u043d\n        JLabel phoneLabel = new JLabel(\"\u0422\u0435\u043b\u0435\u0444\u043e\u043d:\");\n        gbc.gridx = 0;\n        gbc.gridy++;\n        panel.add(phoneLabel, gbc);\n\n        phoneField = new JTextField(20);\n        gbc.gridx = 1;\n        panel.add(phoneField, gbc);\n\n        // Email\n        JLabel emailLabel = new JLabel(\"Email:\");\n        gbc.gridx = 0;\n        gbc.gridy++;\n        panel.add(emailLabel, gbc);\n\n        emailField = new JTextField(20);\n        gbc.gridx = 1;\n        panel.add(emailField, gbc);\n\n        // \u041b\u043e\u0433\u0438\u043d\n        JLabel loginLabel = new JLabel(\"\u041b\u043e\u0433\u0438\u043d:\");\n        gbc.gridx = 0;\n        gbc.gridy++;\n        panel.add(loginLabel, gbc);\n\n        loginField = new JTextField(20);\n        gbc.gridx = 1;\n        panel.add(loginField, gbc);\n\n        // \u041f\u0430\u0440\u043e\u043b\u044c\n        JLabel passwordLabel = new JLabel(\"\u041f\u0430\u0440\u043e\u043b\u044c:\");\n        gbc.gridx = 0;\n        gbc.gridy++;\n        panel.add(passwordLabel, gbc);\n\n        passwordField = new JPasswordField(20);\n        gbc.gridx = 1;\n        panel.add(passwordField, gbc);\n\n        // \u0427\u0435\u043a\u0431\u043e\u043a\u0441 \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u043f\u0430\u0440\u043e\u043b\u044f\n        showPasswordCheck = new JCheckBox(\"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c\");\n        gbc.gridx = 1;\n        gbc.gridy++;\n        panel.add(showPasswordCheck, gbc);\n        showPasswordCheck.addActionListener(this);\n\n        // \u041a\u043d\u043e\u043f\u043a\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u043e\u0442\u043c\u0435\u043d\u044b\n        signupButton = new JButton(\"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f\");\n        gbc.gridx = 0;\n        gbc.gridy++;\n        gbc.gridwidth = 2;\n        gbc.insets = new Insets(20,5,5,5);\n        panel.add(signupButton, gbc);\n        signupButton.addActionListener(this);\n\n        cancelButton = new JButton(\"\u041e\u0442\u043c\u0435\u043d\u0430\");\n        gbc.gridy++;\n        panel.add(cancelButton, gbc);\n        cancelButton.addActionListener(this);\n\n        // \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u043a\u043d\u043e \u0432\u0445\u043e\u0434\u0430\n        loginLink = new JButton(\"<HTML><U>\u0423\u0436\u0435 \u0435\u0441\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442? \u0412\u043e\u0439\u0442\u0438</U></HTML>\");\n        loginLink.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));\n        loginLink.setBorderPainted(false);\n        loginLink.setForeground(Color.BLUE.darker());\n        loginLink.setBackground(Color.WHITE);\n        loginLink.setFocusPainted(false);\n        loginLink.addActionListener(this);\n        gbc.gridy++;\n        panel.add(loginLink, gbc);\n\n        add(panel);\n        setVisible(true);\n    }\n\n    // \u041c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f\n    private String hashPassword(String password) {\n        try {\n            MessageDigest md = MessageDigest.getInstance(\"SHA-256\");\n            byte[] hashBytes = md.digest(password.getBytes());\n\n            StringBuilder sb = new StringBuilder();\n            for(byte b : hashBytes){\n                sb.append(String.format(\"%02x\", b));\n            }\n\n            return sb.toString();\n        } catch (NoSuchAlgorithmException e) {\n            e.printStackTrace();\n            return null;\n        }\n    }\n\n    // \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\n    @Override\n    public void actionPerformed(ActionEvent ae) {\n        Object source = ae.getSource();\n\n        if (source == showPasswordCheck) {\n            if (showPasswordCheck.isSelected()) {\n                passwordField.setEchoChar((char)0);\n            } else {\n                passwordField.setEchoChar('\u2022');\n            }\n        }\n\n        if (source == signupButton) {\n            String fullName = nameField.getText().trim();\n            String passportNumber = passportField.getText().trim();\n            String address = addressField.getText().trim();\n            String phone = phoneField.getText().trim();\n            String email = emailField.getText().trim();\n            String login = loginField.getText().trim();\n            String password = new String(passwordField.getPassword()).trim();\n\n            // \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f\n            if (fullName.isEmpty() || passportNumber.isEmpty() || address.isEmpty() ||\n                    phone.isEmpty() || email.isEmpty() || login.isEmpty() || password.isEmpty()) {\n                JOptionPane.showMessageDialog(this, \"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                return;\n            }\n\n            try {\n                ConnectMySQL connection = new ConnectMySQL();\n                Connection conn = connection.getConnection();\n\n                String query = \"INSERT INTO Administrators (full_name, passport_number, address, phone_number, email, login, password, created_at, updated_at) \"\n                        + \"VALUES (?, ?, ?, ?, ?, ?, ?, NOW(), NOW())\";\n\n                PreparedStatement pstmt = conn.prepareStatement(query);\n                pstmt.setString(1, fullName);\n                pstmt.setString(2, passportNumber);\n                pstmt.setString(3, address);\n                pstmt.setString(4, phone);\n                pstmt.setString(5, email);\n                pstmt.setString(6, login);\n                pstmt.setString(7, hashPassword(password));\n\n                int rowsAffected = pstmt.executeUpdate();\n                if (rowsAffected > 0) {\n                    JOptionPane.showMessageDialog(this, \"\u0410\u043a\u043a\u0430\u0443\u043d\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d!\");\n                    new Login().setVisible(true);\n                    this.dispose();\n                } else {\n                    JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n                }\n\n                conn.close();\n\n            } catch (SQLIntegrityConstraintViolationException e) {\n                JOptionPane.showMessageDialog(this, \"\u0422\u0430\u043a\u043e\u0439 \u043b\u043e\u0433\u0438\u043d, \u043d\u043e\u043c\u0435\u0440 \u043f\u0430\u0441\u043f\u043e\u0440\u0442\u0430, \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0438\u043b\u0438 email \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442!\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            } catch (Exception e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(this, \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.\", \"\u041e\u0448\u0438\u0431\u043a\u0430\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n\n        if (source == cancelButton) {\n            int confirm = JOptionPane.showConfirmDialog(this, \"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e?\", \"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\", JOptionPane.YES_NO_OPTION);\n            if (confirm == JOptionPane.YES_OPTION) {\n                new Login().setVisible(true);\n                this.dispose();\n            }\n        }\n\n        if (source == loginLink) {\n            new Login().setVisible(true);\n            this.dispose();\n        }\n    }\n\n    public static void main(String[] args) {\n        // \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f\n        try {\n            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\n        } catch (Exception ignored) {}\n\n        new SignUp();\n    }\n}\n\n\n\n\n\n\n\n\u0443 \u043c\u0435\u043d\u044f \u0438\u0434\u0435\u044f \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0432\u044b\u0441\u0435\u043b\u0438\u0442 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442 \u0438\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0441\u0435\u043b\u0438\u0442\u0441\u044f \u0442\u043e \u0435\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u0430\u0440\u0445\u0438\u0432\u043e\u0432 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u043f\u043b\u0430\u0442\u0435 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043e\u043b\u0436\u043d\u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044f\u0445 \u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0438 \u0440\u0435\u0441\u0435\u043f\u0448\u0438\u043e\u043d\u0438\u0441\u0442\u0430"},{"assistant_initiates":false,"asst_text":"Hello! How can I assist you today?","behavior":"degenerate_repetition","conversation_hash":"e370becc8707136ea69c111abb3615fa","conversation_redacted":false,"conversation_toxic":false,"country":"Canada","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"o1-mini-2024-09-12","n_chars":48,"n_turns_in_conversation":1,"n_words":9,"source_row_offset":5450,"source_shard":"turns-00053.parquet","timestamp":"Mon, 18 Nov 2024 18:12:27 GMT","turn_id":"6dcd20ca8843071adcaf9475","turn_index":0,"user_text":"['Hi there!']"},{"assistant_initiates":false,"asst_text":"\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c `.bat` \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c Wi-Fi \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c `NetSpace` \u043d\u0430 Windows 11, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438:\n\n1. **\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0411\u043b\u043e\u043a\u043d\u043e\u0442 (Notepad):**\n   - \u041d\u0430\u0436\u043c\u0438\u0442\u0435 `Win + R`, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 `notepad` \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 `Enter`.\n\n2. **\u0412\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0432 \u0411\u043b\u043e\u043a\u043d\u043e\u0442:**\n\n   ```batch\n   @echo off\n   REM \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\n   openfiles >nul 2>&1\n   if %errorlevel% neq 0 (\n       echo \u042d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u0430\u0432 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0435\u0433\u043e \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430.\n       pause\n       exit /b\n   )\n\n   REM \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 Wi-Fi \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \"NetSpace\"\n   netsh interface set interface \"NetSpace\" enabled\n\n   echo \u0410\u0434\u0430\u043f\u0442\u0435\u0440 \"NetSpace\" \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d.\n   pause\n   ```\n\n   **\u041f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043a \u043a\u043e\u0434\u0443:**\n   - `@echo off` \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u043e\u043a\u043d\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438.\n   - \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0437\u0430\u043f\u0443\u0441\u043a \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0439.\n   - \u041a\u043e\u043c\u0430\u043d\u0434\u0430 `netsh` \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c\u0438.\n   - `pause` \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u043a\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b.\n\n3. **\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c `.bat`:**\n   - \u0412 \u0411\u043b\u043e\u043a\u043d\u043e\u0442\u0435 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 `\u0424\u0430\u0439\u043b` > `\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a...`.\n   - \u0412 \u043f\u043e\u043b\u0435 \"\u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430\" \u0432\u0432\u0435\u0434\u0438\u0442\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `EnableNetSpaceWiFi.bat`.\n   - \u0412 \u043f\u043e\u043b\u0435 \"\u0422\u0438\u043f \u0444\u0430\u0439\u043b\u0430\" \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 `\u0412\u0441\u0435 \u0444\u0430\u0439\u043b\u044b (*.*)`.\n   - \u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b) \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 `\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c`.\n\n4. **\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 `.bat` \u0444\u0430\u0439\u043b \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430:**\n   - \u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 `.bat` \u0444\u0430\u0439\u043b.\n   - \u0429\u0451\u043b\u043a\u043d\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u043d\u0430 \u0444\u0430\u0439\u043b\u0435 \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 `\u0417\u0430\u043f\u0443\u0441\u043a \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430`.\n   - \u0415\u0441\u043b\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 (UAC), \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0435\u0433\u043e.\n\n5. **\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430:**\n   - \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 `\u0410\u0434\u0430\u043f\u0442\u0435\u0440 \"NetSpace\" \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d.`.\n   - \u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 `\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b` > `\u0421\u0435\u0442\u044c \u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442` > `\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435` > `\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f`.\n\n**\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u043e\u0432\u0435\u0442\u044b:**\n\n- **\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0438\u043c\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:**\n  - \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 `netsh interface show interface`, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0442\u043e\u0447\u043d\u043e\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430.\n\n- **\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b:**\n  - \u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0432\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 Windows, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c `.bat` \u0444\u0430\u0439\u043b \u0432 \u043f\u0430\u043f\u043a\u0443 \u0430\u0432\u0442\u043e\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438:\n    1. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 `Win + R`, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 `shell:startup` \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 `Enter`.\n    2. \u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0432\u0430\u0448 `.bat` \u0444\u0430\u0439\u043b \u0432 \u043e\u0442\u043a\u0440\u044b\u0432\u0448\u0443\u044e\u0441\u044f \u043f\u0430\u043f\u043a\u0443.\n\n- **\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c:**\n  - \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u0433\u0440\u043e\u0437\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0438\u0437 \u043d\u0435\u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `.bat` \u0444\u0430\u0439\u043b\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432.\n\n\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043b\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043c\u043e\u0449\u044c, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u0430\u0439\u0442\u0435 \u0437\u043d\u0430\u0442\u044c!","behavior":"degenerate_repetition","conversation_hash":"aaa0c0eda1c2ca54ae961fc2c086b8e1","conversation_redacted":false,"conversation_toxic":false,"country":"Russia","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"Russian","model":"o1-mini-2024-09-12","n_chars":2900,"n_turns_in_conversation":1,"n_words":388,"source_row_offset":5451,"source_shard":"turns-00053.parquet","timestamp":"Mon, 18 Nov 2024 18:12:44 GMT","turn_id":"8ae4afe23d803dcccce063a4","turn_index":0,"user_text":"\u041c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0444\u0430\u0439\u043b bat \u043d\u0430 windows 11 \u0443 \u043c\u0435\u043d\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f wi-fi \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 NetSpace"},{"assistant_initiates":false,"asst_text":"\u041f\u0440\u0438\u0432\u0435\u0442! \u041a\u0430\u043a \u044f \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c?","behavior":"degenerate_repetition","conversation_hash":"067fd9eb7d0fab7b3e1f3ae9c9d06f49","conversation_redacted":false,"conversation_toxic":false,"country":"Russia","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"Russian","model":"o1-mini-2024-09-12","n_chars":33,"n_turns_in_conversation":1,"n_words":6,"source_row_offset":5452,"source_shard":"turns-00053.parquet","timestamp":"Mon, 18 Nov 2024 18:12:44 GMT","turn_id":"a7e6d6d67257c1ceb589e769","turn_index":0,"user_text":"\u041f\u0440\u0438\u0432\u0435\u0442"},{"assistant_initiates":false,"asst_text":"\u0915\u094d\u092f\u093e \u0906\u092a \u092e\u0941\u091d\u0947 \u0905\u0928\u0941\u0930\u094b\u0927 \u0906\u0908\u0921\u0940 \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0915\u0947 \u092e\u0947\u0930\u0947 \u0921\u094d\u0930\u093e\u0907\u0935\u093f\u0902\u0917 \u0932\u093e\u0907\u0938\u0947\u0902\u0938 \u0938\u0924\u094d\u092f\u093e\u092a\u0928 \u0915\u0947 \u092a\u0930\u093f\u0923\u093e\u092e \u092a\u094d\u0930\u093e\u092a\u094d\u0924 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u092e\u0926\u0926 \u0915\u0930 \u0938\u0915\u0924\u0947 \u0939\u0948\u0902?","behavior":"degenerate_repetition","conversation_hash":"2a61768d05f967648ec571830f659275","conversation_redacted":false,"conversation_toxic":false,"country":"","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4o-2024-08-06","n_chars":364,"n_turns_in_conversation":1,"n_words":56,"source_row_offset":5453,"source_shard":"turns-00053.parquet","timestamp":"Mon, 18 Nov 2024 18:12:48 GMT","turn_id":"1923155d428215f8ae6260ed","turn_index":0,"user_text":"Translate the text to India :\nCould you help me get the results for my driving license verification using the request ID?.\n\n                    Please only output the translation result. Do not output anything else.\n\n                    You response:"},{"assistant_initiates":false,"asst_text":"\"Dandadan\" et \"Blue Lock\" sont deux \u0153uvres populaires dans le domaine du manga et de l'anime, mais elles appartiennent \u00e0 des genres tr\u00e8s diff\u00e9rents.\n\n**Dandadan** est un manga qui m\u00e9lange action, horreur et com\u00e9die, centr\u00e9 sur des adolescents qui se retrouvent impliqu\u00e9s dans des \u00e9v\u00e9nements surnaturels et \u00e9tranges. Il a \u00e9t\u00e9 bien accueilli pour son style dynamique et ses personnages attachants.\n\n**Blue Lock**, en revanche, est un manga de sport, plus pr\u00e9cis\u00e9ment sur le football. Il met en avant un programme d'entra\u00eenement rigoureux pour cr\u00e9er le meilleur attaquant du Japon. Le manga se distingue par son approche psychologique et strat\u00e9gique du sport, ainsi que par ses rivalit\u00e9s intenses entre les personnages.\n\nEn fin de compte, le choix entre les deux d\u00e9pend de vos pr\u00e9f\u00e9rences personnelles : si vous aimez l'action surnaturelle avec une touche d'humour, \"Dandadan\" pourrait vous plaire ; si vous \u00eates passionn\u00e9 par le football et les comp\u00e9titions sportives, \"Blue Lock\" serait un meilleur choix. Avez-vous une pr\u00e9f\u00e9rence pour l'un d'eux ou souhaitez-vous en savoir plus sur un aspect particulier ?","behavior":"degenerate_repetition","conversation_hash":"069b61f90eb171609c1caa023396a92e","conversation_redacted":false,"conversation_toxic":false,"country":"United States","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"Spanish","model":"gpt-4o-mini-2024-07-18","n_chars":1128,"n_turns_in_conversation":1,"n_words":177,"source_row_offset":5454,"source_shard":"turns-00053.parquet","timestamp":"Mon, 18 Nov 2024 18:12:59 GMT","turn_id":"2b02487fce803662e8b0ca91","turn_index":0,"user_text":"Dandadan ou Blue Lock"},{"assistant_initiates":false,"asst_text":"```json\n{\n  \"excerpt\": \"Discover the Best Lithuania mac portal code with 2640 live stream TV, providing unparalleled access to diverse entertainment options.\",\n  \"introduction\": \"Unlock unlimited entertainment with the Best Lithuania mac portal code with 2640 live stream TV, seamlessly bringing you an extensive selection of live channels and VOD content.\",\n  \"head1\": \"Lithuania IPTV Code\",\n  \"body\": \"<div style='font-family: Arial, sans-serif; line-height: 1.6; margin: 20px;'>\"+\n  \"<p>Experience the ultimate viewing pleasure with the <b style='text-decoration: underline;'>SLTV</b> IPTV subscription! This premium service offers the <i>Best Lithuania mac portal code with 2640 live stream TV</i>, designed to deliver a rich variety of channels across multiple genres. From sports to movies and everything in between, SLTV has curated a vast library to satisfy all your viewing desires.</p>\"+\n  \"<h3>Key Features of SLTV Subscription</h3>\"+\n  \"<p><b style='text-decoration: underline;'>SLTV</b> stands out as a top-tier platform among IPTV providers, offering a remarkable assortment of 2640 TV channel categories.</p>\"+\n  \"<h4>Explore Impressive Package Options:</h4>\"+ \n  \"<ul>\"+\n    \"<li>DE KINDER</li>\"+\n    \"<li>DE KINO SERIEN</li>\"+\n    \"<li>RO ROMANIA SPORTS</li>\"+\n    \"<li>DE DOKU</li>\"+\n    \"<li>DE SPORT</li>\"+\n    \"<li>AL SPORTS</li>\"+\n    \"<li>BG BULGARIA</li>\"+\n    \"<li>AL DOKUMENTARE</li>\"+\n    \"<li>MN MONTENEGRO</li>\"+\n    \"<li>AT AUSTRIA</li>\"+ \n    \"<li>DE NEWS INFORMATION</li>\"+\n    \"<li>DE REGIONAL</li>\"+\n    \"<li>AL ALBANIA</li>\"+\n    \"<li>DE VIP SPORT</li>\"+\n    \"<li>DE HEVC 4K</li>\"+\n    \"<li>EXYU DOKUMENTARNI</li>\"+\n    \"<li>HR CROATIA</li>\"+\n    \"<li>SL SLOVENIA</li>\"+\n    \"<li>BH BOSNIA AND HERZEGOVINA</li>\"+\n  \"</ul>\"+\n  \"<p>Not only do you get access to an outstanding selection of live streams, but you also benefit from 12231 VOD directories featuring an impressive range of movies and shows. Options include the latest films like <i>VDE Filme 2024</i>, <i>VDE Filme 4K</i>, and classic favorites such as <i>VDE IMDb Top 50</i>.</p>\"+\n  \"<p>With an expiration date of <b style='text-decoration: underline;'>05/08/2025</b>, this subscription ensures you'll have uninterrupted access to all your favorite channels and content.</p>\"+\n  \"<p style='text-align: center;'><b style='text-decoration: underline;'>Shop now</b>: Use the discount code <b style='text-decoration: underline;'>IPTV10SAVE</b> at checkout for 10% off when purchasing our premium membership at <a href='https://Iptv2live.com/premium-membership' target='_blank'>https://Iptv2live.com/premium-membership</a> and unlock all premium IPTV subscriptions simultaneously.</p>\"+\n  \"<p style='text-align: center;'><b style='text-decoration: underline;'>Stay Informed</b>: Join our Facebook group <a href='https://iptv2live.com/fb.php' target='_blank'>Free IPTV Codes</a> to get the latest trial IPTV codes!</p>\"+\n  \"</div>\"\n}\n```","behavior":"degenerate_repetition","conversation_hash":"f665773257536ae347f15b752ad5d03b","conversation_redacted":false,"conversation_toxic":false,"country":"France","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4o-mini-2024-07-18","n_chars":7650,"n_turns_in_conversation":1,"n_words":1066,"source_row_offset":5455,"source_shard":"turns-00053.parquet","timestamp":"Mon, 18 Nov 2024 18:13:10 GMT","turn_id":"b2a5e47e07c46c5913ecc0b6","turn_index":0,"user_text":"Context: making a product page in Iptv2live.com website! that sell IPTV subscriptions from differents IPTV Platforms.\nTask: Write a compelling product description for an IPTV offer with title: Best Lithuania mac portal code with 2640 live stream TV,  using best SEO practices for 2024. Follow the structure outlined below and ensure the description is optimized for search engines to help it rank highly on Google. The output must be in the following JSON format:\n{\n  \"excerpt\": \"A concise summary mentioning the main keywords of the post title: Best Lithuania mac portal code with 2640 live stream TV.\",\n  \"introduction\": \"Introduction (1-2 sentences): Provide a brief introduction to the product, highlighting its main benefit and mentioning the keyword: Best Lithuania mac portal code with 2640 live stream TV.\",\n  \"head1\": \"Shorten my title:'Best Lithuania mac portal code with 2640 live stream TV' using semantic keywords\".\n  \"body\": \"5 paragraphs <p></p>\"\n}\nStructure:\nexcerpt: A concise summary mentioning the main keywords of the post title: Best Lithuania mac portal code with 2640 live stream TV.\nintroduction: Provide a brief introduction to the product, highlighting its main benefit and mentioning the keyword: Best Lithuania mac portal code with 2640 live stream TV.\nhead1: Shorten my title:'Best Lithuania mac portal code with 2640 live stream TV' to 3 words max using semantic keywords.\nbody:\nensure to make the output in 5 paragraphs <p></p> with one h3 and one h4 that includes concise Description of the Key Features of  the IPTV subscription from the famous IPTV provider platform named: <b>SLTV</b>. which Includes: 2640 TV packages categories, like: DE KINDER, DE KINO  SERIEN, RO ROMANIA SPORTS, All, DE DOKU, AL SPORTS, DE SPORT, BG BULGARIA, AL DOKUMENTARE, MN MONTENEGRO, AT AUSTRIA, DE NEWS  INFORMATION, DE REGIONAL, AL ALBANIA, DE VIP SPORT, DE HEVC  4K, EXYU DOKUMENTARNI, HR CROATIA, SL SLOVENIA, BH BOSNIA AND HERZEGOVINA,  and 12231 VOD Directories, VOD exemple: VDE Filme  2024, VAL Shqip, VBG Bulgaria Filme  \u0424\u0438\u043b\u043c \u0411\u044a\u043b\u0433\u0430\u0440\u0438\u044f, VDE Filme  2019, VRO Rom\u00e2nia Movie  Film Rom\u00e2nia, VDE Filme  4K, VEXYU Serbia Movies  \u0421\u0440\u0431\u0438\u0458\u0430 \u0444\u0438\u043b\u043c  2023  2024, VDE IMDb Top 50, VDE Filme  2023, VDE IMDb Top 50 Western, , IPTV subscription Expire on : 05/08/2025.\nSEO Tips:\nExplain the product in detail, focusing on its benefits, the IPTV provider platform name: SLTV, usability, and the available streaming content. Include the keyword: Best Lithuania mac portal code with 2640 live stream TV, naturally and use LSI/NLP related keywords to the post title.\nEnsure to include in the end of the body the first Call to Action NATURALLY in 1 paragraph, Encourage potential customers to take action, by using the discount code IPTV10SAVE at checkout  for 10% off when purchasing our premium membership at https://Iptv2live.com/premium-membership and unlock all premium IPTV subscriptions simultaneously..\nEnsure to include after the end of the body the Second Call to Action NATURALLY in 1 paragraph, Encourage visitors to take action, by joining our facebook group : Free IPTV Codes https://iptv2live.com/fb.php to get the latest trial IPTV codes.\nIncorporate the primary keyword: Best Lithuania mac portal code with 2640 live stream TV, and related keywords naturally throughout the excerpt, introduction and body.\nUse HTML tags for better formatting and readability, such as <div>, <b>, <i>, <ul>, <li><table>, and <p> in body.\nEnsure the use of a modern and stylish HTML design in the body display by using inline style = '', \nHighlight the body into a stylish and modern <div>, \nClearly Mention and Highlight the platform name: SLTV with stylish text decoration using inline style.\nHighlight the platform name: IPTV10SAVE at checkout  for 10% off with stylish text decoration using inline style.\nHighlight the first CTA: by using the discount code IPTV10SAVE at checkout  for 10% off when purchasing our premium membership at https://Iptv2live.com/premium-membership and unlock all premium IPTV subscriptions simultaneously. with a proper anchor texts into a new line centered HTML button tag. \nHighlight the second CTA: by joining our facebook group : Free IPTV Codes https://iptv2live.com/fb.php to get the latest trial IPTV codes with a proper anchor text into a new line centered HTML button tag. \nAvoid keyword stuffing; focus on creating valuable, informative content for the reader.\nMake sure the product description is engaging, informative, and optimized for search engines while providing value to the reader.\nMake sure to never mention the word \"Call to Action\" in your response.\nFinally make sure that the output overall pass all AI test detection by using Humanized  and natural Text writing style."}],"shard":{"index":53,"name":"turns-00053.parquet","rows":69386}}
