From 8c0972ddf2fcb4fdb859ae2c77be853b4d170ea6 Mon Sep 17 00:00:00 2001 From: Lomesh2000 <80121664+Lomesh2000@users.noreply.github.com> Date: Thu, 9 Apr 2026 12:58:27 +0000 Subject: [PATCH 01/18] EXP: new hdfc policy document --- chunks.json | 638 ++++++++++++++++++++++++++ data/business/Privacy_Policy_hdfc.pdf | Bin 0 -> 135835 bytes faiss.index | 0 out/chunks_recursive_128_ov16.json | 152 ++++++ out/chunks_recursive_128_ov8.json | 137 ++++++ out/chunks_recursive_256_ov16.json | 77 ++++ out/chunks_recursive_256_ov8.json | 72 +++ out/chunks_recursive_512_ov16.json | 42 ++ out/chunks_recursive_512_ov8.json | 42 ++ out/chunks_semantic_sim74.json | 202 ++++++++ out/chunks_simple_128_ov16.json | 147 ++++++ out/chunks_simple_128_ov8.json | 137 ++++++ out/chunks_simple_256_ov16.json | 72 +++ out/chunks_simple_256_ov8.json | 67 +++ out/chunks_simple_512_ov16.json | 37 ++ out/chunks_simple_512_ov8.json | 37 ++ out/retrieval_results.csv | 118 +++++ out/summary.json | 67 +++ 18 files changed, 2044 insertions(+) create mode 100644 chunks.json create mode 100644 data/business/Privacy_Policy_hdfc.pdf create mode 100644 faiss.index create mode 100644 out/chunks_recursive_128_ov16.json create mode 100644 out/chunks_recursive_128_ov8.json create mode 100644 out/chunks_recursive_256_ov16.json create mode 100644 out/chunks_recursive_256_ov8.json create mode 100644 out/chunks_recursive_512_ov16.json create mode 100644 out/chunks_recursive_512_ov8.json create mode 100644 out/chunks_semantic_sim74.json create mode 100644 out/chunks_simple_128_ov16.json create mode 100644 out/chunks_simple_128_ov8.json create mode 100644 out/chunks_simple_256_ov16.json create mode 100644 out/chunks_simple_256_ov8.json create mode 100644 out/chunks_simple_512_ov16.json create mode 100644 out/chunks_simple_512_ov8.json create mode 100644 out/retrieval_results.csv create mode 100644 out/summary.json diff --git a/chunks.json b/chunks.json new file mode 100644 index 0000000..1678c06 --- /dev/null +++ b/chunks.json @@ -0,0 +1,638 @@ +[ + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Indian Oil Corporation Limited", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "DATA PRIVACY POLICY", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "1. INTRODUCTION", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Indian Oil Corporation Limited is a company incorporated under the laws of India, having\nits registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai –\n400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”].", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter\nreferred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate\nIOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es\nfor providing or offering its services and products.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "2. DEFINITIONS", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL\nis the principal and the other individual or entity is the agent, shall hereinafter be referred\nto as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be\nconsidered Agents.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Data Subject: All individuals whose personal information is either collected, received,\nprocessed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data\nSubject”.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Information: Personal Information of a Data Subject collected by IOCL under this Policy shall\nhereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive\nPersonal Data or Information as defined under the Indian Information Technology Act, 2000\nand the Aadhaar number and/or the biometric information associated with an Aadhaar\nnumber .", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Third -Party: Any individual or entity over which IOCL does not have any control or\nownership, and which operates independently on its own is hereinafter referred to as a\n\"Third Party\".", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "3. GOVERNING LAW", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL is an organisation based and existing in India and is thus bound by the laws of the\nRepublic of India. This Privacy Policy has been prepared in accordance with applicable\nIndian laws, including the Indian Information Technology Act, 2000 and the Aadhaar\n[Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 .", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "4. APPLICABILITY", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "This Policy appli es to all individuals whose I nformation is either collected, received,\nprocessed, stored, dealt or handled by IOCL .", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Indian Oil Corporation Limited 5. OBJECTIVE\nThis Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes,\nstores , and use s personal information that a Data Subject provides to IOCL either directly\nor indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information\nthat Third Parties share with IOCL .", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL collect s Information about Data Subject through the following means:", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(a) whenever a Data Subject shows an interest or elects to use IOCL’s services or", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "products, including information about IOCL schemes, irrespective of whether such\nservices /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ;", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(b) through IOCL’s network of Agents and a Third Party which collects such", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Information and transfers it to IOCL for a business requirement ;", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(c) when Data Subject downloads IOCL’s mobile applications or visits any of the", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "websites owned by IOCL and/or creates an account on the mobile applications or\nthe website s.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(d) when Data Subject, which also includes employees of IOCL, directly elects to share", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "their Information with IOCL.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE]", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL uses the Information to conduct its business and to provide Data Subject with the\nbest possible services /products. IOCL will only use the Information based on this Privacy\nPolicy, its understanding with the Data Subject , or as required by law.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL will collect adequate, relevant and necessary Information and will process such\nInformation fairly and lawfully for the purpose it is collected . Most comm only, IOCL will", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "use the Information in the following circumstances:", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(a) Where IOCL need s to perform the obligations it has promised the Data Subject ,", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "such as to provide a service or product to the Data Subject and to enable the Data\nSubject’s use of IOCL ’s products/ services , including but not limited to deal ing with\nenquiries and complaints made by or about the Data Subject relating to\nservices/products provided by IOCL and to improve and customise IOCL’s\nservices/products in accordance with the Data Subject’s preferences ;", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(b) Where IOCL need s to comply with a legal , accounting, business or reporting", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "obligation , including compliance with requests from the Government of India or\nany Governmental Agency ;", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(c) To send marketing as well as non-marketing commercial communications to the", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Data Subject ;", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(d) To send the Data Subject notifications that the Data Subject has specifically", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "requested for as well as to send statements, invoices and payment reminders to\nthe Data Subject , and to collect payments from the Data Subject ;", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(e) To provide Third Parties with statistical information about its customers but those", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Third Parties will not be able to identify any individu al from that information;", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(f) To keep IOCL’s website, mobile application s and other systems secure and to", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "prevent fraud;\nIndian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to\nprovide and disseminate information about relevant programm es under the Skill\nDevelopment Mission.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "(h) To manage the employment of the data subject with IOCL.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL collects and processes the Information only when it is essential to offer its\nservices/products to the Data Subject. By providing his or her Information , the Data Subject\nagrees that IOCL may collect, use and share this Information with Third Parties for the\npurpose s mentioned above from 7[a] to 7[h].", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "8. FAILURE TO PROVIDE INFORMATION", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL\nmay be prevented from complying with its legal , accounting, business or reporting\nobligation s if the Data Subject fails to provide certain Information when requested by IOCL .", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its\nservices or if there is a deficiency in IOCL’s services to the Data Subject due to Data\nSubject’s failure to provide such Information.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the\nData Subject and held harmless from any complaints, legal proceedings or claims filed or\ninitiated by the Data Subject or any Third Party against IOCL in this regard.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "9. CHANGE OF PURPOSE", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it,\nunless IOCL reasonably consider s that it need s to use it for another reason and that reason\nis compatible with the original purpose.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "10. CONSENT", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Data Subject agrees that IOCL does not need any additional or further consent from\nhim/her to use the Data Subject ’s Information in accordance with this Policy to carry out\nIOCL’s legal obligations or exercise specific rights.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "11. INFORMATION SHARING AND DISCLOSURE", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably\nnecessary for the purposes set out in this Policy and for the purpose of providing\nservices /products to the Data Subject .", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Such Agents and Third Parties are expected to provide a similar level of protection to the\nInformation as is adhered to by IOCL .", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "In addition to this, IOCL may disclose the Information where it is required to do so by law\nor to Governmental Agencies.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA\nUnless stated otherwise, IOCL store s and process es the Information in India. There may,\nhowever, be occasions when IOCL need s to transfer the Information outside India for its\nbusiness requirements. In such instances, IOCL will exercise the same level of care in\nhandling the Information as it does in India.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "13. DATA SECURITY", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "The Information is processed by IOCL in strict accordance with the Indian Information\nTechnology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain\n‘Reasonable Security Practices and Procedures’ as stated in the Indian Information\nTechnology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and\nProcedures and Sensitive Personal Data or Information] Rules, 2011, while processing,\ncollecting, storing or handling any Information.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "14. DATA RETENTION", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL\ncollected it for, including for the purposes of satisfying any legal, business, accounting, or\nreporting requirements.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "In some circumstances, IOCL may anonymise the Information so that it can no longer be\nassociated with the Data Subject , in which case IOCL may use such information without a\nfurther reference to Data Subject .", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Details about the primary entity which handles and retains the Information is provided", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "below:", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Indian Oil Corporation Limited having its registered office at:", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IndianOil Bhavan\nG-9, Ali Yavar Jung Marg\nBandra [East]\nMumbai – 400051\nIndia", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "16. REVIEW OF INFORMATION", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Data Subject can contact IOCL, through the Grievance Officer whose details are provided\nat the end of the Policy, requesting access to Data Subject ’s Information for reviewing or\nrequesting amendment to certain information that Data Subject considers to be incorrect\nor wrong. IOCL shall process such requests from Data Subject in accordance with applicable\nlaw.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL shall not be responsible for the authenticity of the Information provided by the Data\nSubject to IOCL or its Agents.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT\nData Subject may at any time revoke or withdraw Data Subject’s consent to provide\nInformation to IOCL by contacting the Grievance Officer whose details are provided at the\nend of the Policy. However, such action may render it difficult for IOCL to offer some of its\nservices /products to the Data Subject any further.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its\nservices or if there is a deficiency in its services to Data Subject due to Data Subject’s\nwithdrawal of consent.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the\nData Subject and held harmless from any complaints, legal proceedings or claims filed or\ninitiated by the Data Subject or any Third Party against IOCL in this regard.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "18. CHANGES TO THIS PRIVACY POLICY", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "The Policy is subject to modification s from time to time. If IOCL decide s to change this\nPolicy, IOCL shall publish the modified Policy on its website.", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "19. GRIEVANCE OFFICER", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "In accordance with the Indian Information Technology Act 2000 and the rules notified", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "thereund er, the contact details of the Grievance Officer are provided below:", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Sh. Abhinav Bhatt ,\nCorporate Business Technology Centre,\nIndian Oil Institute of Petroleum Management Campus,\nPlot No. 83, Institutional Area,\nSector 18, Gurugram,\nHaryana – 122001", + "meta": {} + }, + { + "doc_id": 0, + "filename": "Indian Oil Priivacy policy.pdf", + "text": "Email: data -grievance@indianoil.in\nPhone : 0124 -2861509", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "Privacy Policy", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for\nInternal Consumption only.\nHDFC Capital Privacy Policy", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4\nPrivacy Policy", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "1. Objective", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the\npersonal information of employees, contractors, outsourced workforce, vendors, interns,\nassociates, customers , Corporate Social Responsibility (CSR) partners and business\npartners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the\nInformation Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable\nsecurity practices and procedures and sensitive personal data or information) Rules,\n2011 (“ Rules ”).\nThis Policy must be read in conjunction with the Act and the Rules, as may be amended\nfrom time to time.", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "2. Applicability", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of\nthe Policy”) who may receive , collect, possess, stores, deals or handle Personal\ninformation (PI)/ Sensitive personal data or information (SPDI), on behalf of the\nCompany .\nAny such Third Party is expected to have read, understood and comply with this Policy.\nThe Company will use its best endeavors to ensure that such Third Party have read and\nunderstood the terms of this Policy and preferably having entered into a confidentiality\nagreement.", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "3. Key Definitions", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "(a) “Data subject ” is one who is the subject of personal and sensitive personal data . It", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "may include, but is not limited to, the employees, contractors, outsourced workforce,\nvendors, interns, associates, customers, Corporate Social Responsibility (CSR)\npartners and business partners of the Company.", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "(b) \"Personal information (PI) \" means any information that relates to a natural person,", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "which, either directly or indirectly, in combination with other information available\nor likely to be available with a body corporate, is capable of identifying such person .", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "(c) “Sensitive personal data or information (SPDI) ” of a person means such personal", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "information which consists of information relating to.\ni. password .\nii. financial information such as Bank account or credit card or debit card or other\npayment instrument details .\niii. physical, physiological , and mental health condition .\niv. sexual orientation .\nv. medical records and history .\nvi. Biometric information .\nvii. any detail relating to the above clauses as provided to body corporate for\nproviding service; and\nviii. any of the information received under above clauses by body corporate for", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "processing, stored or processed under lawful contract or otherwise:", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "HDFC Capital Privacy Policy", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4\nprovided that, any information that is freely available or accessible in public\ndomain or furnished under the Right to Information Act, 2005 or any other law\nfor the time being in force shall not be regarded as sensitive personal data or\ninformation for th e purposes of these rules.", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "(d) “Third Party ” means all external parties such as contractors, outsourced", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "workforce, interns, summer trainees, vendors , CSR Partners and business partners\nwho have access to Company’s information assets.", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "4. Elements of Privacy Policy", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "This Policy describes generally acceptable privacy principles for the protection and\nappropriate use of personal information and SPDI at the Company .", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "4.1. Consent\nThe Company shall obtain consent from the Data subject before collecting, receiving,\npossessing, storing, dealing or handling personal information or SPDI of the provider of\nsuch information. No PI/SPDI shall be used by the Company without the consent of the\nprovider of the information . The consent shall be obtained (in writing or electronically)\nfrom the Data subjects before or at the time of collecting PI or SPDI .\nThe Data subject shall be provided with a choice to opt out and withdraw any consent\npreviously given by way of written communication to the Company .", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "4.2. Collection of Personal Information\na) The Company shall not collect PI or Sensitive personal data or information (SPDI)\nunless : (i) the information is collected for a lawful purpose connected with a function\nor activity of the Company or any person on its behalf; and ( ii) the collection of the PI\n/ SPDI is considered necessary for that purpose .\nb) While collecting PI/ SPDI directly from the person concerned, the Company or any\nperson on its behalf s hall take such steps as are, in the circumstances, reasonable to\nensure that the person concerned is having the knowledge of : (i) the fact that the\ninformation is being collected; ( ii) the purpose for which the information is being\ncollected; ( iii) the intended recipients of the information; ( iv) the name and address of\nthe agency that is collecting the information; and (v) the agency that will retain the\ninformation.\nc) The Company or any person on its behalf holding PI/ SPDI shall not retain that\ninformation for longer than is required for the purposes for which the information may\nlawfully be used or is otherwise required under any other law for the time being in\nforce.\nd) The PI/SPDI collected shall be used for the purpose for which it has been collected.\ne) The Company shall address any discrepancies and grievances of the provider of the PI/\nSPDI in a time bound manner. For this purpose, the Company shall designate a\nGrievance Officer and publish his name and contact details on its website . The\nGrievance Officer shall use best endeavors to redress the grievances o f the provider of\ninformation expeditiously within one month from the date of receipt of grievance .", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "4.3. Disclosure of Information\na) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission\nfrom the provider of such information, who has provided such information under lawful\nHDFC Capital Privacy Policy", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4\ncontract or otherwise, unless such disclosure has been agreed to in the contract\nbetween the Company and the provider of information, or where the disclosure is\nnecessary for compliance of a legal /regulatory obligation ;\nProvided that the information shall be shared by the Company , without obtaining prior\nconsent from the provider of information, with Government agencies mandated under\nthe law to obtain information including sensitive personal data or information for the\npurpose of verification of identity, or for prevention, detection, investigation including\ncyber inciden ts, prosecution, and punishment of offences. The Company will use best\nendeavors to ensure that t he Government agency send s a request in writing to the\nCompany possessing the sensitive personal data or information stating clearly the\npurpose of seeking such information and stating that the information so obtained shall\nnot be published or shared with any other person.\nb) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law\nfor the time being in force.\nc) The Company or any person on its behalf shall not publish the PI/ SPDI .\nd) The Company shall use its best endeavors (including by way of execution of appropriate\nnon-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from\nthe Company or any person on its behalf shall not disclose it further .", + "meta": {} + }, + { + "doc_id": 1, + "filename": "Privacy_Policy_hdfc.pdf", + "text": "4.4. Reasonable Security Practices and Procedures\nThe Company endeavors to have in place reasonable security practices and procedures\nin place to protect the PI/SPDI of the provider of information.", + "meta": {} + } +] \ No newline at end of file diff --git a/data/business/Privacy_Policy_hdfc.pdf b/data/business/Privacy_Policy_hdfc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d1c19f6df93e803ce251af945588e4e7979ad6ac GIT binary patch literal 135835 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

Ah83;~ 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]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%0D=tgY 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

>hm9Xer z>m=q%e!iB)+7z*>pLtZ+%X0!~{|YBeof0=IFK{9fB+jn{o?@Of^Tf2=Eod;3WLA*k zXce{ae4T)PlhP~Kn6J9kSX5k+7BmSre;5-hWb z;Ent!GNqSMW7|P0;Fb8UlKJ0#uWJ)jCG>dOuzPV}MQ*CH-iHrnzQZ`}Ym9^u=h=?u z7s(h6a709Kg{T&5*e{fPB5pq=IVor$a|uEM83Z5|Y*PtSLjKU%C|oWc$z{Z_PNCEW z^o(Rn_Hzz{!c#3e#TP^Dt(+;V06=X@8j`t0bZoyz{U@ zLiIL-bwd%odRsQ^CzDH4JUbU052=hv&!zpVv$L)B$*HpWNu2A#7noXf0~?%bhMxrV z-ddU6)Lryji6q_l&7m2S9I-6pp!3rJAnjx5sOYm{EAxy=-mQr)1tS z^Ts>V15&qD=my&KJ%a3?j{SY^DFJ-pD{>mVY7VQ>G`r^yo7EVRm7Uccyhic8CV0!g z4e?17Sq+f=Ed933&8`T?-LXcgP#{UhA}YXxge@rw*j4P}Uv4Rqqc=xEpVaP#E&URowwbxLRSQ}w|uz5jwWhBRRwIg*>1 zwT%QyMt>$c0<*^&In6%sAelbd0}0xY2RsP^q}28*H$82l!c z_S`QUmnoLl*Uzz>80bxB6{NjAWQ>;S#iH?e_@|a6Rq6>CXfLFx;rrHUTKk_5&xUo- zJB1orNcx>pV4G3H}W7?(S9_ zWWTJa6js=YfuQqB5vR4%k8AQf8p5RP_oCHQAZYdw@>$+8zu^OA@Ps36gu$o-v(~`U zn=bX4>Y;nWi}u2948dJOvnZ6S_k1;52S|?uD3k<|o@7$%;aUZk$8vr?yjD#2dAF!r zPWnO3-TdWE5WuAgGU?FLKuGRqeHayaqHNr><=KdvF+jUH5j~9o1N##-wFpV;YPgBacTNDxt%nfNb4-XGxR{xVTVvn<)(EZDZr)!A&4rIm4AV-qAC(zdYfU#H24NkP zXbYutZ0%S1fH`u>5LnO-WK;OWbij|K)B|kR)6xLV)?@9+i`~eyf9|WL=R&X4OJoL2 z?$}dUgH$El_GAzNX;`oV!QOYdHUU1s2x77iJsn`77LgoOt`BGBUw#tr1o8kiiLn8y z>kE?g79w_1^uQ(ApKz7u$XD3xy75(F8#70*$R&E}Lg|$>m%KV$9=J^T$ywN4;FvM@ zOz{~q7tNF97sD{Bz!*8lB$+I~CSgur*zOM83v}x&d7bwVo`9F<7%}%(@eQN!pGUt< z^b4SnFZV&_hll(Dw6Ivsf9^QY`ji$s0>7`(>vQ~L@8wUgZpNb&!>C~`hbW#UG;v@Lpm$)1 zU-!O3#k^c@25*o%7&`$yP(7hN3VN#x_0^E$}VIXA3%=^De;WzL7n| zJt#ejul7+rpK;~bzwT%+1sLL5T?!NX5Fm+?R<(-T1^p&5>a|X`Z0v5Rr@dp%Dz74=yBahau<>g`5eeK@Kd9iLOc#H zADA?#T%pSPO&_wX9#A3$RhrGBM5Wi9_&z0`sdYPtyKmVXT^R9gGT}}uf!r1|J$&jP zv-JFA*Y*wbcKSiDYB+IiT2}7QaxWV8!=IF=ZcJ&hYX5Fwd5k`EfwqRWg(vfU*c{#M z_W5)I0p$|0>>XtHwvDm8arJj5c754r+Zh2uYuKl~+oQ7idbo4^ z8l!o;%X>RWT#$?^F&?!L_IwQ=Ez+UZ~O z=+2D1=V*r0rr)%-TUk!M59`^20-KleyftUn5t=_eZZh)TEgRkq+P&lME4rLycX@rp zI1aD8xeTTHn0gK?dQyBo6@S^DUfv_%?|e7?T5rXNLSJd0BfZ!Y-enKVyJ;p-7kBBb zx^%E!d=g(Txb&18WmD)co0652lcSID>3M*3OK*TFJ_<}N)dpMC9_Y#IYiUe)T*u>o54lfK1d{717Z@kJm)fGu^|y92UTYplA5acoUJhOT89p#* z&;5G>Y5-6P6cSpky|pL~OT=Srfb257xHtT$EFGfH(EgoBE^fJY7 z{3(pru=yaR?v?n%aXBy4{o^_WpZDq^?G$KlZdm5`rgZ$Umn?NepFqi23GR8xrYc zoC&!_T2c`b&t+DFM~G$?og8^EK%Z_;4${g_!p%jIAy?y5~&=f$XFud7{*-# zlM1F(St3LN#0cP!@Q{#6*GatEni^6}@D&`pI>C2W+a zP#7+L&_XG4F4saja^7RHU@g;I^Ro1*fOvt|0{;!SF?%gLN=dAQ_{8k-{S1^#)Jw@L zAxc?lQNg{NOF2^#W&!ie@Bye%AyWolA-Z(<2YUZbG) z`vieid;V1T66_M}jrdaJl2oI@dd6Fn+??K$ejeX4y>Zg9u1RKH_FLp#oLlN!xjjca zC)#{D)7Y`7eB+VobD>eUcu(6sDU0+g+~y>hLnQi4{#N(#?+M5t)2EwPqgqw<>~h%r zWAbD2;P8X$gX%!)8=F_VT4{IgH6s49%W3-n`9r6BCWlz{^7&x#gU}nHUDZ|vK2rA5 z`lHK0&|CZ4`ySCJ^C$Cd@te$NQOic=H69J`G2S5_X_Y;C3;yqHmuLq*nyQ~rwzsg> zx%a|n$xEC^okv~E6we@!h}Pc)jP^meA#cO(momE<4hkDac+7tT%MoPx5*ro`7_@um zL;CwQEt4D;o+LKUu+OmQ=c_XBPd>^rS0yC66-3{@(096vAWxe~We}ZeJU0brKsH+_ zEfVK*11$0!z1RP4c)RfhA-eJVATGSs0^`k_Ski9@yGaGfyGi@RK008EZMT^1w%Tj! zF$q+>{l$s-1PVg43Fao`5Y2bVLmKYpd%HM)et)^%(}F!d_E)*pE}rxhJC*OsfB1ck zS1>+@Um#aNZGu|O%KVz029iha@;&T8&}X0$U9OI+(_?WdsA7noi@aP9y)i~bU)^4D zc9%9zb;VVe)tUbpp}eU&igt%pom`=@)n86h9^0>O-I1-_kD!M75vbffJz!X|H_Jjf znP#H;Vetp9R9}T%ZBh?)pRSR+9K%bk@Fi_6TNzq~R4tOixY2JBOa;}XG`hTAU0aXU zZ}Szsv2ji6qpNMni!>N5OI!}+i7?sMX{inHqT+4}>Rvm8S0 z`)XeE*}q4&PwP*}?&6CiyyfkAxs&Vqbocnp86Rf^6ZVFlPv3U|Z|>Di&xFlUN*^!q zm8;KV%$M)?=f$V%C$5=ypAlSxzo2vLbKHQls`Nq^+S4SOaI0BbZ>fd2hKIU`M%ab} z&0uv=jUkO8b!ghbq|qe%ap`d!sYc^m<5c5B<4WUvYpA-Q!nMuq^ z_eoMo)Jf+_nku7d=8c+}D%Gr3GHM=b*G*5&@OAJ_@Xb+mXllcn;T5DyluM^e>PuAT zp65j8_U9JoT<2uxD(CQ)m5p0#X4dt1_0DQ?>eCwZYV?}b8h=+nHQQ*%$<`gyx6vA% znjdQ)>){#>*MnC@*M`=HR-vs2n?{@L*QM8SG#jmRty8TNtt+kbt-~van$}fJEo&Or z)~v~`GMkv2?wh2VsGH84G@VDY%$wIUovV4Qel(o5YZu^3iaw5IAz;0c#Qo>F-%0dvgCxT>y4C7(uKg~BocZpzg>9ECKfwMA0k&a3=;e3o%S%FzueNmaO{ZOJYc}*2J=cv4YA@)qo zDMO3qfy6NX??}(`j1?x=_1UT@ne~LK;|3l zWLariZct<3l2E(mc{SV|xMhDM<66KPsCAx7S)w^}!|IyW4;O*7=HS_YsCBqX{^inH z19+vfrD>;kv9l<5wf0<<*>a<%>}cv~LT20ibp%)Z6z`Pxl;4!+F~hO=vDz_*X>9!f z=OE`M=eYV|#R5UiN43#1*D}>I(X!H#*kiuR?$UX& z6-!%8Ygjw8in;2(N~(&w>by#`t-$omd9&0*-Rr#SdG@^)E4dnBUhK^9(at?rr$TPF z_`Lps%B!nOShv?=8{CVz+=E+vkh{l1yL~G+dujSS`GNY)=`)FYGxIQMvyJ;iw#B3M zy$zz}enV)Jc*9VwlG-u3rpmg_BdL9iXS;KxbE9*ubEhW9aVTI2)G$xpA_0>*lFG2Fc0f(P zf{_g)J<@te){y?ZJT1~Wzn{Z6gOv^=IkJ2RE_z4e*~rZ(`U=Y3AnPiNH_JOqAgi~+ zIr8qe>ySqnfHaFT>ojXM%VL^n8hRRQ8hqMhnr+%fF0;6I{*3d8^OWL%)z_at*C^Mv*>$<5T&)Z^G4-8I=&)ot00 z-NUk@aSLS2J9K>x&luYUatZbm??2Uh|_j0igbyb0n3{0R&K@@h}qz3Qj$ z7wcE+XXn?)Z>MLU17KigApe7_hM|V0hN_0Xf>Q#u01gkT0Wu6s4pIzq42%wf4^ahX z18&YhYz9{*K#T!9^XTj*edgFAUbztV@M#Qid1V{W~_zmNP@Cfw?0|$HfFE~gv zcqn)%2wG?`cQp5IW@0AekCU0cnYx*>nYEdrnN$f`1Gf^o1!QCJnh?2QW^R3McrJA= zwm#Mr?6^KL4(xE>X1`b8XCFxa>#qK8>~8I@-EN<)ovVEd0Kg0&*TU7o&_UBd)xqBS zy@j@gTZO>>Z@nLPcYgPNcYN1!HysIUG(?TqVju*RxK{jGJX^ebq(|J_NX^K|$jV5o zfI$H#6^AlGeWtRkg0# zbURF) zfu;fHfu|uXgUZ^cl~6U)3+W5b3xx~G3-=2ZtuWJ}OFPpIY=mKyTfEz@TcF#HmzkH4 zmz0-)Td3R6+c{TtPf<^2Pa97GPYF*EPZ>`kPX|v;PgBpoAN(Dh-Xz`tZzgXpZ#r+r zFS`$o4-3g^6o$+6Ng&6s*@J)5cGR8z(#rxPa}XXVcggxsFXVd@}bx;5d4 zUc-H=vLInXdM$pcfE`noERHA6h5Vfyf)s-MAGsJQOx%9F$Y|U_!okBqg^{wox4pc* zo4u30w!NagrM*}kn|ijDbQ5VbDR*3PoM}9ITynf>Jo^>$m1H;dIbEugRrsxCyDy*O z9O^e&9I6l75ZMDdI5eGp41@3ubbsKkpb|zeuib8Y9|s{}glTqr5L6#R(08QI^6B{t zdpbDud?5Ks7U#bZbU9}no}6jub@ zpoqzO<0pCt%iV`l{LNaF() z4~C7>ZeSDyvVPOecsFFFO3D%!mbAI-+GtL28Sr#!9zk+K_La$hL(W&9a}S z4@f@GbPkA~oAcPs5I;c1o>re!hX~ToY$GRrMSVqaoL-+A@8zkUpzfiCiiZ%M<;eo_ z;CC>b(YTNRW*d|Mp9uR2n6qPLv)L zSfUzFU^R-bQ*jIJ$gNOii^-;@r>2kB9xETCtJ8E-bc@GPc%pn4&%aBuk71#_rZAOA zx0iK_n?GA#1f1#N&g-42{40A_sD874lc}FKWmQ)^F_KsY8j*09TS$P5oD*UqCR+j1n;B2}1CK1(Cz*-N|BAW3Xb zYFUzyYiDcGNmQxvE>_eye=9t%c!)dCIL~Ova^gcTfU63xlA0T@8n5D$OxMnC<4tTj z<=rH=Uao&kQOYNO2y76NJKHSGKIeJRnX_5K{)}%B`%e2}HRn4Ihb{zp%XbfT{6oJe zRVegkf_i1;E(XNf`2GRo40_ZPk+EG?s;?Gp9K)H z@a6Vv>0+tJ^V-)X-vXAZog?kSe309yj$GvYu{Io5Z^Gx?9Gm7f z_TTkV`fijoKMYM$qwlbCLJqB=PW(2@OP*^i8pn~T-3Ss$T}*0?s#wX{9nKa{}q-5>LAyaFL-f|Rin1#HE6DgE1&>a0JPC` z60u`^4=jqM-%tOI)GyL2Q-QK%j!ZIcC^rl@6fxC(@%pa6Q{rkm3DHI>YfOSz%PBb_ zt$^{s@xbmH*-lpUd;OGKYK4KS36R0ievc@xs4|utREDXeKK(#_-9rz#E(Dq6|BPPj zpYT60Tzg!5c2{;+kSuuZ!*H;UON`9tW$9(xQ)5SjHU^zv0h9(j>6eruB#wF!d0oL%w1lIFYD-sxb$^*M%@Dgj#?Le5 zI|!>b@n69}Ya+l7(_yvexC6T*y+cEwOJ2M*N`L>U_W~}~<$nve(+amKOy`4}RxNbz zq&W90>)cf)BPwm0*c&>o_`tjeddILwa%aEftg&bbrH9;44k&x*Lw;hK*$#{9S>Oh> zXV^E9-^MP>ycVpD52$-#;QwtxpxeySDC-@~Cm+oEL&G84=Ch=f8 z3z5M^UoU~Ofp}p&(OfY*V0A#M{g!*rciMZI?xQ^t!h)U5OmvgtiVW_H+EmQ>`dJ=$ z%sJ4_6{!31LMo-ol^=u0_a4`SVp^`*e3P1&kDM# zziEd&HjH(%M=LbCX~v*NGb~0o97Mj6QUI_d6X;~U%f_?$Ev0zGh54k0dOqI$?xPl( z^T$1E%IcqRNYTgTc#4f2fdIbld)6MM2&_&3!A|7nWr zF6eCUHaz0u{~YIO%J8M76Yw{8!PEV$qo(VV;q8p;VF;ELBDsW}V3f(jumk1he&ojK z>l2h0r33Y6gVq7N2EGRV>&xDwsmGal&30Xg6q&{~9#K?Ky7E!l4CkFBf&Oq)(g2#6 z^dM-Zt$2+d;}XS1Mb|Z><>)CITV;&<8rC{>A1L?k~36)Y=|mcRwRpLhGG`k%FKYt@HApM4R$y0POLhm1f%@EHr^EsWBNv5coe~Hs4ZQ`8WY#R^^%AL0#X(~IHF&PS zR(@50u>q(10n!Na5QyIXBd!Sc;C}=WJkcJ*L;nnd5MP8TOC^MG_^8~Nfd)KfF)yQcpqZSPl-o{tn_FMEMC z&g=if+gnCg&h!j|>7>(PW@hHxFn5^KVP?)IH0yo6li*1B&>3($Gyxrc@JGOUQ+lc`?^5Smr<0j!2 zwy92C5(sH`YZEs_32dqL1NolPtyA+~vGS64h?e*U6GG+gq09*KheV@1{mCKEw>jAe zA6~~tBu!rBqeG=YAZGKTmTp^V+`_55i=M$?4+HxIh9KC9_fDjTQVre=(Tu?5UPK2bZz@Rt1 z9q#Ebcqh?7f~bbP8W$D=oXoVKpqXk$?3yT1t30GNvwk-0B(c8Re~$lSm2tCv*-ddGv7a#YgIBL{xyPR%%_=j*rMFD}<1eli01icAiaqVNO5 zIhZpTB(Da-x{=KhNUl)#Qh#+pKalse0+h+rl!2fc_-;jZxQgJZzwNEa*w^xx`QAc~R^$TrBZTUl-Jp1SSR2Aw}6)gVf zb`B8ewZS%y0Rj4`UJmZ-!E_0Tu73lXnx_9TwL)F>uWvADp_QO6)OtmraY}^o(83B( zmWkCW|1V(qO!5v(Ic=(V)=M<;5KzjJEnn~wNj+hzWX_i-;U=1J9Z9}}CDRK?`)$es zHD!jJHA9LXGVEERgpt3He(xuNBduXME1JNTUXS*Pf3&3yd*%<}2iL8kM^cToJn9KO zr@MTQ!S)d(76dPYXJD5|3vTGGI-X6^=&Ea(wft)JYiV6Pqus=WBoWt z`*e`;J=?M6eXj`Vdbn=F|6J_b@_5#axjH<$PQTkl-NiUL$Z-9@es}CfJ7id}7MSdU z#DcZ51-o zHC2uBZoW;o+?6FL{t3&#FFOJHW$-EMgE{Q}{zbq9HSf2GVTP!(d zFQ$InwB+*^CdH+wYZ)P=4zkHrhBt7kS1dSAe*dR}xTH8%szm89Xl-OUInFS8ZQ%Jq z*GSx6enJLtVBFXtv4TfHV}!{eK0`k~X2jWqEpW9&Hjw3~=ZudNBA%q!EGU;h`W%(h zk4)h7vtX0!1C5b?Qshv;H47 z%2pWdyB79=%_8eWm&WmIH_gjbS!fL5s{J^~iOgi`%=y)S{=ABR6!4g*ut<9RN+Xo{ zBe`*25p$uO&<0n(^1)^n@djyD)|NR#KG*@ay3hAx_1p)ee!v^Ie!)9n#-#9x&n%%0 z49NKn$Vm$1OqfA0d_poyctbU-d)pGwTrc{mxnYWFZS2wY-P$1=+}h;}8YmB6zc6u1 zp6(r^Uze^dz}B}pl={xIYwPqiIDQq7x@9}@PM-!$p*MaNpSpB4(N3T4?rnAW5SF@x z2B_jsbJu3QYc)B1NKIXG22}a7-?i!=I?s)tO_}I4jkkZskB%XZxBE=gnmK)abN3E! z|LnhGHlt<`l0GmNFKLgg|5Ds^7ErY}TJcbR6$F(KQ0=J9ec%@tgw%IX=q83i6%h7^ zA`jII=n2cnW8zGKWiuK49roz)7-{-=KIt}?g%x6tUDd~BV2G2zG(u|l==>o{7;Ea~ zat_$syNf>kvT=6p&|FY{a&fy7vv;qN*V55KO~xR&V6U=3%~qugpOOmQy+h7>ZqKLW ztMWiiRwW4^bIfh#!5TOyp`=I1Yvy4O9|HizDk$lvB6e@%!L)XObT2I(w63N0G(LJc zO|1qnEoV?Is&AF^AgUUEG`!u)4Bd%H+oc5Cqp)@x$lDf}+ZL$67VZ72B>bw({i@Xc zs@(mmMEuH>{mPvEXlS|<@wP{y>_liQThUd)fO?bARntM1D!x^=gQ%{7sJ4NqhJdIJ zfv6UNs2+i+`uLSu`jruOD`Rd`L))Q2Gy})~B|)`#fm@)@8QL~*xcm%d`wVBB2JZSm zL+gUBk{(@^y=y6;_=uFBk5g%XNd5N`AS*@8@d{)SgfFnq4wk-`>>0Y!u1BaHx@r`~ z9l2@*FM9o8Oe7kUW-#n#S2k^hJiM)cV;A4P>f<4D#2`F{x-jg-AUK7}BuHUjr!?mq zuAh({>SQ1IGcvv7q@f#a%+Z1yXq7CWZaWraoa5#?jR+Q1K!@<&(?iz_^m&;TQo z)}JsW1Ja57ya7A|>Eh^hL&I_@@6Nv-rr=CVsqD16U%vdo{mUHjX0Q@4IN1~D=)Oo* z-!-4*$<2GvozM~cnD`T+CT7~K?k^Us{gsVHeOgtlmZMe9Hd`XOP_iyUC+d8E_N}4VVpw}pu6K1KAsYI|ERH#wlqn?GavW3eS z0IX5=ny_B>40rpn`AwmAp>DoEked$B%G6`viI~oapoSaB6MLvEdL%w5x;eX9yBWGU zx>>rlZGq-y9usmQ1)_x#8`R(@K1!1v3Aib{$+!u*DY{9yX>QLn*^@pe#cDqk^SaNc z@=%k;NOqp6i{V$0$FRkVX{LTK!Oz5b5bI7a6I%_?22Vd2)%-R=k07~Ps%3oXN?m}r z&1+Q*ST$$xCGZ7)ZDPw6|GxJkRyTBONr9@wz4Lb!3Ti=Ct@u%aDcFKSx5VW($>Qmw zU{y%n3#MNXEi}-r7duf&42i_YKS65@06 zulxlP^h-Fr62~b7`S=@e4#qvX_Y#I=4#9oMnjQ!&X#+c^O$ZSqYH*JoCCLRlvS^Q4 zGuU9a8m5@!wQLFq$_{-q&ZWPn1cq$D2qSo5FG~tMK%8tcV1*Ilu$LzV0Y)4^A20y? z*Ahsv1DkP>_iU!%VJQ9;wYT?@=>?iC-g;%D5cqWa_Dsr`Do2FI5mmnf%a<^6Ss1Lmu2J}pd^((6d!8WOZ3&(z z(;Gw^XFhvAXLycmPKZpQN&TZx$9c{}Tvu6+Y;KB7#Yyv{NXNyOUe2QoS9%VNOsUD_ zN#i4$qi`c+(qzHG;n>JTWuuJ9WMyO4R6-Qv_;Py7;WXreqD|$ilBWd-i|p55-uaJZ zF$)x@ip~Pwh47_9r`24!(WQo`&0INrsuT-U&KjBWrVALS8C+HL#Sy3RuL|1aZMl_% znF^GQKZGzNlo{doYN%EEzDxI$er>3gpLF3wgpZ5JsKD?_4>F2Yvn}?ZN)ND=NQeHtiwehWFWVB<(=rhUM9@Z2BA8(MI>( zxKYSj@*ZWmGBjgs0K*So8b8rIg?}Yzw5G{UhjB@$F0nevT$q)hv6hrI zu(c*VI@Q9Tt+qzX&XjP;EG?Y0W=&2{I5}CUsk*wceZ9WWrALJ<@avn@$X0(-h{W?%A7CznT2SGWwCeHh~D3hXwS>q+;od zrpcSsxAa9a8Gg7%Ok|n_q?%nayQX`NcO3EoMx@yk$CUsR((Hh7X~5Vxo8!0^U}~Hl zW?Zmtn3nA+o$T;i-8?N|tb=4z{wl?FoqNaoGV@;6y{H4QseYB=y4e=HPV%moZ=Wxb zZ=SE7@18G`?+u(|L#2w2)iEfU;ZS@Ae-D_*I~zl>;>!q_v&xC$(H>8}JFses;@>db zliRAfDY{yHo_n%-KY3&Oya&VaZJip-_A%R&qcc8Qzl$*_NLX)CW%RL zIyr9!JL_p%+hFT$Y%o}DCWX>DVh$a#o=AKBY|6Q;g*`iY|t%@ZQ z6At7|0z4sU;$N#v;}MBk=waQW*5pk^$g8y9!o5s?K=8N$U>b8<%E0ZnSs&X*>9*L> z+XtP`Lfh&_SL|qPNG@*tmGL@vuO9~WogoP#PvO=DEcWWTB3e2ZyV*_+y8raYd(>v- z7M+@Vv}Wa)o~nB^>f{nkOFb}mXjM(qJWzLN*v@D^uyttj=MyY)-;;Ql7OcMx@b^^4 z*>+cPa;Y}e(5^KqWYLip(k*T{xoRu;+e>vNIgWLbEmjP-7;pVJdo3^Ji)I;k@XhuO zbFN~tQB5yMt4Ta(ppE7o($ULYi8y!G_#)>X_NXO6G$5fRnA)*+=VnWG-PT_A(&_fB zA!|oqFt&8}UIQK^5rY@gb0AG_s8z81xje|+0My+DiD zgu>obg;F)j*m_VKf>67yfM2nI`4ns_*!J1lb6@&>^=CdCx990sJ42#XS_K+iDX@Np5pIoM=@%@ zFxJhM@5ZFDn!s&YyQF1$$yN9?yxw$ddTxIEM7jFwn)2o8AmISz%REat8w#9=B%s>< zd^1zN@HCcq>>P%Ew5l#F?oB&VOMOmvlX-7)({3l)M70h3Lb8o;?Qh%Vz3F@wI7cA} zkLmZhsd*OmqJ|Hh>i=mkjvM@@55)r_1&o0mf>w>J(qo|pW~qPkOiDQp2-|4G}|v4J;d%*yj$10$u6X^y*Vt8qV0xiX8M_rR)n8& zf3PK}k@lh^iy2i%^}`OF>jU*ZYNmA!)g_1Znbfg|HL27ggqFF~f*m}Oih=V!_Vrxs zJq(3G*AkelNN4Us1b$K9LLKma_4QumT`KZz)_J>x?KXxg((STDG*^mb*dQ&{g#u`I zU(xLg2To13QEYM}B3mXlw9v1jiyCBKo=;KgZ(UVmeBXaAWlpUee7tPTyEYX5JQ(gA zd#&U{U`l#R?u`j}H9TPmGOiXa2Osm_$VYHlp}EQKk>%e7!EcEB*5=&-;#r~v#otf^ z;v?L5`gcKxjvvOM7`GQ)HyLo@dj51y^$77O_Q>KH{1NuCawvCqN7X*8lk2!PmDiY! z=NEeyaJO_TZI;Rgqft4kC{il?p!l&Mz^WA0Mg+0y)gVBpboRdN)9}+;DP26qT6t~W zj>omsMx9f`80FB$57efg(@Pm4tSCOlcNi0xmI5|XPsUvi zx$ZK9CJju(#uM<2O3oP|MtdAWammN_#W^*iAF^&gk9qe#Ry-Fybxej|xAu6F*`Dgp zNx8?oRtf|UxleQQbIx0N9P$}m!R6>r-V&E+coHHTxs@9LNFUR9pNr}Aa z)N)kwBuTG(>sH8DZIe7x^4Z|CcQH?; zseWEYj(uYAUhB%kK^xl`IXXEQ>s$Ye+8S8EK{GRQ5Hb?}i)s=wY7(-sa%dA00yGJk znHdS$m;r=rOiYBVY``NMGq8eFlaLj_{x6Y@gPjn-%mO4bvHnZ_2V)0n;9vr30RV;m z(ZtLIq%boPvT(8yvT_3cp|EKZaxydh!wmpdvT$$^va+xfvakT#VP*Zd3}6HR1z3P( zW&VpEG0O1fB)+zjm>3asa99tpDu58dfG|pqZSE z|Deo3&j2`>|Ji{>4rX8t;NP?2-~ghmtpC{jKlgt)IDj4jlC%l63IDs(IsfDIe;f@o zof80r|MmMHP5fK_$7-O7|5^{U;@<}T3;yT$kK})y+ka{K-#QS;^Z)3*e_Qy62IT!u zzx`ACPoMqE1MIPXkN?sA5BC2{=lwUoG5yo%zZWYH4}++=m6NdpgQ%6hld-U|p{fQQ9c7ZD4&9K2xEw5lJg0g>s4u|yM@P@kAW6~l%DUS5_7-64cm`J znpK&=j9aYMN-&r7HwM$XBBvI<(bd6NiE4mHpdhz1qQs^RElj`SstR=%``$dqYOzJ$ zYCdOlMx10Mw@Xm}@|=fqrUXLxhtSerQ^jm$)W1yUy%%eQGk-y#ZaS1Z)GbviteLkq zr4C0t+2g*z+~UrDulHYL;5<`MUhT5B4LSWkKLvm{`TrNk0+^UMS^tNZfp<9v8wgaPXC^yBWnd1!4DmKe4h)J}+$$Cij z#1mrUV++(<1$^YbNE%RkJ&*kpuaw=!r(mf?x=uRJG~ zo?eClPwRE#sQ^=x$qbTjh#=EMyML>wkS{#mU1L~5+Fv34d_)wDO!gAD7L&eZxS6f1|X^$C}?4%?I z)tDW{Pp)3DCJq_TMcfcDyUyq;2}_iQd|ej|_sMVjd>TVpf1Ku0L21HzQHaag+e=+)D`B(wd4cHii#<2~7xmx4der^!bAA*BnyQu-SN zQr>hC^T68m|5kZ? zo9^)fv7z0I3%39Bney%{n0xn8>i%4c+~m5Ca%q0NgE~zUw_OM6u^jU^WKp6tC**~^ z*QPpe;;GtJCee;xl(=Stp) zd%AL#6X1^2x}3=v^B{yl68NLW2D30eMvu!Khxvs21+h>Plri&ztJiN?=N@BxN}uZv zcH97aI{W;$xfLF2>CEcQ30o>G~wSg1-|XCv;f|A|INF{(QB)`7E3WKFegs09C)r z$(-|&e4%D5WA=Sv{xR>rDF52}e;4j;C8SSP7MY-gV+X@tGgaBp+dl z$vtcL@ft10e@Tk6u5Q!S^kBQtwMA=xwK#Enry3T>@+kT^ned12A^Z#;fkm(OvH7ZC z{JysRqZ#Sg)-Xh$;=K20Y1^b3+$Lxv<%{dwe{BbTnWnMp4d(D+p@<>=y(=k8%5>P) zk7Olf=Y|9+0`+gO7i9p5Qa6iPfQnh5`ZTm4+WW4TMY zvy}@hXD1sovt-Y=An_bnDwaaZ@nG5Gke|)pD-o%9Sp0iMhn%C+V?nWAjP^i{-JvB>Ga{dI<1=jWPSSST8 z)dt09amMji>ddi)R+>LJA$oTYELjqz`L}pA=h))YuoQhI8D|Kr*fM#qAEP!XL5ZMU zbqIh;%27DWNK;GrDBKm+M(AoyE>r2lcxlL4(Vt01y)}Z{Z{W)(9LN03?Psy@N%t>G z_Nwi^KV!Nd4FdzaTho8E{XTDed{O%?M05|wb?hJ}B8)LL!*Yx{=(^g7P(ve$;jQKF zWoJ&Hj52!^ZjhNG;MY?#4XgqI?%YQq_Q$NPIhJD!E^b0uTtK;} zfo_rF@cm45U!TmMflm&HY$Gh1$y+(=-b<2Uxx8-IFoa{|B@nUwx4ar9`O+S*)u_dL z5kn?ZhmD#NLdPvisAk;0Ke^*{DPCMh^5xtLyS8WN=HaUYD=^ZAQ}YPcj|fa#i+mc= zR?8+F&pEtQd5xTvjnVn&u!ZuvsdIPd-I`Yp%@X4 z<7C-RxN!8QQ5z)$)^nfk3smVs7h*Vn+1Sh9K-?8`T!B||Ng3yF{9gKFi{cStp$%R$ z6tLXSa7b%oc;qIXvXS(bVyI=FJQR=7vRytFXI)M_D+HGc9%= zk4ByyJtC%V(oVKiRTnmeF2=6pn&Y8R*r(~>6A;9LJ{M8E@b|)IEqDflGy9nN5p*1{ zxw%rID?{i6*qkdE1@wsOg)-+Y*ekP;Y+RuIKafn;Au3Z zROKWkSs(w1%+zR{C=D*fNHT5wz#xE|qWWXG z$DB407iN5AED9WVYizDz8;etM=J)EN!8 zx#%xuLDu4DCTnnbeBU-yNhDw9Od;UZiJT-;J|A%F zB$_rUK8qFYt2&;EenUa*BiC;m_AG^M1XQLCGrkH;-}foBlgkg z7ZZMO4n+um4k6wo+s!1#N56qb+9KSwCdNm;Q9;sW*gX?&7wJzIX_x570e-Nu>w?r2 z-W;^MT~Bx;0M={udjK+-#7eXoYlrVQ0WnY5br;f~STShA&}lzL9DSzV1ITnF8_{Nj zoe)SlVoG}=?RVw;1)zNCZO=ou^LTA{8b*95)+3XV~I~hWcrK-YM-e?rJB+iw;k1 z_eO4>fdxX^{Uv`O2-c+>vDR_;Zl_kOhi)EH7ra5 zO(0VckRZAWYBo=9ETB6yteL3Z-TI$y_!|g5gzlQUEG7A=KTNOx9g@CTIK6`F@8=-?7A z5`9O)M!Xbqi|25UnJ1u!#|Y-#39$27Mw*0M>uap$w1Twk3$JDw4<=g2KP3*xfm>}Q z4v5=!lof`2S%t5Omd#mTBBxyS^n^#gZNN-|9(P$sZ~Jb;efeA4Z98pi%`wzy_SE`V z8S-0Bh3%RQQ#ONG=p3V!l&mymQL3hc0VZRzE2N8RKRZ)}db&qBjwJI*Gz2ao=MV34^+2JD9L^qcmTfPJ zTgP8NDKvPic;d9~hpqp4b z?cPnM^L;|AiNjxk4mlfH)$Q|OzA^0*(k5TT_b$Lnbh$Zx!I_{ zhDFgC2GvW$AIpMYD{R>^x2V$*YRiySeN+9rRek7xzgm46&VQFoLzGQP?O$Oq&pr#E zN}y5wta_ze{wX>0%X)W$j*fvM=z80%Po^3^E5vgLzZq?@n^5CIcZXCfhE;02c1Gn- zSLk!w$xEK=hyV*Ih%cBP*HllplpU-lX7#7L+IQ6+5j*ba2kQ54XRq75xO=o!pYlAB zUhBZ*f{6GiG|AgFf_reD@zB_spI zUt1zAT|pTelXlnCFW;lLF^fWfNa6QkWs_F*d8veJZNeAn0Yj=;>>l)6k`y(oI32th zTMH!LKnb&pxBf+Z{{@ZqYwF1DTlhQY=q++rZNBh{X;}c8XcV2=x6j>p2gpvB-3C(; z;ea8y#Z^7VVs2Ufob8)gW(9TmDW#>lL^OQW&fvHf>atS7gOCqUb85<|4nFo+6bt&>c{yu(``3=3mDw?TH^Liq*QFEVb$-4VzR9qhFV6r{-C7Wb z9;i2_Mcebs9U=H`6hr(t4l=HaIrAnpE#x4@oCy-EO&cCRL~f~2!LiYCHnzUfUqk!I&-TprXRalzy^ldxXKVl@Cf`d3MOlscRf4^cZi~&5&LmP z@rHrXh{g~nLY(1y=w!2b^0tQE9xg77O*xsa{)7|!nT%GA%c`GdL^XOyAu$r#RN+-H zxE{bZJ$cVm9$;KsM^xZrUg^AiR?kR7XsEqeHSI8&~x`>!R;j!8u7s?t*UlL7@* zpKprl`jn7~n$6~G)`8kjK6hvAP4vZV7tQB2WK$HMEjMiOZ|k$RQl-dMRh=9+W&L6O zZ(;0XN&U!OqqQ5d0axvUg}i1tTR{&wpTB43OoX7cGG_@)U7$2;xznc_uOdw9R&m)( zo067JA4M8wqjYQ;O%piDBH0O#18LKvZ`Wc+b0D9`r^o~vcI$Wz@_CY3)ANhbnM+_A z0xITJzhl~x)%+eUD?5fz1~Vo!{PC3Sb-f$DxM&_@tM($0J9z<+A~VSj;n6eeD6bgg zo=~qozjl6bk#HR-ZHv)$of_h;OHPH0gSC_wqH3cY#xOAvmc^)s*R-EAR{huxn^T>& z1(W}=4*Tb)U-7I*E9$bZwdK0AJntl11|d^x*wlclQE^F>;1PwU%Ojis-#Pw-?NrlW4Zck-geI zK#Ed;X&~Q5okT+}ZP1sk8aB-v3}*bPwx4~=Jyn5J*SzBbk;^!?{X4v=U-rWqk#CD) zn@0mVKPIlnfbyyRiX$9%WHx$1viNMKn}>ZK`_6EAdYYO#JL}oFCv?Qn)@*FE_4_NS z>hBh%`O(ThvS}6Mb>_PB1jN&?{PCs?$=>=looq40AC4*De@TZGPiS;)f8i)S>z-8yR)yvnxdq+yI@r-o#=R%~)f>FG@jX=_%g%raEg zQ0i=Gq0qT+&M)%w$Q)-}idY@rjwHN~Z|-p;=-py#vYs7>2gDT!b73CcI(8MZ6~%Kw zfAP!cVqxvTyVJmQL<4+>o2YJSF30JqsTsXRBL{Ty)^UqVKUB(ik4Z?fN)Jo>rASG5 zI;P80(BssiTHEd3AUYKs4JO?5i&%(r$Ek};WY!H!-5lKW=9I;W<<(vK=6?$ubRp)2 zag28T=uA%XP0UnH(Kvq$7lc$kN?QpJpYAjRFZ<=bOl+*LKhtTJ!&_EL-L*=)QogjL ze0ZRXfp{QCcOUg@Sm3GkCc=+dN^*iia?AOfkaX-D2Q*Wz{qGY`JGaxEEV06RQ~8y#ko|urR;Yb-;ed@ z*VWarLpD#oFePrfTPV@HW4T5=?a_+L4wr%LU}*A=CEee(lzk}U04jB*wYvA5*lf5R z>=&l!yEj&0#mS_r#cS+`&f;LYF;i$r{YQ~7-m-j`go5q`MCuh%skX9YyP3I9Y8Lx6 z)4)y*>e5{p0vc=XBML0XXpF4H;2kp&6Bhh3Gl9HL*ex}0g@$4iZLUFH8QrhU*Kl;( zxmGg3YX{tbqXkO(nFfPHqN>W0IdmC4mKi~Y#YV09rP~SDU0s`M6WvNfHD#Z@{n6v* zW~BIA$5#5t8nRq{5Dd#Yuc^-M1a|pWCmyfT(lFJdNPQl&8yVGu*dH6$utXi@AST>; zK@(3CUGl-ORC1K4L^l*w$-RCBYplUAV=^+@u}gX;lT|B`NjffV^BMG1+V4D3<8@|? zM5}ng$45}oC1QPK9Ng7k0T72$lQ@6LsfHrar8JB?zVYDB2*nLh|A2d8S#HY57)rdl zIn^E0YVsJ(UG1*jj9?oWt$dl=TxN%G#VopKS)8n*RBv(WlZjG&e>^mS($w!tKhlntc(?&$HgmBQghLuvJJ(A_jq{e5oLuyhNsayR z;qrkw$(5$MJ}If;-F`6nPST~n&+|I!nYN2k#AZ|aJX^=hif*-VJtgyArc@Ejxt{Ji zE0snnRACAu<`eFR6ToE=tZNrsDox2vXVAQF_MXH+>-W0~x=V&OI?)%_@8IEQ{w zDp9fDn0&EuHryuHMxT`gs0-zK?BpLuqu)m$8LnT42aDywT5 zQDKwNY!(W@NG$kI(4ZAM7CU%L*WuuH6)?1~K@3&iGU^S4Bk4#hEv`6bl)^O&xP=wQ zvYFxOH4P|X$z`=GrW@CnUYGNdI~9EIOm?%L8E$Fcjn8$e;Yr3?^z+M;Fv|za6_TnQG1f+R zyi=3RVBba7MMXqq1hHZRmSNX@9&fR@hDm`@6^(C}TSH9gQuQ!LM@L;TL-NgqUdHMU z7zasMjH1F|(F=KgT}#0OCWkTt4aRv@LeXhHI7Bu|O+=vuIpEFkrjj@f~wp~YT^_d(vZoMGhpqyEqM+^}{

  • 0={Z+Y?SC+*s2y(VvYml+v6B(}qKM-s~JLbyi{ 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 literal 0 HcmV?d00001 diff --git a/faiss.index b/faiss.index new file mode 100644 index 0000000..e69de29 diff --git a/out/chunks_recursive_128_ov16.json b/out/chunks_recursive_128_ov16.json new file mode 100644 index 0000000..a8511ea --- /dev/null +++ b/out/chunks_recursive_128_ov16.json @@ -0,0 +1,152 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "Indian Oil Corporation Limited \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nDATA PRIVACY POLICY" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "or entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents," + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9," + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov16", + "text": "Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov16", + "text": "PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_recursive_128_ov8.json b/out/chunks_recursive_128_ov8.json new file mode 100644 index 0000000..ef1a8b0 --- /dev/null +++ b/out/chunks_recursive_128_ov8.json @@ -0,0 +1,137 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "Indian Oil Corporation Limited \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nDATA PRIVACY POLICY" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_128_ov8", + "text": "harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_128_ov8", + "text": "on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_recursive_256_ov16.json b/out/chunks_recursive_256_ov16.json new file mode 100644 index 0000000..72261eb --- /dev/null +++ b/out/chunks_recursive_256_ov16.json @@ -0,0 +1,77 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov16", + "text": "Indian Oil Corporation Limited \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nDATA PRIVACY POLICY" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov16", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov16", + "text": "over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov16", + "text": "such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov16", + "text": "reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov16", + "text": "accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov16", + "text": "protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov16", + "text": "AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov16", + "text": "harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov16", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov16", + "text": "who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov16", + "text": "or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such steps as are, in the circumstances, reasonable to" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov16", + "text": "person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov16", + "text": "provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov16", + "text": "on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_recursive_256_ov8.json b/out/chunks_recursive_256_ov8.json new file mode 100644 index 0000000..f204240 --- /dev/null +++ b/out/chunks_recursive_256_ov8.json @@ -0,0 +1,72 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov8", + "text": "Indian Oil Corporation Limited \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nDATA PRIVACY POLICY" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov8", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov8", + "text": "or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov8", + "text": "downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ;" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov8", + "text": "non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov8", + "text": "is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov8", + "text": "INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov8", + "text": "can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_256_ov8", + "text": "its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov8", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov8", + "text": "personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov8", + "text": "parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov8", + "text": "knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_256_ov8", + "text": "contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_recursive_512_ov16.json b/out/chunks_recursive_512_ov16.json new file mode 100644 index 0000000..6e090da --- /dev/null +++ b/out/chunks_recursive_512_ov16.json @@ -0,0 +1,42 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_512_ov16", + "text": "Indian Oil Corporation Limited \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nDATA PRIVACY POLICY" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_512_ov16", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_512_ov16", + "text": "downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_512_ov16", + "text": "is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_512_ov16", + "text": "can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_512_ov16", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_512_ov16", + "text": "parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is necessary for" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_512_ov16", + "text": "contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_recursive_512_ov8.json b/out/chunks_recursive_512_ov8.json new file mode 100644 index 0000000..bc443dc --- /dev/null +++ b/out/chunks_recursive_512_ov8.json @@ -0,0 +1,42 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_512_ov8", + "text": "Indian Oil Corporation Limited \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nDATA PRIVACY POLICY" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_512_ov8", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_512_ov8", + "text": "the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_512_ov8", + "text": "the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "recursive_512_ov8", + "text": "for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_512_ov8", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_512_ov8", + "text": "trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "recursive_512_ov8", + "text": "compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_semantic_sim74.json b/out/chunks_semantic_sim74.json new file mode 100644 index 0000000..9fb8b8b --- /dev/null +++ b/out/chunks_semantic_sim74.json @@ -0,0 +1,202 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "Indian Oil Corporation Limited \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nDATA PRIVACY POLICY \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\nIndian Oil Corporation Limited DATA PRIVACY POLICY \n \n \n \n1. INTRODUCTION \nIndian Oil Corporation Limited is a company incorporated under the laws of India, having \nits registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – \n400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter \nreferred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate \nIOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es \nfor providing or offering its services and products. 2. DEFINITIONS \nAgent : Any individual or entity which has a contractual relationship with IOCL, where IOCL \nis the principal and the other individual or entity is the agent, shall hereinafter be referred \nto as an \"Agent\" ." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be \nconsidered Agents. Data Subject: All individuals whose personal information is either collected, received, \nprocessed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data \nSubject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall \nhereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive \nPersonal Data or Information as defined under the Indian Information Technology Act, 2000 \nand the Aadhaar number and/or the biometric information associated with an Aadhaar \nnumber ." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "Third -Party: Any individual or entity over which IOCL does not have any control or \nownership, and which operates independently on its own is hereinafter referred to as a \n\"Third Party\". 3. GOVERNING LAW \nIOCL is an organisation based and existing in India and is thus bound by the laws of the \nRepublic of India. This Privacy Policy has been prepared in accordance with applicable \nIndian laws, including the Indian Information Technology Act, 2000 and the Aadhaar \n[Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 ." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "4. APPLICABILITY \nThis Policy appli es to all individuals whose I nformation is either collected, received, \nprocessed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE \nThis Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, \nstores , and use s personal information that a Data Subject provides to IOCL either directly \nor indirectly ." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "This Privacy Policy also covers IOCL’s treatment of any personal information \nthat Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION \nIOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or \nproducts, including information about IOCL schemes, irrespective of whether such \nservices /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ;" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "(b) through IOCL’s network of Agents and a Third Party which collects such \nInformation and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the \nwebsites owned by IOCL and/or creates an account on the mobile applications or \nthe website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share \ntheir Information with IOCL." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] \nIOCL uses the Information to conduct its business and to provide Data Subject with the \nbest possible services /products. IOCL will only use the Information based on this Privacy \nPolicy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such \nInformation fairly and lawfully for the purpose it is collected ." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "Most comm only, IOCL will \nuse the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , \nsuch as to provide a service or product to the Data Subject and to enable the Data \nSubject’s use of IOCL ’s products/ services , including but not limited to deal ing with \nenquiries and complaints made by or about the Data Subject relating to \nservices/products provided by IOCL and to improve and customise IOCL’s \nservices/products in accordance with the Data Subject’s preferences ;" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "(b) Where IOCL need s to comply with a legal , accounting, business or reporting \nobligation , including compliance with requests from the Government of India or \nany Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the \nData Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically \nrequested for as well as to send statements, invoices and payment reminders to \nthe Data Subject , and to collect payments from the Data Subject ;" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "(e) To provide Third Parties with statistical information about its customers but those \nThird Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to \nprevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to \nprovide and disseminate information about relevant programm es under the Skill \nDevelopment Mission." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "(h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its \nservices/products to the Data Subject. By providing his or her Information , the Data Subject \nagrees that IOCL may collect, use and share this Information with Third Parties for the \npurpose s mentioned above from 7[a] to 7[h]." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "8. FAILURE TO PROVIDE INFORMATION \nIOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL \nmay be prevented from complying with its legal , accounting, business or reporting \nobligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its \nservices or if there is a deficiency in IOCL’s services to the Data Subject due to Data \nSubject’s failure to provide such Information." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the \nData Subject and held harmless from any complaints, legal proceedings or claims filed or \ninitiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE \nIOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, \nunless IOCL reasonably consider s that it need s to use it for another reason and that reason \nis compatible with the original purpose." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "10. CONSENT \nData Subject agrees that IOCL does not need any additional or further consent from \nhim/her to use the Data Subject ’s Information in accordance with this Policy to carry out \nIOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE \nIOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably \nnecessary for the purposes set out in this Policy and for the purpose of providing \nservices /products to the Data Subject ." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "Such Agents and Third Parties are expected to provide a similar level of protection to the \nInformation as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law \nor to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA \nUnless stated otherwise, IOCL store s and process es the Information in India." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "There may, \nhowever, be occasions when IOCL need s to transfer the Information outside India for its \nbusiness requirements. In such instances, IOCL will exercise the same level of care in \nhandling the Information as it does in India. 13. DATA SECURITY \nThe Information is processed by IOCL in strict accordance with the Indian Information \nTechnology Act, 2000, and the rules notified thereunder." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "IOCL implement s and maintain \n‘Reasonable Security Practices and Procedures’ as stated in the Indian Information \nTechnology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and \nProcedures and Sensitive Personal Data or Information] Rules, 2011, while processing, \ncollecting, storing or handling any Information. 14. DATA RETENTION \nIOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL \ncollected it for, including for the purposes of satisfying any legal, business, accounting, or \nreporting requirements." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "In some circumstances, IOCL may anonymise the Information so that it can no longer be \nassociated with the Data Subject , in which case IOCL may use such information without a \nfurther reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION \nDetails about the primary entity which handles and retains the Information is provided \nbelow:" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan \nG-9, Ali Yavar Jung Marg \nBandra [East] \nMumbai – 400051 \nIndia \n \n16. REVIEW OF INFORMATION \nData Subject can contact IOCL, through the Grievance Officer whose details are provided \nat the end of the Policy, requesting access to Data Subject ’s Information for reviewing or \nrequesting amendment to certain information that Data Subject considers to be incorrect \nor wrong." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "IOCL shall process such requests from Data Subject in accordance with applicable \nlaw. IOCL shall not be responsible for the authenticity of the Information provided by the Data \nSubject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT \nData Subject may at any time revoke or withdraw Data Subject’s consent to provide \nInformation to IOCL by contacting the Grievance Officer whose details are provided at the \nend of the Policy." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "However, such action may render it difficult for IOCL to offer some of its \nservices /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its \nservices or if there is a deficiency in its services to Data Subject due to Data Subject’s \nwithdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "shall be indemnified by the \nData Subject and held harmless from any complaints, legal proceedings or claims filed or \ninitiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY \nThe Policy is subject to modification s from time to time. If IOCL decide s to change this \nPolicy, IOCL shall publish the modified Policy on its website." + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "semantic_sim74", + "text": "19. GRIEVANCE OFFICER \nIn accordance with the Indian Information Technology Act 2000 and the rules notified \nthereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , \nCorporate Business Technology Centre, \nIndian Oil Institute of Petroleum Management Campus, \nPlot No. 83, Institutional Area, \nSector 18, Gurugram, \nHaryana – 122001 \n \nEmail: data -grievance@indianoil.in \nPhone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "Privacy Policy \n \n \n \nThis document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for \nInternal Consumption only. HDFC Capital Privacy Policy \n \nVersion: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 \n Privacy Policy \n \n1. Objective \n \nThe purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the \npersonal information of employees, contractors, outsourced workforce, vendors, interns, \nassociates, customers , Corporate Social Responsibility (CSR) partners and business \npartners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the \nInformation Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable \nsecurity practices and procedures and sensitive personal data or information) Rules, \n2011 (“ Rules ”)." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "This Policy must be read in conjunction with the Act and the Rules, as may be amended \nfrom time to time. 2. Applicability \n \nThis Policy is applicable to the Company and the Third Party (“as defined in Section 3 of \nthe Policy”) who may receive , collect, possess, stores, deals or handle Personal \ninformation (PI)/ Sensitive personal data or information (SPDI), on behalf of the \nCompany ." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and \nunderstood the terms of this Policy and preferably having entered into a confidentiality \nagreement. 3. Key Definitions \n \n(a) “Data subject ” is one who is the subject of personal and sensitive personal data ." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "It \nmay include, but is not limited to, the employees, contractors, outsourced workforce, \nvendors, interns, associates, customers, Corporate Social Responsibility (CSR) \npartners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, \nwhich, either directly or indirectly, in combination with other information available \nor likely to be available with a body corporate, is capable of identifying such person ." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "(c) “Sensitive personal data or information (SPDI) ” of a person means such personal \ninformation which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other \npayment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history ." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for \nproviding service; and \nviii. any of the information received under above clauses by body corporate for \nprocessing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy \n \nVersion: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 \n provided that, any information that is freely available or accessible in public \ndomain or furnished under the Right to Information Act, 2005 or any other law \nfor the time being in force shall not be regarded as sensitive personal data or \ninformation for th e purposes of these rules." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "(d) “Third Party ” means all external parties such as contractors, outsourced \nworkforce, interns, summer trainees, vendors , CSR Partners and business partners \nwho have access to Company’s information assets. 4. Elements of Privacy Policy \n \nThis Policy describes generally acceptable privacy principles for the protection and \nappropriate use of personal information and SPDI at the Company . 4.1. Consent \nThe Company shall obtain consent from the Data subject before collecting, receiving, \npossessing, storing, dealing or handling personal information or SPDI of the provider of \nsuch information." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "No PI/SPDI shall be used by the Company without the consent of the \nprovider of the information . The consent shall be obtained (in writing or electronically) \nfrom the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent \npreviously given by way of written communication to the Company ." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "4.2. Collection of Personal Information \na) The Company shall not collect PI or Sensitive personal data or information (SPDI) \nunless : (i) the information is collected for a lawful purpose connected with a function \nor activity of the Company or any person on its behalf; and ( ii) the collection of the PI \n/ SPDI is considered necessary for that purpose ." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "b) While collecting PI/ SPDI directly from the person concerned, the Company or any \nperson on its behalf s hall take such steps as are, in the circumstances, reasonable to \nensure that the person concerned is having the knowledge of : (i) the fact that the \ninformation is being collected; ( ii) the purpose for which the information is being \ncollected;" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "( iii) the intended recipients of the information; ( iv) the name and address of \nthe agency that is collecting the information; and (v) the agency that will retain the \ninformation. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that \ninformation for longer than is required for the purposes for which the information may \nlawfully be used or is otherwise required under any other law for the time being in \nforce." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ \nSPDI in a time bound manner. For this purpose, the Company shall designate a \nGrievance Officer and publish his name and contact details on its website . The \nGrievance Officer shall use best endeavors to redress the grievances o f the provider of \ninformation expeditiously within one month from the date of receipt of grievance ." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "4.3. Disclosure of Information \na) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission \nfrom the provider of such information, who has provided such information under lawful \nHDFC Capital Privacy Policy \n \nVersion: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 \n contract or otherwise, unless such disclosure has been agreed to in the contract \nbetween the Company and the provider of information, or where the disclosure is \nnecessary for compliance of a legal /regulatory obligation ;" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "Provided that the information shall be shared by the Company , without obtaining prior \nconsent from the provider of information, with Government agencies mandated under \nthe law to obtain information including sensitive personal data or information for the \npurpose of verification of identity, or for prevention, detection, investigation including \ncyber inciden ts, prosecution, and punishment of offences. The Company will use best \nendeavors to ensure that t he Government agency send s a request in writing to the \nCompany possessing the sensitive personal data or information stating clearly the \npurpose of seeking such information and stating that the information so obtained shall \nnot be published or shared with any other person." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law \nfor the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate \nnon-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from \nthe Company or any person on its behalf shall not disclose it further ." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "semantic_sim74", + "text": "4.4. Reasonable Security Practices and Procedures \nThe Company endeavors to have in place reasonable security practices and procedures \nin place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_simple_128_ov16.json b/out/chunks_simple_128_ov16.json new file mode 100644 index 0000000..5a1fe10 --- /dev/null +++ b/out/chunks_simple_128_ov16.json @@ -0,0 +1,147 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL," + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov16", + "text": "Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov16", + "text": "PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_simple_128_ov8.json b/out/chunks_simple_128_ov8.json new file mode 100644 index 0000000..9ccacc7 --- /dev/null +++ b/out/chunks_simple_128_ov8.json @@ -0,0 +1,137 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL," + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": ". Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting," + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it," + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_128_ov8", + "text": "data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_128_ov8", + "text": "on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_simple_256_ov16.json b/out/chunks_simple_256_ov16.json new file mode 100644 index 0000000..8cd9a1c --- /dev/null +++ b/out/chunks_simple_256_ov16.json @@ -0,0 +1,72 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov16", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control or" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov16", + "text": ". Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov16", + "text": "Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from the" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov16", + "text": "with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov16", + "text": "prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to by" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov16", + "text": "expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov16", + "text": "to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov16", + "text": "indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov16", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov16", + "text": "who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov16", + "text": "or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such steps as are, in the circumstances, reasonable to" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov16", + "text": "person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov16", + "text": "provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov16", + "text": "on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_simple_256_ov8.json b/out/chunks_simple_256_ov8.json new file mode 100644 index 0000000..ee57136 --- /dev/null +++ b/out/chunks_simple_256_ov8.json @@ -0,0 +1,67 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov8", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control or" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov8", + "text": "which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov8", + "text": "business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov8", + "text": "(c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov8", + "text": "liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov8", + "text": "Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov8", + "text": "India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_256_ov8", + "text": "IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov8", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov8", + "text": "personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov8", + "text": "parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov8", + "text": "knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_256_ov8", + "text": "contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_simple_512_ov16.json b/out/chunks_simple_512_ov16.json new file mode 100644 index 0000000..b795176 --- /dev/null +++ b/out/chunks_simple_512_ov16.json @@ -0,0 +1,37 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_512_ov16", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_512_ov16", + "text": "business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_512_ov16", + "text": "liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_512_ov16", + "text": "India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_512_ov16", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_512_ov16", + "text": "parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is necessary for" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_512_ov16", + "text": "contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/chunks_simple_512_ov8.json b/out/chunks_simple_512_ov8.json new file mode 100644 index 0000000..27c4ff2 --- /dev/null +++ b/out/chunks_simple_512_ov8.json @@ -0,0 +1,37 @@ +[ + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_512_ov8", + "text": "Indian Oil Corporation Limited DATA PRIVACY POLICY Indian Oil Corporation Limited DATA PRIVACY POLICY 1. INTRODUCTION Indian Oil Corporation Limited is a company incorporated under the laws of India, having its registered office at IndianOil Bhavan, G -9, Ali Yavar Jung Marg, Bandra [East], Mumbai – 400051, India [Hereinafter referred to as “We” or “Us” or “Company” or “ IOCL ”]. In accordance with all applicable laws, IOCL has created this Privacy Policy [Hereinafter referred to as “Privacy Policy” or “Policy” or “Privacy Statement” ] in order to demonstrate IOCL’s privacy commitment to any individual whose data IOCL collect s, stor es or process es for providing or offering its services and products. 2. DEFINITIONS Agent : Any individual or entity which has a contractual relationship with IOCL, where IOCL is the principal and the other individual or entity is the agent, shall hereinafter be referred to as an \"Agent\" . For instance, IOCL’s distributors, dealers, CFA, contractors, etc. shall be considered Agents. Data Subject: All individuals whose personal information is either collected, received, processed, stored, dealt or handled by IOCL shall hereinafter be referred to as “Data Subject”. Information: Personal Information of a Data Subject collected by IOCL under this Policy shall hereinafter be referred to as “Information”. Such Information includes, interalia, Sensitive Personal Data or Information as defined under the Indian Information Technology Act, 2000 and the Aadhaar number and/or the biometric information associated with an Aadhaar number . Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a \"Third Party\". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republic of India. This Privacy Policy has been prepared in accordance with applicable Indian laws, including the Indian Information Technology Act, 2000 and the Aadhaar [Targeted Delivery of Financial and other Subsidies, Benefits and Services ] Act, 2016 . 4. APPLICABILITY This Policy appli es to all individuals whose I nformation is either collected, received, processed, stored, dealt or handled by IOCL . Indian Oil Corporation Limited 5. OBJECTIVE This Privacy Policy is intended to inform the Data Subject on how IOCL collects, processes, stores , and use s personal information that a Data Subject provides to IOCL either directly or indirectly . This Privacy Policy also covers IOCL’s treatment of any personal information that Third Parties share with IOCL . 6. HOW IOCL COLLECT S DATA SUBJECT ’S INFORMATION IOCL collect s Information about Data Subject through the following means: (a) whenever a Data Subject shows an interest or elects to use IOCL’s services or products, including information about IOCL schemes, irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_512_ov8", + "text": "IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information to conduct its business and to provide Data Subject with the best possible services /products. IOCL will only use the Information based on this Privacy Policy, its understanding with the Data Subject , or as required by law. IOCL will collect adequate, relevant and necessary Information and will process such Information fairly and lawfully for the purpose it is collected . Most comm only, IOCL will use the Information in the following circumstances: (a) Where IOCL need s to perform the obligations it has promised the Data Subject , such as to provide a service or product to the Data Subject and to enable the Data Subject’s use of IOCL ’s products/ services , including but not limited to deal ing with enquiries and complaints made by or about the Data Subject relating to services/products provided by IOCL and to improve and customise IOCL’s services/products in accordance with the Data Subject’s preferences ; (b) Where IOCL need s to comply with a legal , accounting, business or reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically requested for as well as to send statements, invoices and payment reminders to the Data Subject , and to collect payments from the Data Subject ; (e) To provide Third Parties with statistical information about its customers but those Third Parties will not be able to identify any individu al from that information; (f) To keep IOCL’s website, mobile application s and other systems secure and to prevent fraud; Indian Oil Corporation Limited (g) To promote the mission and objectives of Skill Development in India and/or to provide and disseminate information about relevant programm es under the Skill Development Mission. (h) To manage the employment of the data subject with IOCL. IOCL collects and processes the Information only when it is essential to offer its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_512_ov8", + "text": "is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 9. CHANGE OF PURPOSE IOCL will only use Data Subject ’s Information for the purposes for which IOCL collected it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may disclose the Information to any of its Agents or Third Parties insofar as reasonably necessary for the purposes set out in this Policy and for the purpose of providing services /products to the Data Subject . Such Agents and Third Parties are expected to provide a similar level of protection to the Information as is adhered to by IOCL . In addition to this, IOCL may disclose the Information where it is required to do so by law or to Governmental Agencies. Indian Oil Corporation Limited 12. TRANSFER OF INFORMATION OUTSIDE INDIA Unless stated otherwise, IOCL store s and process es the Information in India. There may, however, be occasions when IOCL need s to transfer the Information outside India for its business requirements. In such instances, IOCL will exercise the same level of care in handling the Information as it does in India. 13. DATA SECURITY The Information is processed by IOCL in strict accordance with the Indian Information Technology Act, 2000, and the rules notified thereunder. IOCL implement s and maintain ‘Reasonable Security Practices and Procedures’ as stated in the Indian Information Technology Act, 2000 and the Informat ion Technology [Reasonable Security Practices and Procedures and Sensitive Personal Data or Information] Rules, 2011, while processing, collecting, storing or handling any Information. 14. DATA RETENTION IOCL will only retain the Information for as lon g as necessary to fulfil the purposes IOCL collected it for, including for the purposes of satisfying any legal, business, accounting, or reporting requirements. In some circumstances, IOCL may anonymise the Information so that it can no longer be associated with the Data Subject , in which case IOCL may use such information without a further reference to Data Subject . 15. WHO HANDLES AND RETAINS DATA SUBJECT ’S INFORMATION Details about the primary entity which handles and retains the Information is provided below: Indian Oil Corporation Limited having its registered office at: IndianOil Bhavan G-9, Ali Yavar Jung Marg Bandra [East] Mumbai – 400051 India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for" + }, + { + "doc": "Indian Oil Priivacy policy.pdf", + "method": "simple_512_ov8", + "text": "requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject to IOCL or its Agents. Indian Oil Corporation Limited 17. WITHDRAWAL OF CONSENT Data Subject may at any time revoke or withdraw Data Subject’s consent to provide Information to IOCL by contacting the Grievance Officer whose details are provided at the end of the Policy. However, such action may render it difficult for IOCL to offer some of its services /products to the Data Subject any further. IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in its services to Data Subject due to Data Subject’s withdrawal of consent. IOCL and/or its Agents, employees, directors, associates , etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third Party against IOCL in this regard. 18. CHANGES TO THIS PRIVACY POLICY The Policy is subject to modification s from time to time. If IOCL decide s to change this Policy, IOCL shall publish the modified Policy on its website. 19. GRIEVANCE OFFICER In accordance with the Indian Information Technology Act 2000 and the rules notified thereund er, the contact details of the Grievance Officer are provided below: Sh. Abhinav Bhatt , Corporate Business Technology Centre, Indian Oil Institute of Petroleum Management Campus, Plot No. 83, Institutional Area, Sector 18, Gurugram, Haryana – 122001 Email: data -grievance@indianoil.in Phone : 0124 -2861509" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_512_ov8", + "text": "Privacy Policy This document is the sole property of HDFC Capital Advisors Limited and is to be used strictly for Internal Consumption only. HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 2 of 4 Privacy Policy 1. Objective The purpose of this Privacy P olicy (“Policy ”) is to maintain the privacy of and protect the personal information of employees, contractors, outsourced workforce, vendors, interns, associates, customers , Corporate Social Responsibility (CSR) partners and business partners of HDFC Capital Advisors Limited (“ Company ”) and ensure compliance with the Information Technology Act, 2000 (“ Act”) and the Information Technology (Reasonable security practices and procedures and sensitive personal data or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information (PI)/ Sensitive personal data or information (SPDI), on behalf of the Company . Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) \"Personal information (PI) \" means any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such person . (c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information received under above clauses by body corporate for processing, stored or processed under lawful contract or otherwise: HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 3 of 4 provided that, any information that is freely available or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_512_ov8", + "text": "trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent The Company shall obtain consent from the Data subject before collecting, receiving, possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company shall not collect PI or Sensitive personal data or information (SPDI) unless : (i) the information is collected for a lawful purpose connected with a function or activity of the Company or any person on its behalf; and ( ii) the collection of the PI / SPDI is considered necessary for that purpose . b) While collecting PI/ SPDI directly from the person concerned, the Company or any person on its behalf s hall take such steps as are, in the circumstances, reasonable to ensure that the person concerned is having the knowledge of : (i) the fact that the information is being collected; ( ii) the purpose for which the information is being collected; ( iii) the intended recipients of the information; ( iv) the name and address of the agency that is collecting the information; and (v) the agency that will retain the information. c) The Company or any person on its behalf holding PI/ SPDI shall not retain that information for longer than is required for the purposes for which the information may lawfully be used or is otherwise required under any other law for the time being in force. d) The PI/SPDI collected shall be used for the purpose for which it has been collected. e) The Company shall address any discrepancies and grievances of the provider of the PI/ SPDI in a time bound manner. For this purpose, the Company shall designate a Grievance Officer and publish his name and contact details on its website . The Grievance Officer shall use best endeavors to redress the grievances o f the provider of information expeditiously within one month from the date of receipt of grievance . 4.3. Disclosure of Information a) Disclosure of PI/ SPDI by the Company to any Third Party shall require prior permission from the provider of such information, who has provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided" + }, + { + "doc": "Privacy_Policy_hdfc.pdf", + "method": "simple_512_ov8", + "text": "compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or for prevention, detection, investigation including cyber inciden ts, prosecution, and punishment of offences. The Company will use best endeavors to ensure that t he Government agency send s a request in writing to the Company possessing the sensitive personal data or information stating clearly the purpose of seeking such information and stating that the information so obtained shall not be published or shared with any other person. b) The Company shall disclose any PI/ SPDI to any Third Party by an order under the law for the time being in force. c) The Company or any person on its behalf shall not publish the PI/ SPDI . d) The Company shall use its best endeavors (including by way of execution of appropriate non-disclosure agreements) to ensure that t he Third Party receiving the PI/ SPDI from the Company or any person on its behalf shall not disclose it further . 4.4. Reasonable Security Practices and Procedures The Company endeavors to have in place reasonable security practices and procedures in place to protect the PI/SPDI of the provider of information." + } +] \ No newline at end of file diff --git a/out/retrieval_results.csv b/out/retrieval_results.csv new file mode 100644 index 0000000..8bbcd3f --- /dev/null +++ b/out/retrieval_results.csv @@ -0,0 +1,118 @@ +experiment,query,rank,score,chunk_doc,chunk_text_snippet +simple_128_ov8,What are the data subject rights about access and portability?,1,0.5664269924163818,Privacy_Policy_hdfc.pdf,"instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information " +simple_128_ov8,What are the data subject rights about access and portability?,2,0.5298892259597778,Privacy_Policy_hdfc.pdf,"Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information" +simple_128_ov8,What are the data subject rights about access and portability?,3,0.5290191173553467,Privacy_Policy_hdfc.pdf,"or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy " +simple_128_ov8,Under what grounds is processing of personal data lawful?,1,0.6080446243286133,Privacy_Policy_hdfc.pdf,"instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information " +simple_128_ov8,Under what grounds is processing of personal data lawful?,2,0.606208086013794,Privacy_Policy_hdfc.pdf,"who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) ""Personal informatio" +simple_128_ov8,Under what grounds is processing of personal data lawful?,3,0.5560474395751953,Privacy_Policy_hdfc.pdf,or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company sha +simple_128_ov8,When can personal data be shared with third parties?,1,0.5753870010375977,Indian Oil Priivacy policy.pdf,Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data S +simple_128_ov8,When can personal data be shared with third parties?,2,0.5695280432701111,Privacy_Policy_hdfc.pdf,"or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy " +simple_128_ov8,When can personal data be shared with third parties?,3,0.5481952428817749,Privacy_Policy_hdfc.pdf,"Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess, stores, deals or handle Personal information" +simple_128_ov16,What are the data subject rights about access and portability?,1,0.5555239915847778,Indian Oil Priivacy policy.pdf,"its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the" +simple_128_ov16,What are the data subject rights about access and portability?,2,0.5374832153320312,Privacy_Policy_hdfc.pdf,"possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at" +simple_128_ov16,What are the data subject rights about access and portability?,3,0.5350003242492676,Privacy_Policy_hdfc.pdf,"or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outso" +simple_128_ov16,Under what grounds is processing of personal data lawful?,1,0.5906286239624023,Privacy_Policy_hdfc.pdf,"possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at" +simple_128_ov16,Under what grounds is processing of personal data lawful?,2,0.5853177309036255,Privacy_Policy_hdfc.pdf,"or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outso" +simple_128_ov16,Under what grounds is processing of personal data lawful?,3,0.5784960985183716,Privacy_Policy_hdfc.pdf,"preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Cor" +simple_128_ov16,When can personal data be shared with third parties?,1,0.6404250264167786,Privacy_Policy_hdfc.pdf,"or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outso" +simple_128_ov16,When can personal data be shared with third parties?,2,0.5424543023109436,Indian Oil Priivacy policy.pdf,"its services/products to the Data Subject. By providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the" +simple_128_ov16,When can personal data be shared with third parties?,3,0.5313668251037598,Privacy_Policy_hdfc.pdf,"or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess" +simple_256_ov8,What are the data subject rights about access and portability?,1,0.5347517728805542,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +simple_256_ov8,What are the data subject rights about access and portability?,2,0.5194864273071289,Indian Oil Priivacy policy.pdf,"business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Informatio" +simple_256_ov8,What are the data subject rights about access and portability?,3,0.5117513537406921,Indian Oil Priivacy policy.pdf,"India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect " +simple_256_ov8,Under what grounds is processing of personal data lawful?,1,0.6094139814376831,Privacy_Policy_hdfc.pdf,"personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) ""Personal information (PI) "" means any information that relates t" +simple_256_ov8,Under what grounds is processing of personal data lawful?,2,0.5686781406402588,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +simple_256_ov8,Under what grounds is processing of personal data lawful?,3,0.5305013060569763,Privacy_Policy_hdfc.pdf,"contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agenc" +simple_256_ov8,When can personal data be shared with third parties?,1,0.5305006504058838,Indian Oil Priivacy policy.pdf,"business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Informatio" +simple_256_ov8,When can personal data be shared with third parties?,2,0.506156325340271,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +simple_256_ov8,When can personal data be shared with third parties?,3,0.49900397658348083,Indian Oil Priivacy policy.pdf,"liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subj" +simple_256_ov16,What are the data subject rights about access and portability?,1,0.5346255302429199,Privacy_Policy_hdfc.pdf,"or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy " +simple_256_ov16,What are the data subject rights about access and portability?,2,0.49660614132881165,Indian Oil Priivacy policy.pdf,Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data S +simple_256_ov16,What are the data subject rights about access and portability?,3,0.49607694149017334,Indian Oil Priivacy policy.pdf,"prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in I" +simple_256_ov16,Under what grounds is processing of personal data lawful?,1,0.6094787120819092,Privacy_Policy_hdfc.pdf,"who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) ""Personal informatio" +simple_256_ov16,Under what grounds is processing of personal data lawful?,2,0.5591257810592651,Privacy_Policy_hdfc.pdf,"or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy " +simple_256_ov16,Under what grounds is processing of personal data lawful?,3,0.5127358436584473,Privacy_Policy_hdfc.pdf,"provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is " +simple_256_ov16,When can personal data be shared with third parties?,1,0.5549328327178955,Indian Oil Priivacy policy.pdf,Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data S +simple_256_ov16,When can personal data be shared with third parties?,2,0.5390070676803589,Privacy_Policy_hdfc.pdf,"or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy " +simple_256_ov16,When can personal data be shared with third parties?,3,0.513037383556366,Indian Oil Priivacy policy.pdf,". Third -Party: Any individual or entity over which IOCL does not have any control or ownership, and which operates independently on its own is hereinafter referred to as a ""Third Party"". 3. GOVERNING LAW IOCL is an organisation based and existing in India and is thus bound by the laws of the Republ" +simple_512_ov8,What are the data subject rights about access and portability?,1,0.5492175817489624,Indian Oil Priivacy policy.pdf,requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity +simple_512_ov8,What are the data subject rights about access and portability?,2,0.5273179411888123,Indian Oil Priivacy policy.pdf,"is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initia" +simple_512_ov8,What are the data subject rights about access and portability?,3,0.5114119648933411,Privacy_Policy_hdfc.pdf,"trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent Th" +simple_512_ov8,Under what grounds is processing of personal data lawful?,1,0.5612918734550476,Privacy_Policy_hdfc.pdf,"trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent Th" +simple_512_ov8,Under what grounds is processing of personal data lawful?,2,0.5433870553970337,Indian Oil Priivacy policy.pdf,requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity +simple_512_ov8,Under what grounds is processing of personal data lawful?,3,0.5227590799331665,Privacy_Policy_hdfc.pdf,"compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for t" +simple_512_ov8,When can personal data be shared with third parties?,1,0.5113964080810547,Indian Oil Priivacy policy.pdf,"IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFO" +simple_512_ov8,When can personal data be shared with third parties?,2,0.49636951088905334,Indian Oil Priivacy policy.pdf,"is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initia" +simple_512_ov8,When can personal data be shared with third parties?,3,0.4881289005279541,Privacy_Policy_hdfc.pdf,"trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent Th" +simple_512_ov16,What are the data subject rights about access and portability?,1,0.5347517728805542,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +simple_512_ov16,What are the data subject rights about access and portability?,2,0.5194864273071289,Indian Oil Priivacy policy.pdf,"business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Informatio" +simple_512_ov16,What are the data subject rights about access and portability?,3,0.5117513537406921,Indian Oil Priivacy policy.pdf,"India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect " +simple_512_ov16,Under what grounds is processing of personal data lawful?,1,0.5686781406402588,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +simple_512_ov16,Under what grounds is processing of personal data lawful?,2,0.5305013060569763,Privacy_Policy_hdfc.pdf,"contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agenc" +simple_512_ov16,Under what grounds is processing of personal data lawful?,3,0.5093934535980225,Indian Oil Priivacy policy.pdf,"India 16. REVIEW OF INFORMATION Data Subject can contact IOCL, through the Grievance Officer whose details are provided at the end of the Policy, requesting access to Data Subject ’s Information for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect " +simple_512_ov16,When can personal data be shared with third parties?,1,0.5305006504058838,Indian Oil Priivacy policy.pdf,"business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Informatio" +simple_512_ov16,When can personal data be shared with third parties?,2,0.506156325340271,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +simple_512_ov16,When can personal data be shared with third parties?,3,0.49900397658348083,Indian Oil Priivacy policy.pdf,"liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subj" +recursive_128_ov8,What are the data subject rights about access and portability?,1,0.5664269924163818,Privacy_Policy_hdfc.pdf,"instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information " +recursive_128_ov8,What are the data subject rights about access and portability?,2,0.544136643409729,Indian Oil Priivacy policy.pdf,"such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of" +recursive_128_ov8,What are the data subject rights about access and portability?,3,0.5324234962463379,Indian Oil Priivacy policy.pdf,"it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with " +recursive_128_ov8,Under what grounds is processing of personal data lawful?,1,0.6080446243286133,Privacy_Policy_hdfc.pdf,"instrument details . iii. physical, physiological , and mental health condition . iv. sexual orientation . v. medical records and history . vi. Biometric information . vii. any detail relating to the above clauses as provided to body corporate for providing service; and viii. any of the information " +recursive_128_ov8,Under what grounds is processing of personal data lawful?,2,0.606208086013794,Privacy_Policy_hdfc.pdf,"who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) ""Personal informatio" +recursive_128_ov8,Under what grounds is processing of personal data lawful?,3,0.5560474395751953,Privacy_Policy_hdfc.pdf,or electronically) from the Data subjects before or at the time of collecting PI or SPDI . The Data subject shall be provided with a choice to opt out and withdraw any consent previously given by way of written communication to the Company . 4.2. Collection of Personal Information a) The Company sha +recursive_128_ov8,When can personal data be shared with third parties?,1,0.5695280432701111,Privacy_Policy_hdfc.pdf,"or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy " +recursive_128_ov8,When can personal data be shared with third parties?,2,0.5573834180831909,Indian Oil Priivacy policy.pdf,"such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of" +recursive_128_ov8,When can personal data be shared with third parties?,3,0.5560352206230164,Indian Oil Priivacy policy.pdf,"it, unless IOCL reasonably consider s that it need s to use it for another reason and that reason is compatible with the original purpose. 10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with " +recursive_128_ov16,What are the data subject rights about access and portability?,1,0.543100893497467,Indian Oil Priivacy policy.pdf,"providing his or her Information , the Data Subject agrees that IOCL may collect, use and share this Information with Third Parties for the purpose s mentioned above from 7[a] to 7[h]. 8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject " +recursive_128_ov16,What are the data subject rights about access and portability?,2,0.5374832153320312,Privacy_Policy_hdfc.pdf,"possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at" +recursive_128_ov16,What are the data subject rights about access and portability?,3,0.5350003242492676,Privacy_Policy_hdfc.pdf,"or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outso" +recursive_128_ov16,Under what grounds is processing of personal data lawful?,1,0.5906286239624023,Privacy_Policy_hdfc.pdf,"possessing, storing, dealing or handling personal information or SPDI of the provider of such information. No PI/SPDI shall be used by the Company without the consent of the provider of the information . The consent shall be obtained (in writing or electronically) from the Data subjects before or at" +recursive_128_ov16,Under what grounds is processing of personal data lawful?,2,0.5853177309036255,Privacy_Policy_hdfc.pdf,"or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outso" +recursive_128_ov16,Under what grounds is processing of personal data lawful?,3,0.5784960985183716,Privacy_Policy_hdfc.pdf,"preferably having entered into a confidentiality agreement. 3. Key Definitions (a) “Data subject ” is one who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Cor" +recursive_128_ov16,When can personal data be shared with third parties?,1,0.6404250264167786,Privacy_Policy_hdfc.pdf,"or accessible in public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outso" +recursive_128_ov16,When can personal data be shared with third parties?,2,0.5330427289009094,Indian Oil Priivacy policy.pdf,irrespective of whether such services /products are prov ided directly by IOCL or by its Agents on IOCL’s behalf ; (b) through IOCL’s network of Agents and a Third Party which collects such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobil +recursive_128_ov16,When can personal data be shared with third parties?,3,0.5313668251037598,Privacy_Policy_hdfc.pdf,"or information) Rules, 2011 (“ Rules ”). This Policy must be read in conjunction with the Act and the Rules, as may be amended from time to time. 2. Applicability This Policy is applicable to the Company and the Third Party (“as defined in Section 3 of the Policy”) who may receive , collect, possess" +recursive_256_ov8,What are the data subject rights about access and portability?,1,0.5347517728805542,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +recursive_256_ov8,What are the data subject rights about access and portability?,2,0.5246724486351013,Indian Oil Priivacy policy.pdf,"is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaint" +recursive_256_ov8,What are the data subject rights about access and portability?,3,0.5018541812896729,Privacy_Policy_hdfc.pdf,"personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) ""Personal information (PI) "" means any information that relates t" +recursive_256_ov8,Under what grounds is processing of personal data lawful?,1,0.6094139814376831,Privacy_Policy_hdfc.pdf,"personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) ""Personal information (PI) "" means any information that relates t" +recursive_256_ov8,Under what grounds is processing of personal data lawful?,2,0.5686781406402588,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +recursive_256_ov8,Under what grounds is processing of personal data lawful?,3,0.5305013060569763,Privacy_Policy_hdfc.pdf,"contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agenc" +recursive_256_ov8,When can personal data be shared with third parties?,1,0.506156325340271,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +recursive_256_ov8,When can personal data be shared with third parties?,2,0.5034449100494385,Indian Oil Priivacy policy.pdf,"downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJE" +recursive_256_ov8,When can personal data be shared with third parties?,3,0.49794548749923706,Privacy_Policy_hdfc.pdf,"contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agenc" +recursive_256_ov16,What are the data subject rights about access and portability?,1,0.5346255302429199,Privacy_Policy_hdfc.pdf,"or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy " +recursive_256_ov16,What are the data subject rights about access and portability?,2,0.5000432729721069,Indian Oil Priivacy policy.pdf,"such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of" +recursive_256_ov16,What are the data subject rights about access and portability?,3,0.4897534251213074,Indian Oil Priivacy policy.pdf,"accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when requested by IOCL . IOCL shall not be held liable in any manner whatsoever if IOCL is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to " +recursive_256_ov16,Under what grounds is processing of personal data lawful?,1,0.6094787120819092,Privacy_Policy_hdfc.pdf,"who is the subject of personal and sensitive personal data . It may include, but is not limited to, the employees, contractors, outsourced workforce, vendors, interns, associates, customers, Corporate Social Responsibility (CSR) partners and business partners of the Company. (b) ""Personal informatio" +recursive_256_ov16,Under what grounds is processing of personal data lawful?,2,0.5591257810592651,Privacy_Policy_hdfc.pdf,"or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy " +recursive_256_ov16,Under what grounds is processing of personal data lawful?,3,0.5127358436584473,Privacy_Policy_hdfc.pdf,"provided such information under lawful HDFC Capital Privacy Policy Version: 2.0 January 2024 Security Classification: INTERNAL Page 4 of 4 contract or otherwise, unless such disclosure has been agreed to in the contract between the Company and the provider of information, or where the disclosure is " +recursive_256_ov16,When can personal data be shared with third parties?,1,0.5390070676803589,Privacy_Policy_hdfc.pdf,"or information for th e purposes of these rules. (d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy " +recursive_256_ov16,When can personal data be shared with third parties?,2,0.5217350721359253,Indian Oil Priivacy policy.pdf,"such Information and transfers it to IOCL for a business requirement ; (c) when Data Subject downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of" +recursive_256_ov16,When can personal data be shared with third parties?,3,0.4659278690814972,Indian Oil Priivacy policy.pdf,"reporting obligation , including compliance with requests from the Government of India or any Governmental Agency ; (c) To send marketing as well as non-marketing commercial communications to the Data Subject ; (d) To send the Data Subject notifications that the Data Subject has specifically request" +recursive_512_ov8,What are the data subject rights about access and portability?,1,0.5359660983085632,Indian Oil Priivacy policy.pdf,"the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third P" +recursive_512_ov8,What are the data subject rights about access and portability?,2,0.5114119648933411,Privacy_Policy_hdfc.pdf,"trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent Th" +recursive_512_ov8,What are the data subject rights about access and portability?,3,0.5087826251983643,Indian Oil Priivacy policy.pdf,for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject +recursive_512_ov8,Under what grounds is processing of personal data lawful?,1,0.5612918734550476,Privacy_Policy_hdfc.pdf,"trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent Th" +recursive_512_ov8,Under what grounds is processing of personal data lawful?,2,0.5271402597427368,Indian Oil Priivacy policy.pdf,for reviewing or requesting amendment to certain information that Data Subject considers to be incorrect or wrong. IOCL shall process such requests from Data Subject in accordance with applicable law. IOCL shall not be responsible for the authenticity of the Information provided by the Data Subject +recursive_512_ov8,Under what grounds is processing of personal data lawful?,3,0.5261645913124084,Indian Oil Priivacy policy.pdf,"the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third P" +recursive_512_ov8,When can personal data be shared with third parties?,1,0.514633297920227,Indian Oil Priivacy policy.pdf,"the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJECT ’S INFORMATION [PURPOSE] IOCL uses the Information " +recursive_512_ov8,When can personal data be shared with third parties?,2,0.5077983736991882,Indian Oil Priivacy policy.pdf,"the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaints, legal proceedings or claims filed or initiated by the Data Subject or any Third P" +recursive_512_ov8,When can personal data be shared with third parties?,3,0.4881289005279541,Privacy_Policy_hdfc.pdf,"trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate use of personal information and SPDI at the Company . 4.1. Consent Th" +recursive_512_ov16,What are the data subject rights about access and portability?,1,0.5347517728805542,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +recursive_512_ov16,What are the data subject rights about access and portability?,2,0.5246724486351013,Indian Oil Priivacy policy.pdf,"is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaint" +recursive_512_ov16,What are the data subject rights about access and portability?,3,0.4839269518852234,Privacy_Policy_hdfc.pdf,"contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agenc" +recursive_512_ov16,Under what grounds is processing of personal data lawful?,1,0.5686781406402588,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +recursive_512_ov16,Under what grounds is processing of personal data lawful?,2,0.5305013060569763,Privacy_Policy_hdfc.pdf,"contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agenc" +recursive_512_ov16,Under what grounds is processing of personal data lawful?,3,0.5166746377944946,Indian Oil Priivacy policy.pdf,"is unable to perform its services or if there is a deficiency in IOCL’s services to the Data Subject due to Data Subject’s failure to provide such Information. IOCL and/or its Agents, employees, directors, associates, etc. shall be indemnified by the Data Subject and held harmless from any complaint" +recursive_512_ov16,When can personal data be shared with third parties?,1,0.506156325340271,Privacy_Policy_hdfc.pdf,"parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptable privacy principles for the protection and appropriate us" +recursive_512_ov16,When can personal data be shared with third parties?,2,0.5034449100494385,Indian Oil Priivacy policy.pdf,"downloads IOCL’s mobile applications or visits any of the websites owned by IOCL and/or creates an account on the mobile applications or the website s. (d) when Data Subject, which also includes employees of IOCL, directly elects to share their Information with IOCL. 7. WHY IOCL COLLECT S DATA SUBJE" +recursive_512_ov16,When can personal data be shared with third parties?,3,0.49794548749923706,Privacy_Policy_hdfc.pdf,"contract between the Company and the provider of information, or where the disclosure is necessary for compliance of a legal /regulatory obligation ; Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agenc" +semantic_sim74,What are the data subject rights about access and portability?,1,0.5667707920074463,Privacy_Policy_hdfc.pdf,"Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions " +semantic_sim74,What are the data subject rights about access and portability?,2,0.5272112488746643,Indian Oil Priivacy policy.pdf,10. CONSENT Data Subject agrees that IOCL does not need any additional or further consent from him/her to use the Data Subject ’s Information in accordance with this Policy to carry out IOCL’s legal obligations or exercise specific rights. 11. INFORMATION SHARING AND DISCLOSURE IOCL may +semantic_sim74,What are the data subject rights about access and portability?,3,0.5256274342536926,Indian Oil Priivacy policy.pdf,"8. FAILURE TO PROVIDE INFORMATION IOCL may not be able to perform the obligations it has promised the Data Subject , or IOCL may be prevented from complying with its legal , accounting, business or reporting obligation s if the Data Subject fails to provide certain Information when reques" +semantic_sim74,Under what grounds is processing of personal data lawful?,1,0.581454336643219,Privacy_Policy_hdfc.pdf,"Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or " +semantic_sim74,Under what grounds is processing of personal data lawful?,2,0.550290584564209,Privacy_Policy_hdfc.pdf,"Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions " +semantic_sim74,Under what grounds is processing of personal data lawful?,3,0.5481666326522827,Privacy_Policy_hdfc.pdf,"(c) “Sensitive personal data or information (SPDI) ” of a person means such personal information which consists of information relating to. i. password . ii. financial information such as Bank account or credit card or debit card or other payment instrument details . iii. physical, physiological " +semantic_sim74,When can personal data be shared with third parties?,1,0.5964036583900452,Privacy_Policy_hdfc.pdf,"(d) “Third Party ” means all external parties such as contractors, outsourced workforce, interns, summer trainees, vendors , CSR Partners and business partners who have access to Company’s information assets. 4. Elements of Privacy Policy This Policy describes generally acceptabl" +semantic_sim74,When can personal data be shared with third parties?,2,0.5945898294448853,Privacy_Policy_hdfc.pdf,"Any such Third Party is expected to have read, understood and comply with this Policy. The Company will use its best endeavors to ensure that such Third Party have read and understood the terms of this Policy and preferably having entered into a confidentiality agreement. 3. Key Definitions " +semantic_sim74,When can personal data be shared with third parties?,3,0.5594093799591064,Privacy_Policy_hdfc.pdf,"Provided that the information shall be shared by the Company , without obtaining prior consent from the provider of information, with Government agencies mandated under the law to obtain information including sensitive personal data or information for the purpose of verification of identity, or " diff --git a/out/summary.json b/out/summary.json new file mode 100644 index 0000000..87ed724 --- /dev/null +++ b/out/summary.json @@ -0,0 +1,67 @@ +[ + { + "experiment": "simple_128_ov16", + "avg_score": 0.5662995709313287, + "n": 9 + }, + { + "experiment": "recursive_128_ov8", + "avg_score": 0.5662482182184855, + "n": 9 + }, + { + "experiment": "simple_128_ov8", + "avg_score": 0.5654161969820658, + "n": 9 + }, + { + "experiment": "recursive_128_ov16", + "avg_score": 0.5638734963205125, + "n": 9 + }, + { + "experiment": "semantic_sim74", + "avg_score": 0.561102655198839, + "n": 9 + }, + { + "experiment": "simple_256_ov16", + "avg_score": 0.5350695815351274, + "n": 9 + }, + { + "experiment": "simple_256_ov8", + "avg_score": 0.5344715482658811, + "n": 9 + }, + { + "experiment": "recursive_256_ov8", + "avg_score": 0.5308242837587992, + "n": 9 + }, + { + "experiment": "recursive_256_ov16", + "avg_score": 0.5258258415593041, + "n": 9 + }, + { + "experiment": "simple_512_ov8", + "avg_score": 0.5234755906793807, + "n": 9 + }, + { + "experiment": "simple_512_ov16", + "avg_score": 0.5233581562836965, + "n": 9 + }, + { + "experiment": "recursive_512_ov8", + "avg_score": 0.5201464427842034, + "n": 9 + }, + { + "experiment": "recursive_512_ov16", + "avg_score": 0.5185279978646172, + "n": 9 + } +] \ No newline at end of file From f7e9695fc1f13b7e0b7c369aaa3b88511f1de139 Mon Sep 17 00:00:00 2001 From: Lomesh2000 <80121664+Lomesh2000@users.noreply.github.com> Date: Thu, 9 Apr 2026 12:59:21 +0000 Subject: [PATCH 02/18] Ref --- requirements.txt | Bin 1700 -> 3684 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/requirements.txt b/requirements.txt index 728c4a25dc7cc0681da935b24cca2b559000f00f..7fcbff0ad3cd5dd38fd985a4fc5329b256adb266 100644 GIT binary patch delta 1193 zcmZuwO=}Zj5S~qTQ>+B^AZ^)(q%O5cY1~cHqzEF?QV_p-(SzEb^cO^iuuT0P_> zp2Hjj!J9V^(w`wc`4a@ezn~ZOnR&Y{sJy(NGxIz%^Ui$8ew!cv{^e1D*6A7bX$PlG z3TZ$?x`W~d-MXb zNUgf`NLj*Jg%1JRpzRaG5>+@zFYvp}v?rz>h_`41&J{q=2Sfx11{iJFH~C}Qt0j7O z;7UX-l}JFhp(*%Xql=d$q`Q!9@u4#_4&bCu%dqRg%>u1p2yz3q`#A5xKE`_si5Ws? zKv(GsMgyLVpci8gaVtW001Zi|_)yeS6PhF3V(f-Nd>sJ03tg;yWP8~Xw9SN+zu37c zNnM#%`L(mS9?&Xoz9u_~^Z{(6W440gNu0ua8eCa7#y(C-y-Ceg)nbymWK}1Z-O1*~tgr+cS3tGN z^I+kWHd3kxZVAMiDi*26Su1aqdBw_~HO2z$^CxS03J^G#`Kxuos_;)M=a!W4DV(b- zT3xXujb*-B*`6cy=<|Df&eiBN zZs|Z{EpGu;*>$`nQ>Vfw9~6T@`esL21i7SH^!d6oXO(!{S;G3+ars From 3e9ea12d31b18e21e4ea45d54bbb058810226ead Mon Sep 17 00:00:00 2001 From: Lomesh2000 <80121664+Lomesh2000@users.noreply.github.com> Date: Thu, 9 Apr 2026 13:00:04 +0000 Subject: [PATCH 03/18] FEAT: api setup --- src/api/app.py | 504 +++++++++++++++++++++++++++++++++++++++++++++++++ test_api.py | 102 ++++++++++ 2 files changed, 606 insertions(+) create mode 100644 src/api/app.py create mode 100644 test_api.py diff --git a/src/api/app.py b/src/api/app.py new file mode 100644 index 0000000..cb0135b --- /dev/null +++ b/src/api/app.py @@ -0,0 +1,504 @@ +#!/usr/bin/env python3 +""" +FastAPI wrapper for the LexGuard RAG compliance engine. + +Exposes REST endpoints to run compliance checks on policy documents. +""" + +import os +import sys +import json +import logging +from pathlib import Path +from typing import List, Dict, Any, Optional + +from fastapi import FastAPI, HTTPException, UploadFile, File, Form +from fastapi.responses import JSONResponse +from pydantic import BaseModel +import uvicorn +import io + +try: + from PyPDF2 import PdfReader + PDF_AVAILABLE = True +except ImportError: + PDF_AVAILABLE = False + +# Add src to path for imports +sys.path.insert(0, str(Path(__file__).parent.parent)) + +from retriever_rag.rag_runner import ( + load_graph, + load_node_embeddings, + compute_eventic_node_embeddings, + build_fused_subgraph, + triples_text_from_graph, + call_llm, + Tempt3, +) + +try: + from sentence_transformers import SentenceTransformer + SBERT_AVAILABLE = True +except ImportError: + SBERT_AVAILABLE = False + +try: + import faiss + FAISS_AVAILABLE = True +except ImportError: + FAISS_AVAILABLE = False + +import numpy as np +import networkx as nx + +# Logging setup +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", +) +logger = logging.getLogger("api") + +# ------- Config ------- +DATA_DIR = Path(__file__).parent.parent.parent / "data" +STATIC_GRAPH_PATH = DATA_DIR / "static_graph.gpickle" +EVENTIC_GRAPH_PATH = DATA_DIR / "eventic_graph.gpickle" +CHUNKS_PATH = DATA_DIR / "chunks.json" +FAISS_INDEX_PATH = DATA_DIR / "faiss.index" + +EMBED_MODEL = "sentence-transformers/all-MiniLM-L6-v2" + +# ------- Global state (lazy initialized) ------- +_static_graph: Optional[nx.DiGraph] = None +_eventic_graph: Optional[nx.DiGraph] = None +_embeddings_model: Optional[SentenceTransformer] = None +_eventic_nodes: Optional[List[str]] = None +_eventic_embs: Optional[np.ndarray] = None +_faiss_index: Optional[Any] = None + + +# ------- Pydantic Models ------- +class ComplianceCheckRequest(BaseModel): + text: str + lambda_thresh: float = 0.75 + hop_k: int = 1 + max_triples: int = 60 + prefer_local: bool = False + openai_model: str = "gpt-3.5-turbo" + + +class ComplianceCheckResponse(BaseModel): + verdict: str # "pass", "fail", "unknown" + evidence: List[Dict[str, Any]] + triples_text: str + llm_reply: Optional[str] = None + hits: List[str] + P: List[str] + N: List[str] + + +class HealthCheckResponse(BaseModel): + status: str + loaded_models: Dict[str, bool] + + +class ChunkResult(BaseModel): + """Result for a single chunk""" + chunk_id: int + text_preview: str # First 100 chars of chunk + verdict: str + evidence: List[Dict[str, Any]] + llm_reply: Optional[str] = None + hits: List[str] + P: List[str] + N: List[str] + + +class ChunkAnalysisResponse(BaseModel): + """Response for chunk-level PDF analysis""" + filename: str + total_chunks: int + chunks: List[ChunkResult] + summary_verdict: str # "pass" if all pass, "fail" if any fail, "mixed" if combination + + +def extract_text_from_pdf_bytes(file_bytes: bytes) -> str: + """Extract text content from a PDF file supplied as bytes.""" + if not PDF_AVAILABLE: + raise RuntimeError("PyPDF2 is not installed") + reader = PdfReader(io.BytesIO(file_bytes)) + texts = [] + for page in reader.pages: + try: + page_text = page.extract_text() or "" + except Exception: + page_text = "" + if page_text: + texts.append(page_text) + return "\n\n".join(texts).strip() + + +def split_text_into_chunks(text: str, chunk_size: int = 500, overlap: int = 100) -> List[str]: + """Split text into overlapping chunks.""" + if not text or chunk_size <= 0: + return [text] if text else [] + + chunks = [] + start = 0 + while start < len(text): + end = min(start + chunk_size, len(text)) + chunk = text[start:end].strip() + if chunk: + chunks.append(chunk) + if end >= len(text): + break + start = end - overlap + + return chunks if chunks else [text] if text else [] + + +def run_compliance_text( + text: str, + lambda_thresh: float = 0.75, + hop_k: int = 1, + max_triples: int = 60, + prefer_local: bool = False, + openai_model: str = "gpt-3.5-turbo", +) -> ComplianceCheckResponse: + if not _embeddings_model or not _eventic_graph or not _static_graph: + raise RuntimeError("Models not initialized") + + text_vec = _embeddings_model.encode([text], convert_to_numpy=True)[0] + text_vec = text_vec / (np.linalg.norm(text_vec) + 1e-12) + + Gfus, hits, P, N = build_fused_subgraph( + text, + text_vec, + _eventic_nodes, + _eventic_embs, + _eventic_graph, + _static_graph, + lambda_thresh=lambda_thresh, + hop_k=hop_k, + ) + + triples_text = triples_text_from_graph(Gfus, max_items=max_triples) + prompt = Tempt3.format( + chunk=text[:2000] + ("\n\n[TRUNCATED]" if len(text) > 2000 else ""), + triples_text=triples_text, + ) + + try: + reply = call_llm( + prompt, + use_openai_priority=not prefer_local, + model_openai=openai_model, + max_tokens=256, + ) + except Exception as e: + logger.warning(f"LLM call failed: {e}") + reply = None + + if reply: + if "" in reply: + verdict = "pass" + evidence = [] + elif "" in reply: + verdict = "fail" + try: + suffix = reply.split("")[-1].strip() + parsed = json.loads(suffix) + evidence = parsed + except Exception: + evidence = [{"raw": reply.split("")[-1].strip()}] + else: + lower = reply.lower() + if "failed" in lower or "violate" in lower or "violation" in lower: + verdict = "fail" + else: + verdict = "pass" + evidence = [{"raw": reply[:400]}] + else: + verdict = "unknown" + evidence = [] + + return ComplianceCheckResponse( + verdict=verdict, + evidence=evidence, + triples_text=triples_text, + llm_reply=reply, + hits=hits, + P=P, + N=N, + ) + + +def init_global_state(): + """Initialize global state on startup.""" + global _static_graph, _eventic_graph, _embeddings_model, _eventic_nodes, _eventic_embs, _faiss_index + + logger.info("Initializing global state...") + + if not SBERT_AVAILABLE: + raise RuntimeError("sentence-transformers not installed") + + # Load graphs + try: + _static_graph = load_graph(str(STATIC_GRAPH_PATH)) + logger.info(f"Loaded static graph: {_static_graph.number_of_nodes()} nodes, {_static_graph.number_of_edges()} edges") + except Exception as e: + logger.warning(f"Failed to load static graph: {e}") + _static_graph = nx.DiGraph() + + try: + _eventic_graph = load_graph(str(EVENTIC_GRAPH_PATH)) + logger.info(f"Loaded eventic graph: {_eventic_graph.number_of_nodes()} nodes, {_eventic_graph.number_of_edges()} edges") + except Exception as e: + logger.error(f"Failed to load eventic graph: {e}") + raise + + # Load embeddings model + try: + _embeddings_model = SentenceTransformer(EMBED_MODEL) + logger.info(f"Loaded embeddings model: {EMBED_MODEL}") + except Exception as e: + logger.error(f"Failed to load embeddings model: {e}") + raise + + # Precompute eventic node embeddings + try: + from retriever_rag.rag_runner import compute_eventic_node_embeddings + _eventic_nodes, _eventic_embs = compute_eventic_node_embeddings(_eventic_graph, _embeddings_model) + logger.info(f"Computed eventic embeddings: {len(_eventic_nodes)} nodes") + except Exception as e: + logger.error(f"Failed to compute eventic embeddings: {e}") + raise + + # Load FAISS index (optional) + if FAISS_AVAILABLE and FAISS_INDEX_PATH.exists(): + try: + _faiss_index = faiss.read_index(str(FAISS_INDEX_PATH)) + logger.info("Loaded FAISS index") + except Exception as e: + logger.warning(f"Failed to load FAISS index: {e}") + else: + logger.info("FAISS index not available") + + +# ------- FastAPI app ------- +app = FastAPI( + title="LexGuard Compliance Engine", + description="Offline RAG-LLM service for policy compliance verification", + version="1.0.0", +) + + +@app.on_event("startup") +async def startup_event(): + """Initialize resources on startup.""" + try: + init_global_state() + logger.info("Startup complete") + except Exception as e: + logger.error(f"Startup failed: {e}", exc_info=True) + raise + + +@app.get("/health", response_model=HealthCheckResponse) +async def health_check(): + """Health check endpoint.""" + return HealthCheckResponse( + status="ok" if all( + [_static_graph, _eventic_graph, _embeddings_model, _eventic_nodes, _eventic_embs] + ) else "degraded", + loaded_models={ + "static_graph": _static_graph is not None, + "eventic_graph": _eventic_graph is not None, + "embeddings_model": _embeddings_model is not None, + "faiss_index": _faiss_index is not None, + }, + ) + + +@app.post("/compliance-check", response_model=ComplianceCheckResponse) +async def compliance_check(request: ComplianceCheckRequest): + """ + Run a compliance check on a policy text chunk. + """ + try: + return run_compliance_text( + request.text, + lambda_thresh=request.lambda_thresh, + hop_k=request.hop_k, + max_triples=request.max_triples, + prefer_local=request.prefer_local, + openai_model=request.openai_model, + ) + except HTTPException: + raise + except Exception as e: + logger.error(f"Compliance check failed: {e}", exc_info=True) + raise HTTPException(status_code=500, detail=str(e)) + + +@app.post("/upload-pdf", response_model=ComplianceCheckResponse) +async def upload_pdf( + file: UploadFile = File(...), + lambda_thresh: float = Form(0.75), + hop_k: int = Form(1), + max_triples: int = Form(60), + prefer_local: bool = Form(False), + openai_model: str = Form("gpt-3.5-turbo"), +): + """ + Upload a PDF and run compliance check on the entire document as a single unit. + Returns a single verdict for the whole document. + """ + if not PDF_AVAILABLE: + raise HTTPException(status_code=500, detail="PyPDF2 is not installed for PDF extraction") + + if file.content_type != "application/pdf": + raise HTTPException(status_code=400, detail="Only PDF files are supported") + + try: + contents = await file.read() + text = extract_text_from_pdf_bytes(contents) + if not text.strip(): + raise HTTPException(status_code=400, detail="No text extracted from PDF") + return run_compliance_text( + text, + lambda_thresh=lambda_thresh, + hop_k=hop_k, + max_triples=max_triples, + prefer_local=prefer_local, + openai_model=openai_model, + ) + except HTTPException: + raise + except Exception as e: + logger.error(f"PDF upload failed: {e}", exc_info=True) + raise HTTPException(status_code=500, detail=str(e)) + + +@app.post("/upload-pdf-chunks", response_model=ChunkAnalysisResponse) +async def upload_pdf_chunks( + file: UploadFile = File(...), + chunk_size: int = Form(500), + chunk_overlap: int = Form(100), + lambda_thresh: float = Form(0.75), + hop_k: int = Form(1), + max_triples: int = Form(60), + prefer_local: bool = Form(False), + openai_model: str = Form("gpt-3.5-turbo"), +): + """ + Upload a PDF and run compliance check on each chunk separately. + Returns individual verdicts for each chunk (similar to preds.json). + + Parameters: + - chunk_size: Number of characters per chunk (default: 500) + - chunk_overlap: Overlap between consecutive chunks in characters (default: 100) + """ + if not PDF_AVAILABLE: + raise HTTPException(status_code=500, detail="PyPDF2 is not installed for PDF extraction") + + if file.content_type != "application/pdf": + raise HTTPException(status_code=400, detail="Only PDF files are supported") + + try: + contents = await file.read() + full_text = extract_text_from_pdf_bytes(contents) + if not full_text.strip(): + raise HTTPException(status_code=400, detail="No text extracted from PDF") + + # Split into chunks + text_chunks = split_text_into_chunks(full_text, chunk_size=chunk_size, overlap=chunk_overlap) + chunk_results = [] + verdicts = [] + + # Process each chunk + for chunk_id, chunk_text in enumerate(text_chunks): + logger.info(f"Processing chunk {chunk_id + 1}/{len(text_chunks)}") + try: + result = run_compliance_text( + chunk_text, + lambda_thresh=lambda_thresh, + hop_k=hop_k, + max_triples=max_triples, + prefer_local=prefer_local, + openai_model=openai_model, + ) + verdicts.append(result.verdict) + chunk_results.append( + ChunkResult( + chunk_id=chunk_id, + text_preview=chunk_text[:100], + verdict=result.verdict, + evidence=result.evidence, + llm_reply=result.llm_reply, + hits=result.hits, + P=result.P, + N=result.N, + ) + ) + except Exception as e: + logger.warning(f"Failed to process chunk {chunk_id}: {e}") + chunk_results.append( + ChunkResult( + chunk_id=chunk_id, + text_preview=chunk_text[:100], + verdict="unknown", + evidence=[{"error": str(e)}], + llm_reply=None, + hits=[], + P=[], + N=[], + ) + ) + + # Determine summary verdict + if not verdicts: + summary = "unknown" + elif all(v == "pass" for v in verdicts): + summary = "pass" + elif all(v == "fail" for v in verdicts): + summary = "fail" + else: + summary = "mixed" + + return ChunkAnalysisResponse( + filename=file.filename or "unknown", + total_chunks=len(text_chunks), + chunks=chunk_results, + summary_verdict=summary, + ) + except HTTPException: + raise + except Exception as e: + logger.error(f"PDF chunk analysis failed: {e}", exc_info=True) + raise HTTPException(status_code=500, detail=str(e)) + + +@app.get("/") +async def root(): + """Root endpoint with info.""" + return { + "service": "LexGuard Compliance Engine", + "version": "1.0.0", + "endpoints": { + "health": "/health", + "compliance_check": "/compliance-check (POST) - Check single text", + "upload_pdf": "/upload-pdf (POST) - Analyze PDF as single document", + "upload_pdf_chunks": "/upload-pdf-chunks (POST) - Analyze PDF chunk-by-chunk", + "docs": "/docs", + }, + "description": { + "upload_pdf": "Returns single verdict for entire PDF", + "upload_pdf_chunks": "Returns individual verdicts for each chunk (configurable chunk size and overlap)", + }, + } + + +if __name__ == "__main__": + port = int(os.getenv("PORT", "8000")) + uvicorn.run(app, host="0.0.0.0", port=port, log_level="info") diff --git a/test_api.py b/test_api.py new file mode 100644 index 0000000..62d6d24 --- /dev/null +++ b/test_api.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +""" +Quick test script for the LexGuard API. + +Usage: + python test_api.py --url http://localhost:8000 + +Make sure the API is running first: + docker-compose up + # or + python -m src.api.app +""" + +import sys +import argparse +import requests +import json + +def test_health(base_url): + """Test the health endpoint.""" + print("Testing /health endpoint...") + try: + resp = requests.get(f"{base_url}/health", timeout=5) + resp.raise_for_status() + data = resp.json() + print(f"✓ Health check passed: {data['status']}") + print(f" Models: {json.dumps(data['loaded_models'], indent=2)}") + return True + except Exception as e: + print(f"✗ Health check failed: {e}") + return False + + +def test_compliance_check(base_url): + """Test the compliance check endpoint.""" + print("\nTesting /compliance-check endpoint...") + + sample_text = """ + Our company collects personal data from users to improve our services. + We store this data in secure servers and do not share it with third parties + without explicit consent. Users can request access or deletion of their data + in compliance with GDPR regulations. + """ + + payload = { + "text": sample_text.strip(), + "lambda_thresh": 0.75, + "hop_k": 1, + "max_triples": 60, + "prefer_local": True, # Use local model (faster for testing) + "openai_model": "gpt-3.5-turbo" + } + + try: + resp = requests.post( + f"{base_url}/compliance-check", + json=payload, + timeout=60 + ) + resp.raise_for_status() + data = resp.json() + print(f"✓ Compliance check completed") + print(f" Verdict: {data['verdict']}") + print(f" Evidence: {len(data['evidence'])} items") + print(f" Hits: {len(data['hits'])} nodes") + print(f" Triples:\n{data['triples_text'][:200]}...") + return True + except Exception as e: + print(f"✗ Compliance check failed: {e}") + import traceback + traceback.print_exc() + return False + + +def main(): + parser = argparse.ArgumentParser(description="Test LexGuard API") + parser.add_argument("--url", default="http://localhost:8000", help="API base URL") + args = parser.parse_args() + + print(f"Testing API at {args.url}\n") + + health_ok = test_health(args.url) + if not health_ok: + print("\n✗ API is not responding. Make sure it's running:") + print(" docker-compose up") + print(" # or") + print(" python -m src.api.app") + sys.exit(1) + + compliance_ok = test_compliance_check(args.url) + + print("\n" + "="*50) + if health_ok and compliance_ok: + print("✓ All tests passed!") + sys.exit(0) + else: + print("✗ Some tests failed") + sys.exit(1) + + +if __name__ == "__main__": + main() From 477f3186fd8a0a7d4c29dc086eafbcb3966f5dea Mon Sep 17 00:00:00 2001 From: Lomesh2000 <80121664+Lomesh2000@users.noreply.github.com> Date: Thu, 9 Apr 2026 13:00:33 +0000 Subject: [PATCH 04/18] FEAT: git actions --- .github/workflows/ci.yml | 62 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..3f21d28 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,62 @@ +name: Build and Test + +on: + push: + branches: + - main + - develop + - master + pull_request: + branches: + - main + - develop + - master + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.12' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Lint with flake8 (optional) + continue-on-error: true + run: | + pip install flake8 + flake8 src --count --select=E9,F63,F7,F82 --show-source --statistics + flake8 src --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + + - name: Test API import + run: | + python -c "from src.api.app import app; print('✓ API imports successfully')" + + build: + needs: test + runs-on: ubuntu-latest + if: github.event_name == 'push' + steps: + - uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: false + tags: lexguard:latest + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Log build success + run: echo "✓ Docker image built successfully" From 0a1303124e0c8e163cb3a9ae0791ccabd7e58aac Mon Sep 17 00:00:00 2001 From: Lomesh2000 <80121664+Lomesh2000@users.noreply.github.com> Date: Thu, 9 Apr 2026 13:01:19 +0000 Subject: [PATCH 05/18] docker setup --- .dockerignore | 29 +++++++++++++++++++++++++++ Dockerfile | 37 ++++++++++++++++++++++++++++++++++ docker-compose.yml | 49 ++++++++++++++++++++++++++++++++++++++++++++++ run.sh | 40 +++++++++++++++++++++++++++++++++++++ run_docker.sh | 23 ++++++++++++++++++++++ 5 files changed, 178 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 run.sh create mode 100644 run_docker.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..8b8cb3c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,29 @@ +venv +__pycache__ +*.pyc +*.pyo +*.pyd +.Python +*.so +*.egg +*.egg-info +dist +build +.git +.gitignore +.env +.envrc +.vscode +.idea +*.swp +*.swo +*~ +.DS_Store +Potential\ Datasets +Reference\ papers +test +.pytest_cache +*.log +*.pkl +*.pickle +node_modules diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d95ec1f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,37 @@ +# Use Python 3.10 (more stable than 3.12 for complex packages) +FROM python:3.10-slim + +# Set working directory +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + curl \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Upgrade pip first +RUN pip install --upgrade pip setuptools wheel + +# Copy requirements +COPY requirements.txt . + +# Install PyTorch first (pre-built wheel, avoid compilation) +RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu + +# Install other Python dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Copy entire project +COPY . . + +# Expose port +EXPOSE 8000 + +# Health check +HEALTHCHECK --interval=30s --timeout=10s --start-period=15s --retries=3 \ + CMD curl -f http://localhost:8000/health || exit 1 + +# Run the app +CMD ["python", "-m", "src.api.app"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c7ed2dd --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,49 @@ +version: '3.8' + +services: + lexguard-api: + build: + context: . + dockerfile: Dockerfile + ports: + - "8000:8000" + environment: + - PORT=8000 + - PYTHONUNBUFFERED=1 + - OMP_NUM_THREADS=1 + - MKL_NUM_THREADS=1 + - NUMEXPR_NUM_THREADS=1 + - OPENBLAS_NUM_THREADS=1 + volumes: + # Mount data directory for access to graphs and embeddings + - ./data:/home/app/data:ro + deploy: + resources: + limits: + memory: 4G + cpus: '1.0' + reservations: + memory: 1G + cpus: '0.5' + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/health"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 30s + networks: + - lexguard-net + restart: unless-stopped + # Prevent OOM kills + oom_kill_disable: false + +networks: + lexguard-net: + driver: bridge + +# Usage: +# docker-compose up --build +# docker-compose up -d # Run in background +# docker-compose up --build # Build and run +# docker-compose down # Stop and remove containers +# docker-compose logs -f # View logs diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..9ac8b59 --- /dev/null +++ b/run.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# Convenience script to run the LexGuard API + +set -e + +echo "================================" +echo "LexGuard API - Startup Script" +echo "================================" +echo "" + +# Check if running in venv +if [[ -z "$VIRTUAL_ENV" ]]; then + echo "⚠️ Not in a virtual environment" + echo " Consider activating: source venv/bin/activate" + echo "" +fi + +# Check if dependencies are installed +echo "Checking dependencies..." +python -c "import fastapi" 2>/dev/null || { + echo "❌ FastAPI not installed" + echo " Run: pip install -r requirements.txt" + exit 1 +} + +echo "✓ Dependencies OK" +echo "" + +# Set environment variables +export PYTHONUNBUFFERED=1 +export PORT=${PORT:-8000} + +echo "Starting API server on http://localhost:$PORT" +echo "Interactive docs: http://localhost:$PORT/docs" +echo "" +echo "Press Ctrl+C to stop" +echo "" + +# Run the API +python -m src.api.app diff --git a/run_docker.sh b/run_docker.sh new file mode 100644 index 0000000..efbd263 --- /dev/null +++ b/run_docker.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# Docker run script with memory limits to prevent segmentation faults + +echo "Building and running LexGuard API with memory limits..." + +# Build the image +docker build -t lexguard-api . + +# Run with memory limits and single-threaded execution +docker run \ + --memory=4g \ + --cpus=1.0 \ + --env OMP_NUM_THREADS=1 \ + --env MKL_NUM_THREADS=1 \ + --env NUMEXPR_NUM_THREADS=1 \ + --env OPENBLAS_NUM_THREADS=1 \ + --volume "$(pwd)/data:/home/app/data:ro" \ + --publish 8000:8000 \ + --name lexguard-container \ + lexguard-api + +echo "API should be running at http://localhost:8000" +echo "Test with: curl http://localhost:8000/health" \ No newline at end of file From 882fc6ce447035b76a444f140e5d47cd0cf92795 Mon Sep 17 00:00:00 2001 From: Lomesh2000 <80121664+Lomesh2000@users.noreply.github.com> Date: Thu, 9 Apr 2026 13:02:04 +0000 Subject: [PATCH 06/18] MD --- guides/DEPLOYMENT.md | 293 ++++++++++++++++++++++++++++++++ guides/MLOPS_BEGINNER_GUIDE.md | 301 +++++++++++++++++++++++++++++++++ guides/NO_DOCKER_SETUP.md | 127 ++++++++++++++ guides/START_HERE.md | 217 ++++++++++++++++++++++++ 4 files changed, 938 insertions(+) create mode 100644 guides/DEPLOYMENT.md create mode 100644 guides/MLOPS_BEGINNER_GUIDE.md create mode 100644 guides/NO_DOCKER_SETUP.md create mode 100644 guides/START_HERE.md diff --git a/guides/DEPLOYMENT.md b/guides/DEPLOYMENT.md new file mode 100644 index 0000000..218cd9c --- /dev/null +++ b/guides/DEPLOYMENT.md @@ -0,0 +1,293 @@ +# LexGuard MLOps & Deployment Guide + +## Overview +This document covers deploying the LexGuard compliance engine as a containerized service for production use. + +## Architecture + +``` +┌─────────────────────────────────────┐ +│ FastAPI REST Service │ +│ (src/api/app.py) │ +│ - /health │ +│ - /compliance-check (POST) │ +└────────────┬────────────────────────┘ + │ + ┌──────▼──────────┐ + │ Models │ + ├─────────────────┤ + │ - Static Graph │ + │ - Eventic Graph │ + │ - SBERT Model │ + │ - FAISS Index │ + └─────────────────┘ +``` + +## Quickstart + +### Local Development (without Docker) + +1. Install dependencies: + ```bash + pip install -r requirements.txt + ``` + +2. Start the API server: + ```bash + python -m src.api.app + ``` + +3. Access the API: + - Interactive docs: http://localhost:8000/docs + - Health check: http://localhost:8000/health + - Compliance check: POST http://localhost:8000/compliance-check + +### Run with Docker Compose + +1. Build and start the service: + ```bash + docker-compose up --build + ``` + +2. Access the service: + - http://localhost:8000/docs + - http://localhost:8000/health + +3. Stop the service: + ```bash + docker-compose down + ``` + +4. View logs: + ```bash + docker-compose logs -f + ``` + +## API Endpoints + +### 1. Health Check +``` +GET /health +``` + +Response: +```json +{ + "status": "ok", + "loaded_models": { + "static_graph": true, + "eventic_graph": true, + "embeddings_model": true, + "faiss_index": true + } +} +``` + +### 2. Compliance Check +``` +POST /compliance-check +Content-Type: application/json +``` + +Request body: +```json +{ + "text": "Your policy text here...", + "lambda_thresh": 0.75, + "hop_k": 1, + "max_triples": 60, + "prefer_local": false, + "openai_model": "gpt-3.5-turbo" +} +``` + +Response: +```json +{ + "verdict": "pass", + "evidence": [], + "triples_text": "- Entity1 relatedTo Entity2\n...", + "llm_reply": "...", + "hits": ["node1", "node2"], + "P": ["node3"], + "N": ["node4", "node5"] +} +``` + +## Deployment Options + +### Option 1: Local Docker (Development) +Use `docker-compose up` for local testing and development. + +### Option 2: Cloud VM (AWS EC2, GCP Compute, Azure VM) +1. Push your image to a container registry (Docker Hub, ECR, GCR): + ```bash + docker build -t lexguard:latest . + docker tag lexguard:latest docker.io/username/lexguard:latest + docker push docker.io/username/lexguard:latest + ``` + +2. Deploy on VM: + ```bash + # SSH into VM + ssh user@vm-ip + + # Install Docker + curl -fsSL https://get.docker.com -o get-docker.sh + sudo sh get-docker.sh + + # Pull and run + docker run -p 8000:8000 \ + -v /path/to/data:/app/data:ro \ + docker.io/username/lexguard:latest + ``` + +### Option 3: Managed Container Service +**AWS ECS**, **Google Cloud Run**, **Azure Container Instances**, or **Railway**: + +Example for Railway.app: +1. Connect your GitHub repo +2. Railway auto-detects Dockerfile +3. Set environment variables (if needed) +4. Deploy with `git push` + +Example for Google Cloud Run: +```bash +gcloud run deploy lexguard \ + --source . \ + --platform managed \ + --region us-central1 \ + --allow-unauthenticated +``` + +### Option 4: Kubernetes +For larger deployments, use Kubernetes: + +1. Create a simple deployment manifest: +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: lexguard +spec: + replicas: 2 + selector: + matchLabels: + app: lexguard + template: + metadata: + labels: + app: lexguard + spec: + containers: + - name: lexguard + image: username/lexguard:latest + ports: + - containerPort: 8000 + livenessProbe: + httpGet: + path: /health + port: 8000 + initialDelaySeconds: 10 + periodSeconds: 30 + volumeMounts: + - name: data + mountPath: /app/data + readOnly: true + volumes: + - name: data + hostPath: + path: /path/to/data +``` + +2. Deploy: +```bash +kubectl apply -f deployment.yaml +kubectl port-forward svc/lexguard 8000:8000 +``` + +## Environment Variables + +- **PORT**: API server port (default: 8000) +- **OPENAI_API_KEY**: OpenAI API key (optional, for cloud-based inference) +- **PYTHONUNBUFFERED**: Set to 1 for real-time logs in containers + +## Monitoring & Logging + +### Local Logging +The API logs to stdout with timestamps and levels. Docker Compose captures these: +```bash +docker-compose logs -f lexguard-api +``` + +### Production Logging +For production, consider: +- **ELK Stack** (Elasticsearch, Logstash, Kibana) +- **CloudWatch** (AWS) +- **Stackdriver** (Google Cloud) +- **Application Insights** (Azure) + +### Metrics +Basic health metrics via `/health` endpoint. For advanced monitoring: +- Add **Prometheus** for metrics export +- Use **Grafana** for visualization +- Monitor API response times, error rates, model latency + +## Performance Tuning + +1. **Model Loading**: Pre-load models on startup (already done) +2. **Caching**: Consider caching embeddings for repeated texts +3. **Batch Processing**: For high throughput, add batch compliance check endpoint +4. **GPU**: If available, leverage GPU for embedding and LLM inference + - Set `CUDA_VISIBLE_DEVICES` in docker-compose environment + +## CI/CD Pipeline (GitHub Actions) + +Create `.github/workflows/deploy.yml`: +```yaml +name: Build and Deploy + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 + - uses: docker/build-push-action@v4 + with: + push: true + tags: username/lexguard:${{ github.sha }},username/lexguard:latest + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} +``` + +## Troubleshooting + +### Models not loading +- Check data directory path in `src/api/app.py` +- Verify files exist: `data/static_graph.gpickle`, `data/eventic_graph.gpickle` + +### Out of memory +- Run with limited model: Use `prefer_local: true` with smaller model +- Increase Docker memory limit in docker-compose.yml `mem_limit` + +### Slow inference +- Enable GPU support +- Consider model quantization +- Add caching layer + +## Next Steps + +1. ✅ FastAPI service created +2. ✅ Dockerfile created +3. ✅ Docker Compose configured +4. ⏳ Add monitoring (Prometheus + Grafana) +5. ⏳ Set up CI/CD (GitHub Actions) +6. ⏳ Deploy to cloud provider +7. ⏳ Add API authentication/rate limiting diff --git a/guides/MLOPS_BEGINNER_GUIDE.md b/guides/MLOPS_BEGINNER_GUIDE.md new file mode 100644 index 0000000..5a109b2 --- /dev/null +++ b/guides/MLOPS_BEGINNER_GUIDE.md @@ -0,0 +1,301 @@ +# MLOps for Beginners - Step by Step + +## What Is MLOps? + +Think of it like this: + +### Before MLOps (Just a Script) +``` +You: python rag_runner.py +Output: results.json ✓ +But: Only works on YOUR computer, hard to use, not scalable +``` + +### After MLOps (Production Ready) +``` +Anyone: Makes HTTP request + ↓ +Your service answers via API + ↓ +Works everywhere (laptop, server, cloud) + ↓ +Easy to scale, monitor, update +``` + +--- + +## The 3 Layers (Simple Version) + +### Layer 1: Application (What You Built) +``` +YOU ALREADY HAVE THIS ✓ +├── src/retriever_rag/rag_runner.py ← The core logic +└── Works locally: python src/retriever_rag/rag_runner.py +``` + +### Layer 2: API Service (We Added This) +``` +NEW: Makes the script accessible +├── src/api/app.py ← Wraps rag_runner.py as a web service +└── Access via: http://localhost:8000 +``` + +### Layer 3: Container (We Added This) +``` +NEW: Makes it portable +├── Dockerfile ← Instructions to package everything +└── Result: Works on any computer/server +``` + +--- + +## Simple Analogy + +**Without Docker:** +``` +Your Laptop: Python 3.12, sentence-transformers 5.1, torch 2.8, ... +Friend's Laptop: Python 3.10, sentence-transformers 4.0, cuda 11, ... +Result: ❌ "It works on my machine but not yours" +``` + +**With Docker:** +``` +Dockerfile says: "Use Python 3.12, install these exact versions" +My Laptop: ✓ Works +Friend's Laptop: ✓ Works +AWS Server: ✓ Works +Result: ✓ Consistency everywhere +``` + +--- + +## Quick Start (Follow This Exactly) + +### Step 1: Install Docker +- Windows/Mac: Download [Docker Desktop](https://www.docker.com/products/docker-desktop) +- Linux: + ```bash + curl -fsSL https://get.docker.com -o get-docker.sh + sudo sh get-docker.sh + ``` + +### Step 2: Navigate to Project +```bash +cd /workspaces/comp_check +``` + +### Step 3: Build & Run (One Command) +```bash +docker-compose up --build +``` + +That's it! After a few minutes (first time is slow), you'll see: +``` +lexguard-api | INFO: Application startup complete +lexguard-api | INFO: Uvicorn running on http://0.0.0.0:8000 +``` + +### Step 4: Test It Works +Open a browser: http://localhost:8000/docs + +You should see an interactive API documentation page. + +### Step 5: Try the API +Click the big green "Try it out" button on the `/compliance-check` endpoint. + +### Step 6: Stop It +Press `Ctrl+C` in terminal, or run: +```bash +docker-compose down +``` + +--- + +## What Each Command Does + +| Command | What It Does | +|---------|-------------| +| `docker-compose up --build` | Build container + start service | +| `docker-compose logs -f` | Watch live logs | +| `docker-compose ps` | Show running containers | +| `docker-compose down` | Stop everything | +| `docker build .` | Just build (no run) | + +--- + +## Understanding the Files (In Plain English) + +### `src/api/app.py` +**What it is**: A web version of your script +```python +@app.post("/compliance-check") +def check(text): + # This is what rag_runner.py does, but via HTTP + return results +``` +**How to use**: Browser or Python requests library + +### `Dockerfile` +**What it is**: Recipe to make your app portable +``` +1. Start with Python 3.12 +2. Install required system packages +3. Install Python libraries +4. Copy your code +5. Run the app +``` +**Why**: So it works the same everywhere + +### `docker-compose.yml` +**What it is**: Shortcut to run Docker without typing long commands +```yaml +- Instead of: docker run -p 8000:8000 -v data:/app/data ... +- Just use: docker-compose up +``` + +### `.github/workflows/ci.yml` +**What it is**: Automatic testing when you push to GitHub +**Why**: Catches bugs before deployment + +--- + +## The Flow (Visual) + +``` +┌─────────────────────────────────┐ +│ Your Browser / Mobile App │ +│ Makes HTTP request │ +└────────────┬────────────────────┘ + │ + │ GET /health + │ POST /compliance-check + ↓ +┌─────────────────────────────────┐ +│ FastAPI Service (app.py) │ +│ - Receives request │ +│ - Processes it │ +│ - Returns JSON response │ +└────────────┬────────────────────┘ + │ + ↓ +┌─────────────────────────────────┐ +│ RAG Pipeline │ +│ - rag_runner.py logic │ +│ - Embeddings, graphs, LLM │ +└────────────┬────────────────────┘ + │ + ↓ +┌─────────────────────────────────┐ +│ Data Files │ +│ - chunks.json │ +│ - static_graph.gpickle │ +│ - faiss.index │ +└─────────────────────────────────┘ +``` + +--- + +## Common Questions for Beginners + +### Q: Why do I need Docker? +**A**: Same setup works on laptop, server, and cloud. No "works on my machine" problems. + +### Q: Why FastAPI? +**A**: Makes your Python script accessible as a web service anyone can use. + +### Q: Can I just run the script without Docker? +**A**: Yes! For development: +```bash +python -m src.api.app +# Then visit http://localhost:8000/docs +``` +(But Docker is better for production) + +### Q: What's the difference between docker-compose and Docker? +**A**: +- **Docker**: Container technology (the engine) +- **docker-compose**: Shortcut to manage containers (the remote control) + +### Q: How do I deploy this to the internet? +**A**: Several options (pick one): +1. **Beginner**: Use Railway.app (auto-deploys from GitHub) +2. **Intermediate**: AWS EC2 + Docker +3. **Advanced**: Kubernetes + +--- + +## Your Next Steps + +### Now (Today) +1. ✅ Read this file +2. ✅ Make sure Docker is installed +3. ✅ Run `docker-compose up --build` +4. ✅ Visit http://localhost:8000/docs + +### Tomorrow +- Learn the `/health` endpoint (checks if service is alive) +- Learn the `/compliance-check` endpoint (your main API) +- Test with `python test_api.py` + +### This Week +- Deploy to a free cloud service (Railway, Render, or Google Cloud Run) +- Monitor the logs +- Make a simple frontend to use the API + +### This Month +- Add authentication (API keys) +- Add metrics/monitoring +- Learn Kubernetes basics + +--- + +## Debugging Tips + +### Build fails? +```bash +docker-compose down -v # Clean everything +docker-compose up --build # Fresh build +``` + +### Port 8000 already in use? +```bash +# Kill whatever's using port 8000 +lsof -i :8000 +kill -9 + +# Or use different port in docker-compose.yml +ports: + - "8001:8000" # Change first 8000 to 8001 +``` + +### Want to see what's in the container? +```bash +docker-compose exec lexguard-api bash +ls -la /app/data # Explore inside +``` + +--- + +## Most Important Thing + +**You don't need to understand everything right now.** + +Just focus on: +1. Run `docker-compose up` +2. Visit http://localhost:8000/docs +3. Click "Try it out" on an endpoint +4. Watch the magic happen + +The rest will make sense with time. MLOps is a journey, not a sprint. + +--- + +## Questions? + +Ask me about: +- ❓ What does this error mean? +- ❓ How do I deploy to AWS? +- ❓ What's a healthcheck? +- ❓ How do I add authentication? + +I'll explain in simple terms. 🚀 diff --git a/guides/NO_DOCKER_SETUP.md b/guides/NO_DOCKER_SETUP.md new file mode 100644 index 0000000..73ba898 --- /dev/null +++ b/guides/NO_DOCKER_SETUP.md @@ -0,0 +1,127 @@ +# MLOps Without Docker (Codespace Edition) + +## The Problem +Docker builds are resource-heavy and dying in your codespace. + +## The Solution +Run the API directly - it's simpler and works perfectly for learning! + +--- + +## Setup (5 minutes) + +### Step 1: Install Dependencies +```bash +cd /workspaces/comp_check +pip install -r requirements.txt +``` + +(This uses installation cache and takes 2-3 minutes) + +### Step 2: Start the API +```bash +python -m src.api.app +``` + +### Step 3: Test in Browser +Open: http://localhost:8000/docs + +--- + +## What You Get + +✅ **Same API** - All endpoints work +✅ **Same MLOps** - Just without Docker container +✅ **Easier** - Fewer things to debug +✅ **Good for Learning** - Understand the concepts first + +--- + +## Commands You'll Use + +```bash +# Start API +python -m src.api.app + +# In another terminal, test it +python test_api.py --url http://localhost:8000 + +# Stop API +Ctrl + C +``` + +--- + +## Deploy to Cloud (When Ready) + +Once you understand MLOps on codespace, deploy to: + +**Option 1: Railway.app** (Easiest) +- Create account (free) +- Connect GitHub +- Railway auto-detects Python + deploys +- No Docker needed + +**Option 2: Google Cloud Run** (Also Easy) +- Upload code to GitHub +- Cloud Run handles deployment +- 2 million free requests/month + +**Option 3: Heroku** (Classic) +- Old but reliable +- 1 free tier per account + +--- + +## Why This Is Better for NOW + +| Aspect | Docker | Direct | +|--------|--------|--------| +| Setup time | 15+ min | 3 min | +| Disk space | 4-5 GB | 500 MB | +| Debugging | Harder | Easy | +| Learning | Indirect | Direct | +| Production? | Yes | Use the other methods | + +--- + +## Getting Started + +```bash +cd /workspaces/comp_check + +# Install +pip install -r requirements.txt + +# Run +python -m src.api.app + +# Then in browser +http://localhost:8000/docs +``` + +That's it! 🚀 + +--- + +## When You Need Docker + +Docker is needed when: +- ✅ Deploying to production servers +- ✅ Running on different machines (Mac/Windows/Linux differences) +- ✅ Complex system dependencies +- ✅ Scaling to multiple servers + +**For learning? Start without it.** + +--- + +## Next Steps + +1. Get the API running locally +2. Understand each endpoint +3. Make requests from Python +4. Then deploy to cloud +5. Then learn Docker for production + +You'll understand MLOps better this way! 📚 diff --git a/guides/START_HERE.md b/guides/START_HERE.md new file mode 100644 index 0000000..126e673 --- /dev/null +++ b/guides/START_HERE.md @@ -0,0 +1,217 @@ +# 🚀 START HERE - MLOps Setup (30 minutes) + +## IF THIS IS YOUR FIRST TIME, FOLLOW THIS EXACTLY + +### Step 1: Check Docker Is Installed (2 min) + +```bash +docker --version +docker-compose --version +``` + +**If you see version numbers, you're good.** ✓ + +**If you see "command not found":** +- Download [Docker Desktop](https://www.docker.com/products/docker-desktop) +- Install it +- Restart terminal + +--- + +### Step 2: Build & Run (10 min) + +Go to project folder: +```bash +cd /workspaces/comp_check +``` + +Run this ONE command: +```bash +docker-compose up --build +``` + +**Wait for these messages:** +``` +lexguard-api | INFO: Uvicorn running on http://0.0.0.0:8000 +lexguard-api | INFO: Application startup complete +``` + +**If it gets stuck on "Installing requirements...": Don't worry, just wait. First build takes 5-10 minutes.** + +--- + +### Step 3: Open Your Browser (1 min) + +While the command is running, open: +``` +http://localhost:8000/docs +``` + +You should see an interactive API page with this: +- **GET /health** - Check if service is alive +- **POST /compliance-check** - Test the compliance check +- **GET /** - API info + +--- + +### Step 4: Test the API (2 min) + +1. Click on **POST /compliance-check** +2. Click the blue **"Try it out"** button +3. You'll see a text box with sample data +4. Click **"Execute"** button +5. Scroll down to see the **Response** + +Should see something like: +```json +{ + "verdict": "pass", + "evidence": [], + "triples_text": "...", + "hits": [...] +} +``` + +✅ **Congratulations! Your MLOps setup is working!** + +--- + +### Step 5: Stop the Service (1 min) + +Go back to terminal and press: +``` +Ctrl + C +``` + +--- + +## What You Just Did + +| What | Explanation | +|------|-------------| +| `docker-compose up --build` | Create a container + run your app inside | +| `http://localhost:8000/docs` | Web interface to interact with your API | +| Container | A box that has Python, your code, and everything needed | + +--- + +## Now What? + +### Option A: Keep Learning (Recommended) +Read: `MLOPS_BEGINNER_GUIDE.md` in this folder + +### Option B: Deploy to Internet (Advanced) +Jump to: `DEPLOYMENT.md` + +### Option C: Test with a Script +```bash +# (while your service is running in another terminal) +python test_api.py --url http://localhost:8000 +``` + +--- + +## If Something Goes Wrong + +### Error: "Port 8000 already in use" +```bash +# Solution 1: Use a different port +# Edit docker-compose.yml, change this line: +ports: + - "8001:8000" # Use 8001 instead + +# Solution 2: Kill what's using port 8000 +lsof -i :8000 +kill -9 +``` + +### Error: "Docker daemon not running" +- On Windows/Mac: Open Docker Desktop app +- On Linux: Run `sudo systemctl start docker` + +### Error: "Installation failed" +```bash +# Clean and rebuild +docker-compose down -v +docker-compose up --build +``` + +### Logs are confusing? +That's normal! Just wait for "`Application startup complete`" + +--- + +## Common Questions + +**Q: Does my laptop need a GPU?** +A: No! It works fine on CPU (slower, but fine for learning). + +**Q: Can I edit the code?** +A: Yes! Just edit files, then `docker-compose down` and `docker-compose up --build` again. + +**Q: Why does it take so long first time?** +A: Downloading Python packages (1 GB+ of files). Second build is faster (uses cache). + +**Q: After I stop it, do I lose my data?** +A: No, your data is safe. Just restart with `docker-compose up`. + +--- + +## Next Steps (Learning Path) + +### Week 1 (YOU ARE HERE ✓) +- [x] Get service running with Docker +- [ ] Test API endpoints + +### Week 2 +- [ ] Read MLOPS_BEGINNER_GUIDE.md +- [ ] Understand what each file does +- [ ] Try calling API from Python script + +### Week 3 +- [ ] Deploy to free cloud service (Railway.app or Render.com) +- [ ] Learn about monitoring/logs +- [ ] Add API documentation to your GitHub + +### Week 4+ +- [ ] Learn Kubernetes (if interested) +- [ ] Add authentication +- [ ] Build a simple frontend + +--- + +## Cheat Sheet (Commands You'll Use) + +```bash +# Start service +docker-compose up --build + +# Stop service +Ctrl + C + +# View logs +docker-compose logs -f + +# Enter container terminal +docker-compose exec lexguard-api bash + +# Clean everything +docker-compose down -v + +# Just build (don't run) +docker build . + +# Show running containers +docker-compose ps +``` + +--- + +## You're Ready! 🎉 + +Now go to browser and visit: +``` +http://localhost:8000/docs +``` + +Enjoy your MLOps journey! From f9e16df5365bb790a052d0469c3d5051dc36beb6 Mon Sep 17 00:00:00 2001 From: Lomesh2000 <80121664+Lomesh2000@users.noreply.github.com> Date: Thu, 9 Apr 2026 13:02:26 +0000 Subject: [PATCH 07/18] FEAT --- .gitignore | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ed4084 --- /dev/null +++ b/.gitignore @@ -0,0 +1,80 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +env/ +venv/ +ENV/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Virtual environments +.venv +pip-log.txt +pip-delete-this-directory.txt + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ +.DS_Store + +# Environment +.env +.env.local +.env.*.local + +# Logs +*.log +logs/ + +# Data/artifacts +*.pkl +*.pickle +*.joblib +*.h5 +*.pb +.cache/ + +# IDE Pycharm +.idea/ + +# Jupyter +.ipynb_checkpoints/ +*.ipynb + +# Test coverage +.coverage +.pytest_cache/ +htmlcov/ + +# Build artifacts +dist/ +build/ +*.egg-info/ + +# OS +.DS_Store +Thumbs.db + +# Project specific +/data/preds.json +/data/preds.json.partial +/tmp/ From 043ca66fbf2a6f73fd2ce38ee56b3002d94199cb Mon Sep 17 00:00:00 2001 From: Lomesh2000 <80121664+Lomesh2000@users.noreply.github.com> Date: Fri, 10 Apr 2026 16:53:04 +0000 Subject: [PATCH 08/18] feat(backend): add RAG API, PDF chunk analysis, health check, and Docker setup --- README.md | 97 +++++---------------------------------------- docker-compose.yml | 1 + requirements.txt | Bin 3684 -> 1928 bytes src/api/app.py | 36 +++++++++++++++-- 4 files changed, 44 insertions(+), 90 deletions(-) diff --git a/README.md b/README.md index 95404c3..d59ca6e 100644 --- a/README.md +++ b/README.md @@ -1,94 +1,19 @@ -# LexGuard -# Policy Compliance Verification System (Offline RAG-LLM Web App) +# LexGuard: Explainable Graph-based RAG Compliance Engine -## Problem Statement - -We aim to develop an **offline, LLM-powered web application** for automated policy compliance verification across heterogeneous contexts, such as **GDPR-related regulations between countries, contractual clauses in internship agreements versus institutional policy documents, or HR guidelines (e.g., leave policies) against organizational rulebooks**. - -Since the documents involved are often **large, sensitive, and security-critical**, they cannot be shared with external online LLM services. Moreover, their size may **exceed the native context window** of modern language models, necessitating the integration of a **retrieval-augmented generation (RAG) pipeline**. - -In this setup, policy documents would be ingested into a **vector database** (or equivalent retrieval layer), enabling efficient semantic search to dynamically retrieve only the most relevant segments for context construction during queries. A crucial challenge lies in **domain-aware vectorization**, where embeddings must be generated with respect to the compliance-checking objectives rather than generic semantic similarity. - -The system should be designed as a **modular, API-driven architecture**, where components (e.g., embedding service, retrieval engine, reasoning agent, compliance evaluator) remain **loosely coupled** to allow easy substitution of LLMs or AI agents without disrupting the overall workflow. +## 🚀 Overview +LexGuard is an AI-powered compliance analysis system that uses a hybrid Graph + RAG pipeline to evaluate policy documents and detect violations with explainability. --- -## Team Structure & Responsibilities - -### **Student A — Data Collection, Curation & Governance** -- Acquire GDPR texts, institutional policies, HR manuals, contracts, etc. -- Redaction, de-duplication, versioning, and schema design. -- Build a labeled dataset for evaluation. -- Deliverables: `datasets/`, schema/ontology, annotation guidelines, data card. - -### **Student B — Ingestion, Chunking, Embedding & Retrieval** -- Implement document parsers (PDF/DOCX/HTML). -- Domain-aware chunking + embeddings. -- Setup vector database + retrieval pipeline (semantic + keyword hybrid). -- Deliverables: Ingestion service, vector DB, retrieval evaluation report. - -### **Student C — Reasoning, Compliance Engine & Evaluation** -- Design decision schema (status, evidence, rationale, confidence). -- Develop compliance assessment engine (prompting + rule library). -- Build evaluation harness with precision/recall, evidence alignment metrics. -- Deliverables: Compliance engine API, evaluation reports, error analysis. - -### **Student D — Offline Web App, APIs & Deployment** -- Build offline web UI (upload, search, compare, assess). -- Develop API gateway for modular services. -- Package everything in Docker Compose for offline deployment. -- Deliverables: Web UI, REST APIs, deployment scripts, observability dashboards. - ---- -## Notion Page -https://rust-mandolin-74e.notion.site/LexGuard-25ca338f8c5b80aca495c55c3bdc8ea2?pvs=74 - ---- -## Potential datasets for testing the pipeline - -https://stanfordnlp.github.io/contract-nli/ - -The ContractNLI dataset contains contracts (NDAs), fixed hypotheses (requirements), and human annotations that say whether each requirement is entailed (compliant), contradicted (noncompliant), or not mentioned (uncertain), along with the evidence spans in the contract text. - -I converted the raw JSON format into a structured CSV/Excel file where each row contains: ---- reference_clause → the hypothesis text (requirement) ---- target_clause → the evidence span from the contract ----compliance → one of compliant, noncompliant, or uncertain ----source_file → original contract filename - -### Why this is useful - -Our final system will take two documents (a reference requirements sheet and a target contract) and produce a compliance report. - -The ContractNLI-based CSV acts as a testbed for this pipeline because: - -Each row is a mini version of our task (requirement vs contract clause → compliance label). - -The compliance labels are ground truth, so we can check if our pipeline makes the right predictions. - ---- -## Project Milestones - -### **Week 1–3 — Foundations** -Identified references: -[28/08/25, 11:19:15 AM] Vinu: https://www.meity.gov.in/static/uploads/2024/06/2bf1f0e9f04e6fb4f8fef35e82c42aa5.pdf -[28/08/25, 11:19:30 AM] Vinu: https://aclanthology.org/2025.coling-main.178.pdf - -Discuss the above paper and expand on the ideas—similar to the negation documents we discussed, what other strategies could be explored to improve the system’s accuracy? Identify and discuss relevant datasets in this context, and provide a concrete example based on the Digital Personal Data Protection Act, 2023. - -### **Week 4–6 — RAG & Engine v1** - - -### **Week 7–8 — ** - - -### **Week 9–11 — ** +## 🔥 Key Features +- 📄 PDF Upload & Chunk-based Analysis +- 🧠 Graph-based Retrieval (Eventic + Static Graphs) +- 🔍 Explainable Outputs (Hits, Positive & Negative Nodes) +- ⚡ LLM-based Reasoning (OpenAI / Local) +- 🎛 Tunable RAG Parameters (lambda, hop_k, etc.) +- 📊 Interactive UI Dashboard --- -### Participation -- Subham || -- Trupti | -- Divyam | -- Owais | +## 🧠 Architecture diff --git a/docker-compose.yml b/docker-compose.yml index c7ed2dd..a0feee8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,6 +15,7 @@ services: - NUMEXPR_NUM_THREADS=1 - OPENBLAS_NUM_THREADS=1 volumes: + - .:/app # Mount data directory for access to graphs and embeddings - ./data:/home/app/data:ro deploy: diff --git a/requirements.txt b/requirements.txt index 7fcbff0ad3cd5dd38fd985a4fc5329b256adb266..c9e419f41cac0474f4e9d24fde6507b65b9fb0e0 100644 GIT binary patch delta 106 zcmaDN)4{*NkCE4o!Ir^@L65-@hz%xJ^XN0$P5#QL2_)s2)cHZO24Gne5IH%NDHtfT ol1ULro@SB;lFykufutcbNJljDd`@GaI&-jEZVuVa3M`kH0m^b06aWAK delta 1211 zcmZWpzmF185T1nv!WlzlA~^{X3UaydV}U)ugcwU3EiM+ug5a`u#~laUE`*~nSJ;?X zU8XQsS=yQyYYP*t{2Q*(SXdbU1HYNaf{EF@2kgvz-}kV$Ev;_>GJ*#AO`L(r!{i9XNh@P72aYYgTvi1?VA1h$*$F{M*h&{yq zH6|5*VsFz;$&>ZrD*ij3?L*8G(kB4wk^~(S=Bs!vEud|z27it_7ZPodNb!&_M+k6; zQ>;jaWbA3i0GJ^T7OarPuntyDqX(#wcnGV^0R=&F9JM#f8iK`FCXY^d$G%~8*tPSX z=-Qwip~_inaG)UKiR>4>0gxgVF`%PLqKxx(eO*uNaL?XNHPn$NU)s0g@P*&mxsEyC zG4#)X7_947zA5T4_?|=e5PQVw^0i$^H&k1N>YPp#_s2k(q1B@91cM{FlHn@K7-Mv* z10wHb>?Bs#*aYu=^iF(?7(_vfi-|%(he7kEh>z64#VSu+Zd|@8JQdR_)LNx2F^w_| zGZc8#(-udT8R`wW%o zz)Tsg73$|WkX%EVYs1^td(h#R$)e@(H=yX%;h)Kpwa1^VTuHEGlIq$UgSNTKQP0|( zNo}Xisd0Ds%*sBIn4q~jtLE%8HPzT@{!Bvcv8OGWz~+cgD*vzP@q<(jQ|fXrmEYP- Fz+V7<#=ign diff --git a/src/api/app.py b/src/api/app.py index cb0135b..1cbda96 100644 --- a/src/api/app.py +++ b/src/api/app.py @@ -292,6 +292,16 @@ def init_global_state(): version="1.0.0", ) +from fastapi.middleware.cors import CORSMiddleware + +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # allow all (for dev) + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + @app.on_event("startup") async def startup_event(): @@ -304,13 +314,32 @@ async def startup_event(): raise +# @app.get("/health", response_model=HealthCheckResponse) +# async def health_check(): +# """Health check endpoint.""" +# return HealthCheckResponse( +# status="ok" if all( +# [_static_graph, _eventic_graph, _embeddings_model, _eventic_nodes, _eventic_embs] +# ) else "degraded", +# loaded_models={ +# "static_graph": _static_graph is not None, +# "eventic_graph": _eventic_graph is not None, +# "embeddings_model": _embeddings_model is not None, +# "faiss_index": _faiss_index is not None, +# }, +# ) + @app.get("/health", response_model=HealthCheckResponse) async def health_check(): """Health check endpoint.""" return HealthCheckResponse( - status="ok" if all( - [_static_graph, _eventic_graph, _embeddings_model, _eventic_nodes, _eventic_embs] - ) else "degraded", + status="ok" if all([ + _static_graph is not None, + _eventic_graph is not None, + _embeddings_model is not None, + _eventic_nodes is not None, + _eventic_embs is not None, + ]) else "degraded", loaded_models={ "static_graph": _static_graph is not None, "eventic_graph": _eventic_graph is not None, @@ -319,7 +348,6 @@ async def health_check(): }, ) - @app.post("/compliance-check", response_model=ComplianceCheckResponse) async def compliance_check(request: ComplianceCheckRequest): """ From 66c7ff02fc31f3eca15969ef3e3d2fddd332afb1 Mon Sep 17 00:00:00 2001 From: Lomesh2000 <80121664+Lomesh2000@users.noreply.github.com> Date: Fri, 10 Apr 2026 16:53:13 +0000 Subject: [PATCH 09/18] feat(frontend): initialize React + Vite app with Tailwind CSS v4 --- frontend/.gitignore | 24 + frontend/eslint.config.js | 29 + frontend/index.html | 13 + frontend/package-lock.json | 3269 +++++++++++++++++++++++++++++++++ frontend/package.json | 32 + frontend/public/favicon.svg | 1 + frontend/public/icons.svg | 24 + frontend/src/App.css | 184 ++ frontend/src/App.jsx | 9 + frontend/src/assets/hero.png | Bin 0 -> 44919 bytes frontend/src/assets/react.svg | 1 + frontend/src/assets/vite.svg | 1 + frontend/src/index.css | 125 ++ frontend/src/main.jsx | 10 + frontend/vite.config.js | 10 + 15 files changed, 3732 insertions(+) create mode 100644 frontend/.gitignore create mode 100644 frontend/eslint.config.js create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/favicon.svg create mode 100644 frontend/public/icons.svg create mode 100644 frontend/src/App.css create mode 100644 frontend/src/App.jsx create mode 100644 frontend/src/assets/hero.png create mode 100644 frontend/src/assets/react.svg create mode 100644 frontend/src/assets/vite.svg create mode 100644 frontend/src/index.css create mode 100644 frontend/src/main.jsx create mode 100644 frontend/vite.config.js diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js new file mode 100644 index 0000000..4fa125d --- /dev/null +++ b/frontend/eslint.config.js @@ -0,0 +1,29 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{js,jsx}'], + extends: [ + js.configs.recommended, + reactHooks.configs.flat.recommended, + reactRefresh.configs.vite, + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + rules: { + 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }], + }, + }, +]) diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..f94d687 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,13 @@ + + + + + + + frontend + + +
    + + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..1b559bc --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,3269 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.0.0", + "dependencies": { + "axios": "^1.15.0", + "react": "^19.2.4", + "react-dom": "^19.2.4" + }, + "devDependencies": { + "@eslint/js": "^9.39.4", + "@tailwindcss/vite": "^4.2.2", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.1", + "autoprefixer": "^10.4.27", + "eslint": "^9.39.4", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.5.2", + "globals": "^17.4.0", + "postcss": "^8.5.9", + "tailwindcss": "^4.2.2", + "vite": "^8.0.4" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.3.tgz", + "integrity": "sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.124.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.124.0.tgz", + "integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.15.tgz", + "integrity": "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.15.tgz", + "integrity": "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.9.2", + "@emnapi/runtime": "1.9.2", + "@napi-rs/wasm-runtime": "^1.1.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz", + "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tailwindcss/node": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz", + "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.19.0", + "jiti": "^2.6.1", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.2.2" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz", + "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.2.2", + "@tailwindcss/oxide-darwin-arm64": "4.2.2", + "@tailwindcss/oxide-darwin-x64": "4.2.2", + "@tailwindcss/oxide-freebsd-x64": "4.2.2", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.2", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.2", + "@tailwindcss/oxide-linux-x64-musl": "4.2.2", + "@tailwindcss/oxide-wasm32-wasi": "4.2.2", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.2" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz", + "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz", + "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz", + "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz", + "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz", + "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz", + "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz", + "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz", + "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz", + "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz", + "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.8.1", + "@emnapi/runtime": "^1.8.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.1", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz", + "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz", + "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz", + "integrity": "sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.2.2", + "@tailwindcss/oxide": "4.2.2", + "tailwindcss": "4.2.2" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7 || ^8" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz", + "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-rc.7" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.27", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz", + "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001774", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.0.tgz", + "integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.17", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.17.tgz", + "integrity": "sha512-HdrkN8eVG2CXxeifv/VdJ4A4RSra1DTW8dc/hdxzhGHN8QePs6gKaWM9pHPcpCoxYZJuOZ8drHmbdpLHjCYjLA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", + "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001787", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001787.tgz", + "integrity": "sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.334", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.334.tgz", + "integrity": "sha512-mgjZAz7Jyx1SRCwEpy9wefDS7GvNPazLthHg8eQMJ76wBdGQQDW33TCrUTvQ4wzpmOrv2zrFoD3oNufMdyMpog==", + "dev": true, + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", + "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.2.tgz", + "integrity": "sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": "^9 || ^10" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", + "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "dev": true, + "license": "MIT" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.9.tgz", + "integrity": "sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", + "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.5" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rolldown": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.15.tgz", + "integrity": "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.124.0", + "@rolldown/pluginutils": "1.0.0-rc.15" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-x64": "1.0.0-rc.15", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.15", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.15", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.15", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.15", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15" + } + }, + "node_modules/rolldown/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.15.tgz", + "integrity": "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwindcss": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz", + "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz", + "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.8.tgz", + "integrity": "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.8", + "rolldown": "1.0.0-rc.15", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..bb9e863 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,32 @@ +{ + "name": "frontend", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.15.0", + "react": "^19.2.4", + "react-dom": "^19.2.4" + }, + "devDependencies": { + "@eslint/js": "^9.39.4", + "@tailwindcss/vite": "^4.2.2", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.1", + "autoprefixer": "^10.4.27", + "eslint": "^9.39.4", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.5.2", + "globals": "^17.4.0", + "postcss": "^8.5.9", + "tailwindcss": "^4.2.2", + "vite": "^8.0.4" + } +} diff --git a/frontend/public/favicon.svg b/frontend/public/favicon.svg new file mode 100644 index 0000000..6893eb1 --- /dev/null +++ b/frontend/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/public/icons.svg b/frontend/public/icons.svg new file mode 100644 index 0000000..e952219 --- /dev/null +++ b/frontend/public/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/App.css b/frontend/src/App.css new file mode 100644 index 0000000..f90339d --- /dev/null +++ b/frontend/src/App.css @@ -0,0 +1,184 @@ +.counter { + font-size: 16px; + padding: 5px 10px; + border-radius: 5px; + color: var(--accent); + background: var(--accent-bg); + border: 2px solid transparent; + transition: border-color 0.3s; + margin-bottom: 24px; + + &:hover { + border-color: var(--accent-border); + } + &:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; + } +} + +.hero { + position: relative; + + .base, + .framework, + .vite { + inset-inline: 0; + margin: 0 auto; + } + + .base { + width: 170px; + position: relative; + z-index: 0; + } + + .framework, + .vite { + position: absolute; + } + + .framework { + z-index: 1; + top: 34px; + height: 28px; + transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg) + scale(1.4); + } + + .vite { + z-index: 0; + top: 107px; + height: 26px; + width: auto; + transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg) + scale(0.8); + } +} + +#center { + display: flex; + flex-direction: column; + gap: 25px; + place-content: center; + place-items: center; + flex-grow: 1; + + @media (max-width: 1024px) { + padding: 32px 20px 24px; + gap: 18px; + } +} + +#next-steps { + display: flex; + border-top: 1px solid var(--border); + text-align: left; + + & > div { + flex: 1 1 0; + padding: 32px; + @media (max-width: 1024px) { + padding: 24px 20px; + } + } + + .icon { + margin-bottom: 16px; + width: 22px; + height: 22px; + } + + @media (max-width: 1024px) { + flex-direction: column; + text-align: center; + } +} + +#docs { + border-right: 1px solid var(--border); + + @media (max-width: 1024px) { + border-right: none; + border-bottom: 1px solid var(--border); + } +} + +#next-steps ul { + list-style: none; + padding: 0; + display: flex; + gap: 8px; + margin: 32px 0 0; + + .logo { + height: 18px; + } + + a { + color: var(--text-h); + font-size: 16px; + border-radius: 6px; + background: var(--social-bg); + display: flex; + padding: 6px 12px; + align-items: center; + gap: 8px; + text-decoration: none; + transition: box-shadow 0.3s; + + &:hover { + box-shadow: var(--shadow); + } + .button-icon { + height: 18px; + width: 18px; + } + } + + @media (max-width: 1024px) { + margin-top: 20px; + flex-wrap: wrap; + justify-content: center; + + li { + flex: 1 1 calc(50% - 8px); + } + + a { + width: 100%; + justify-content: center; + box-sizing: border-box; + } + } +} + +#spacer { + height: 88px; + border-top: 1px solid var(--border); + @media (max-width: 1024px) { + height: 48px; + } +} + +.ticks { + position: relative; + width: 100%; + + &::before, + &::after { + content: ''; + position: absolute; + top: -4.5px; + border: 5px solid transparent; + } + + &::before { + left: 0; + border-left-color: var(--border); + } + &::after { + right: 0; + border-right-color: var(--border); + } +} diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx new file mode 100644 index 0000000..7e7fa83 --- /dev/null +++ b/frontend/src/App.jsx @@ -0,0 +1,9 @@ +import Home from "./pages/Home"; + +export default function App() { + return ( +
    + +
    + ); +} \ No newline at end of file diff --git a/frontend/src/assets/hero.png b/frontend/src/assets/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..cc51a3d20ad4bc961b596a6adfd686685cd84bb0 GIT binary patch literal 44919 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 JPDHLkV1myZcL)Fg literal 0 HcmV?d00001 diff --git a/frontend/src/assets/react.svg b/frontend/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/frontend/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/vite.svg b/frontend/src/assets/vite.svg new file mode 100644 index 0000000..5101b67 --- /dev/null +++ b/frontend/src/assets/vite.svg @@ -0,0 +1 @@ +Vite diff --git a/frontend/src/index.css b/frontend/src/index.css new file mode 100644 index 0000000..75ac341 --- /dev/null +++ b/frontend/src/index.css @@ -0,0 +1,125 @@ +/* :root { + --text: #6b6375; + --text-h: #08060d; + --bg: #fff; + --border: #e5e4e7; + --code-bg: #f4f3ec; + --accent: #aa3bff; + --accent-bg: rgba(170, 59, 255, 0.1); + --accent-border: rgba(170, 59, 255, 0.5); + --social-bg: rgba(244, 243, 236, 0.5); + --shadow: + rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px; + + --sans: system-ui, 'Segoe UI', Roboto, sans-serif; + --heading: system-ui, 'Segoe UI', Roboto, sans-serif; + --mono: ui-monospace, Consolas, monospace; + + font: 18px/145% var(--sans); + letter-spacing: 0.18px; + color-scheme: light dark; + color: var(--text); + background: var(--bg); + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + @media (max-width: 1024px) { + font-size: 16px; + } +} + +@media (prefers-color-scheme: dark) { + :root { + --text: #9ca3af; + --text-h: #f3f4f6; + --bg: #16171d; + --border: #2e303a; + --code-bg: #1f2028; + --accent: #c084fc; + --accent-bg: rgba(192, 132, 252, 0.15); + --accent-border: rgba(192, 132, 252, 0.5); + --social-bg: rgba(47, 48, 58, 0.5); + --shadow: + rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px; + } + + #social .button-icon { + filter: invert(1) brightness(2); + } +} + +body { + margin: 0; +} + +#root { + width: 1126px; + max-width: 100%; + margin: 0 auto; + text-align: center; + border-inline: 1px solid var(--border); + min-height: 100svh; + display: flex; + flex-direction: column; + box-sizing: border-box; +} + +h1, +h2 { + font-family: var(--heading); + foexport default function App() { + return ( +
    +

    + Tailwind is working 🚀 +

    +
    + ) +}nt-weight: 500; + color: var(--text-h); +} + +h1 { + font-size: 56px; + letter-spacing: -1.68px; + margin: 32px 0; + @media (max-width: 1024px) { + font-size: 36px; + margin: 20px 0; + } +} +h2 { + font-size: 24px; + line-height: 118%; + letter-spacing: -0.24px; + margin: 0 0 8px; + @media (max-width: 1024px) { + font-size: 20px; + } +} +p { + margin: 0; +} + +code, +.counter { + font-family: var(--mono); + display: inline-flex; + border-radius: 4px; + color: var(--text-h); +} + +code { + font-size: 15px; + line-height: 135%; + padding: 4px 8px; + background: var(--code-bg); +} */ +/* +@tailwind base; +@tailwind components; +@tailwind utilities; */ + +@import "tailwindcss"; \ No newline at end of file diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx new file mode 100644 index 0000000..b9a1a6d --- /dev/null +++ b/frontend/src/main.jsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.jsx' + +createRoot(document.getElementById('root')).render( + + + , +) diff --git a/frontend/vite.config.js b/frontend/vite.config.js new file mode 100644 index 0000000..9930e28 --- /dev/null +++ b/frontend/vite.config.js @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import tailwindcss from '@tailwindcss/vite' + +export default defineConfig({ + plugins: [ + react(), + tailwindcss(), + ], +}) \ No newline at end of file From 80734e61f48713ee4d2247161f852c62c24bdbfc Mon Sep 17 00:00:00 2001 From: Lomesh2000 <80121664+Lomesh2000@users.noreply.github.com> Date: Fri, 10 Apr 2026 16:53:20 +0000 Subject: [PATCH 10/18] feat(ui): add compliance dashboard with chunk explorer, config panel, and graph insights --- frontend/src/components/ChunkList.jsx | 32 +++++ frontend/src/components/ConfigPanel.jsx | 78 ++++++++++++ frontend/src/components/UploadPanel.jsx | 111 ++++++++++++++++ frontend/src/pages/Home.jsx | 162 ++++++++++++++++++++++++ frontend/src/services/api.js | 46 +++++++ 5 files changed, 429 insertions(+) create mode 100644 frontend/src/components/ChunkList.jsx create mode 100644 frontend/src/components/ConfigPanel.jsx create mode 100644 frontend/src/components/UploadPanel.jsx create mode 100644 frontend/src/pages/Home.jsx create mode 100644 frontend/src/services/api.js diff --git a/frontend/src/components/ChunkList.jsx b/frontend/src/components/ChunkList.jsx new file mode 100644 index 0000000..0433a2a --- /dev/null +++ b/frontend/src/components/ChunkList.jsx @@ -0,0 +1,32 @@ +export default function ChunkList({ chunks, onSelect }) { + return ( +
    +

    Chunks

    + +
    + {chunks.map((chunk) => ( +
    onSelect(chunk)} + className={`p-4 rounded-lg cursor-pointer border transition-all duration-200 hover:scale-[1.02] ${ + chunk.verdict === "fail" + ? "bg-red-900/40 border-red-500 hover:bg-red-800/60" + : chunk.verdict === "pass" + ? "bg-green-900/40 border-green-500 hover:bg-green-800/60" + : "bg-gray-700 border-gray-600" + }`} + > +
    + Chunk {chunk.chunk_id} + {chunk.verdict} +
    + +

    + {chunk.text_preview}... +

    +
    + ))} +
    +
    + ); +} \ No newline at end of file diff --git a/frontend/src/components/ConfigPanel.jsx b/frontend/src/components/ConfigPanel.jsx new file mode 100644 index 0000000..01f3ff3 --- /dev/null +++ b/frontend/src/components/ConfigPanel.jsx @@ -0,0 +1,78 @@ +export default function ConfigPanel({ config, setConfig }) { + return ( +
    +

    Settings

    + + {/* Lambda Threshold */} +
    + + { + const val = parseFloat(e.target.value); + setConfig({ + ...config, + lambda_thresh: isNaN(val) ? 0 : val, + }); + }} + className="w-full" + /> +
    + + {/* Hop K */} +
    + + { + const val = parseInt(e.target.value); + setConfig({ + ...config, + hop_k: isNaN(val) ? 1 : val, + }); + }} + className="w-full bg-gray-900 p-2 rounded" + /> +
    + + {/* Max Triples */} +
    + + { + const val = parseInt(e.target.value); + setConfig({ + ...config, + max_triples: isNaN(val) ? 60 : val, + }); + }} + className="w-full bg-gray-900 p-2 rounded" + /> +
    + + {/* Prefer Local */} +
    + +
    +
    + ); +} \ No newline at end of file diff --git a/frontend/src/components/UploadPanel.jsx b/frontend/src/components/UploadPanel.jsx new file mode 100644 index 0000000..d5d787a --- /dev/null +++ b/frontend/src/components/UploadPanel.jsx @@ -0,0 +1,111 @@ +import { useState } from "react"; +import { complianceCheck, uploadPdfChunks } from "../services/api"; + import ConfigPanel from "./ConfigPanel"; + +export default function UploadPanel({ onResult }) { + const [text, setText] = useState(""); + const [file, setFile] = useState(null); + const [loading, setLoading] = useState(false); + + // Config (we’ll make UI for this later) + + const [config, setConfig] = useState({ + chunk_size: 500, + chunk_overlap: 100, + lambda_thresh: 0.75, + hop_k: 1, + max_triples: 60, + prefer_local: false, + }); + + // 🔹 Handle text submission + const handleTextSubmit = async () => { + if (!text.trim()) return; + + setLoading(true); + try { + const res = await complianceCheck({ + text, + ...config, + }); + onResult({ type: "text", data: res }); + } catch (err) { + console.error("FULL ERROR:", err); + + if (err.response) { + console.error("Backend Error:", err.response.data); + alert(JSON.stringify(err.response.data)); + } else { + alert(err.message); + } + } finally { + setLoading(false); + } + }; + + // 🔹 Handle PDF upload + const handleFileSubmit = async () => { + if (!file) return; + + setLoading(true); + try { + const res = await uploadPdfChunks(file, config); + onResult({ type: "pdf", data: res }); + } catch (err) { + console.error("FULL ERROR:", err); + + if (err.response) { + console.error("Backend Error:", err.response.data); + alert(JSON.stringify(err.response.data)); + } else { + alert(err.message); + } + }finally { + setLoading(false); + } + }; + + return ( +
    + + + + {/* Text Input */} +
    +

    Text Input

    +