├── og.jpg ├── .gitattributes ├── icons ├── icon.ico ├── icon-16x16.png ├── icon-32x32.png ├── apple-touch-icon.png ├── android-chrome-192x192.png ├── android-chrome-512x512.png └── site.webmanifest ├── netflix-ke-pitaji.gif ├── cinema-movie-logo-with-gradient-background-template_502990-937.avif ├── .github └── workflows │ └── semgrep.yml ├── sw.js ├── manifest.json ├── LICENSE ├── contact.html ├── README.md ├── center-atom.min.css ├── center-atom.css ├── style.min.css ├── index.html ├── script.min.js ├── style.css ├── privacy-policy.html ├── terms-and-conditions.html ├── script.js └── jquery.js /og.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulkitpareek18/netflix/HEAD/og.jpg -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulkitpareek18/netflix/HEAD/icons/icon.ico -------------------------------------------------------------------------------- /icons/icon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulkitpareek18/netflix/HEAD/icons/icon-16x16.png -------------------------------------------------------------------------------- /icons/icon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulkitpareek18/netflix/HEAD/icons/icon-32x32.png -------------------------------------------------------------------------------- /netflix-ke-pitaji.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulkitpareek18/netflix/HEAD/netflix-ke-pitaji.gif -------------------------------------------------------------------------------- /icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulkitpareek18/netflix/HEAD/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulkitpareek18/netflix/HEAD/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulkitpareek18/netflix/HEAD/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /cinema-movie-logo-with-gradient-background-template_502990-937.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulkitpareek18/netflix/HEAD/cinema-movie-logo-with-gradient-background-template_502990-937.avif -------------------------------------------------------------------------------- /icons/site.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /.github/workflows/semgrep.yml: -------------------------------------------------------------------------------- 1 | on: 2 | pull_request: {} 3 | push: 4 | branches: 5 | - main 6 | - master 7 | paths: 8 | - .github/workflows/semgrep.yml 9 | schedule: 10 | # random HH:MM to avoid a load spike on GitHub Actions at 00:00 11 | - cron: 18 0 * * * 12 | name: Semgrep 13 | jobs: 14 | semgrep: 15 | name: Scan 16 | runs-on: ubuntu-20.04 17 | env: 18 | SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }} 19 | container: 20 | image: returntocorp/semgrep 21 | steps: 22 | - uses: actions/checkout@v3 23 | - run: semgrep ci 24 | -------------------------------------------------------------------------------- /sw.js: -------------------------------------------------------------------------------- 1 | // Adding this example caching code with no Url's to cache just to tell the browser that this app will work offline so that it can prommpt PWA install. 2 | const CACHE_NAME = 'v1'; 3 | const urlsToCache = [ 4 | "/" 5 | ]; 6 | 7 | self.addEventListener('install', event => { 8 | event.waitUntil( 9 | caches.open(CACHE_NAME) 10 | .then(cache => cache.addAll(urlsToCache)) 11 | ); 12 | }); 13 | 14 | self.addEventListener('fetch', event => { 15 | event.respondWith( 16 | caches.match(event.request) 17 | .then(response => { 18 | if (response) { 19 | return response; 20 | } 21 | return fetch(event.request); 22 | }) 23 | ); 24 | }); 25 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Netflix Ke Pitaji", 3 | "name": "NETFLIX KE PITAJI", 4 | "icons": [ 5 | { 6 | "src": "/icons/android-chrome-192x192.png", 7 | "type": "image/png", 8 | "sizes": "192x192" 9 | }, 10 | { 11 | "src": "/icons/android-chrome-512x512.png", 12 | "type": "image/png", 13 | "sizes": "512x512" 14 | }, 15 | { 16 | "src": "/icons/android-chrome-192x192.png", 17 | "type": "image/png", 18 | "sizes": "192x192", 19 | "purpose": "maskable" 20 | } 21 | ], 22 | "start_url": "/index.html", 23 | "display": "minimal-ui", 24 | "theme_color": "#111111", 25 | "background_color": "#111111" 26 | } 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Pulkit Pareek 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /contact.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Contact 10 | 11 | 12 | 13 | 14 | 15 |
16 | 22 | 23 |

Contact Us

24 | 25 |

At NETFLIX KE PITAJI, we value your feedback and are always here to help. If you have any questions, 26 | concerns, or suggestions, please don't hesitate to reach out to us.

27 | 28 |

You can contact us via the following methods:

29 | 30 |

Email:

31 | 32 |

If you prefer to communicate via email, you can reach us at pulkitpareek18@gmail.com. We will make every 33 | effort to respond to your inquiry as soon as possible.

34 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # NETFLIX KE PITAJI 3 | 4 | 5 | Watch all your favourite movies, web series, TV shows and anime for free. 6 | 7 | [!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/pulkitpareek18) 8 | 9 | 10 | 11 | ## Demo 12 | 13 | https://netflix-1uh.pages.dev 14 | 15 | ## GIF 16 | 17 | ![App GIF](https://raw.githubusercontent.com/pulkitpareek18/netflix/main/netflix-ke-pitaji.gif) 18 | 19 | 20 | ## Run Locally 21 | 22 | Clone the project 23 | 24 | ```bash 25 | git clone https://github.com/pulkitpareek18/netflix 26 | ``` 27 | 28 | Open the project directory and run `index.html`. 29 | 30 | 31 | ## Features 32 | 33 | - Watch any movie, webseries, TV show or anime for free. 34 | - **Url Sharing** 35 | Despite of being a single page website built wihout any framework, you can still share url's of movies and other shows. 36 | - Ultra fast loading. 37 | - Single page website. 38 | 39 | 40 | 41 | 42 | ## Acknowledgements 43 | 44 | - [Pace.js](https://codebyzach.github.io/pace/e.com/project/elangosundar/awesome-README-templates) 45 | - IMDB 46 | - TMDB 47 | - Smashy Stream 48 | 49 | ## Authors 50 | 51 | - [@pulkitpareek18](https://www.github.com/pulkitpareek18) 52 | 53 | 54 | ## Contributing 55 | 56 | Contributions are always welcome! 57 | If you have any new Idea or have found a bug, please don't hesitate to open a Pull Request. 58 | 59 | 60 | ## License 61 | 62 | [MIT](https://github.com/pulkitpareek18/netflix/blob/main/LICENSE) 63 | 64 | 65 | ## Support 66 | 67 | For support, email pulkitpareekofficial@gmail.com or ask any query on Twitter. 68 | 69 | -------------------------------------------------------------------------------- /center-atom.min.css: -------------------------------------------------------------------------------- 1 | .pace.pace-inactive{display:none}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2000;position:fixed;height:60px;width:100px;margin:auto;top:0;left:0;right:0;bottom:0}.pace .pace-progress{z-index:2000;position:absolute;height:60px;width:100px;-webkit-transform:translate3d(0,0,0)!important;-ms-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.pace .pace-progress:before{content:attr(data-progress-text);text-align:center;color:#fff;background:#2e2aff;border-radius:50%;font-family:"Helvetica Neue",sans-serif;font-size:14px;font-weight:100;line-height:1;padding:20% 0 7px;width:50%;height:40%;margin:10px 0 0 30px;display:block;z-index:999;position:absolute}.pace .pace-activity{font-size:15px;line-height:1;z-index:2000;position:absolute;height:60px;width:100px;display:block;-webkit-animation:pace-theme-center-atom-spin 2s linear infinite;-moz-animation:pace-theme-center-atom-spin 2s linear infinite;-o-animation:pace-theme-center-atom-spin 2s linear infinite;animation:pace-theme-center-atom-spin 2s linear infinite}.pace .pace-activity{border-radius:50%;border:5px solid #311aff;content:' ';display:block;position:absolute;top:0;left:0;height:60px;width:100px}.pace .pace-activity:after{border-radius:50%;border:5px solid #1c0ed8;content:' ';display:block;position:absolute;top:-5px;left:-5px;height:60px;width:100px;-webkit-transform:rotate(60deg);-moz-transform:rotate(60deg);-o-transform:rotate(60deg);transform:rotate(60deg)}.pace .pace-activity:before{border-radius:50%;border:5px solid #441aff;content:' ';display:block;position:absolute;top:-5px;left:-5px;height:60px;width:100px;-webkit-transform:rotate(120deg);-moz-transform:rotate(120deg);-o-transform:rotate(120deg);transform:rotate(120deg)}@-webkit-keyframes pace-theme-center-atom-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@-moz-keyframes pace-theme-center-atom-spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(359deg)}}@-o-keyframes pace-theme-center-atom-spin{0%{-o-transform:rotate(0)}100%{-o-transform:rotate(359deg)}}@keyframes pace-theme-center-atom-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}} -------------------------------------------------------------------------------- /center-atom.css: -------------------------------------------------------------------------------- 1 | .pace.pace-inactive { 2 | display: none; 3 | } 4 | 5 | .pace { 6 | -webkit-pointer-events: none; 7 | pointer-events: none; 8 | 9 | -webkit-user-select: none; 10 | -moz-user-select: none; 11 | user-select: none; 12 | 13 | z-index: 2000; 14 | position: fixed; 15 | height: 60px; 16 | width: 100px; 17 | margin: auto; 18 | top: 0; 19 | left: 0; 20 | right: 0; 21 | bottom: 0; 22 | } 23 | 24 | .pace .pace-progress { 25 | z-index: 2000; 26 | position: absolute; 27 | height: 60px; 28 | width: 100px; 29 | 30 | -webkit-transform: translate3d(0, 0, 0) !important; 31 | -ms-transform: translate3d(0, 0, 0) !important; 32 | transform: translate3d(0, 0, 0) !important; 33 | } 34 | 35 | .pace .pace-progress:before { 36 | content: attr(data-progress-text); 37 | text-align: center; 38 | color: #fff; 39 | background: #2e2aff; 40 | border-radius: 50%; 41 | font-family: "Helvetica Neue", sans-serif; 42 | font-size: 14px; 43 | font-weight: 100; 44 | line-height: 1; 45 | padding: 20% 0 7px; 46 | width: 50%; 47 | height: 40%; 48 | margin: 10px 0 0 30px; 49 | display: block; 50 | z-index: 999; 51 | position: absolute; 52 | } 53 | 54 | .pace .pace-activity { 55 | font-size: 15px; 56 | line-height: 1; 57 | z-index: 2000; 58 | position: absolute; 59 | height: 60px; 60 | width: 100px; 61 | 62 | display: block; 63 | -webkit-animation: pace-theme-center-atom-spin 2s linear infinite; 64 | -moz-animation: pace-theme-center-atom-spin 2s linear infinite; 65 | -o-animation: pace-theme-center-atom-spin 2s linear infinite; 66 | animation: pace-theme-center-atom-spin 2s linear infinite; 67 | } 68 | 69 | .pace .pace-activity { 70 | border-radius: 50%; 71 | border: 5px solid #311aff; 72 | content: ' '; 73 | display: block; 74 | position: absolute; 75 | top: 0; 76 | left: 0; 77 | height: 60px; 78 | width: 100px; 79 | } 80 | 81 | .pace .pace-activity:after { 82 | border-radius: 50%; 83 | border: 5px solid #1c0ed8; 84 | content: ' '; 85 | display: block; 86 | position: absolute; 87 | top: -5px; 88 | left: -5px; 89 | height: 60px; 90 | width: 100px; 91 | 92 | -webkit-transform: rotate(60deg); 93 | -moz-transform: rotate(60deg); 94 | -o-transform: rotate(60deg); 95 | transform: rotate(60deg); 96 | } 97 | 98 | .pace .pace-activity:before { 99 | border-radius: 50%; 100 | border: 5px solid #441aff; 101 | content: ' '; 102 | display: block; 103 | position: absolute; 104 | top: -5px; 105 | left: -5px; 106 | height: 60px; 107 | width: 100px; 108 | 109 | -webkit-transform: rotate(120deg); 110 | -moz-transform: rotate(120deg); 111 | -o-transform: rotate(120deg); 112 | transform: rotate(120deg); 113 | } 114 | 115 | @-webkit-keyframes pace-theme-center-atom-spin { 116 | 0% { -webkit-transform: rotate(0deg) } 117 | 100% { -webkit-transform: rotate(359deg) } 118 | } 119 | @-moz-keyframes pace-theme-center-atom-spin { 120 | 0% { -moz-transform: rotate(0deg) } 121 | 100% { -moz-transform: rotate(359deg) } 122 | } 123 | @-o-keyframes pace-theme-center-atom-spin { 124 | 0% { -o-transform: rotate(0deg) } 125 | 100% { -o-transform: rotate(359deg) } 126 | } 127 | @keyframes pace-theme-center-atom-spin { 128 | 0% { transform: rotate(0deg) } 129 | 100% { transform: rotate(359deg) } 130 | } -------------------------------------------------------------------------------- /style.min.css: -------------------------------------------------------------------------------- 1 | .search-container{display:flex;height:10vh;position:fixed;justify-content:center;align-content:center;flex-direction:row;flex-wrap:nowrap;align-items:center;z-index:10}input{padding:.2rem;font-size:1rem;border-radius:5px;border:.1vw solid gray;padding:.7vw;margin:.5vw;width:19rem;outline:0}input:focus{border:#000 solid .2vw;box-shadow:rgba(2,255,242,.596) 0 0 1.6vw .2vw}button{padding:.55rem .4rem;background-color:#00f;color:#fff;border-radius:5px;border:none;cursor:pointer;text-align:center;font-size:1rem}button:hover{color:#000;font-weight:700;background-color:#00f7ff;box-shadow:rgba(2,255,242,.596) 0 0 1.6vw .2vw}#results{margin-top:5vh;display:flex;flex-wrap:wrap;flex-direction:row;align-content:center;justify-content:center;align-items:center}.result{width:14vw;height:fit-content;margin:2vw;border:.1vw solid #bebebe;box-shadow:rgba(211,211,211,.322) 0 0 2vw .05vw;border-radius:5px;overflow:hidden;transition-duration:.5s}.result:hover{width:18vw;transition-duration:.5s;box-shadow:rgba(211,211,211,.322) 0 0 7vw 1vw}.hoverClass{width:16.7vw!important;transition-duration:.5s;box-shadow:rgba(211,211,211,.322) 0 0 7vw 1vw}.result img{width:100%;object-fit:cover}.result .info{padding:.7vw}.result .info h3{margin:0}.result .info h3:hover{color:#39cdbc;font-weight:700;text-shadow:#39cdbc 0 0 5vw}.hoverClass .info h3{color:#39cdbc;font-weight:700;text-shadow:#39cdbc 0 0 5vw}.result .info p{margin:0;font-size:1vw;color:gray}.result .info p:hover{color:#5ad4c0;font-weight:500;text-shadow:#8fe6db 0 0 5vw}.hoverClass .info p{color:#5ad4c0;font-weight:500;text-shadow:#8fe6db 0 0 5vw}a{text-decoration:none}.episodes{background-color:#d8d8d8;padding:1vw;margin:.5vw;font-size:large;color:#000;text-decoration:none;border-radius:1.1vw}.episode-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:center;align-items:center}.episodes:hover{background-color:#39cdbc;color:#fff;font-weight:700}.selected{background-color:#39cdbc;color:#fff;font-weight:700}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#111;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center}h1,h2,h3{color:#f5f5f5;z-index:10}iframe{width:72vw;height:36vw;box-shadow:rgba(211,211,211,.322) 0 0 7vw 1vw;margin-top:10vh;top:10}#video{display:none}.information{margin:5vw}.information h3{font-size:3vw;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif}.information p{color:#39cdbc;font-size:2vw;font-weight:700}h2{font-size:3vw;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;color:#0ff}h3{font-size:3vw}.information a,li{margin:1vw;color:#00f;font-size:x-large;font-weight:500}.information a:hover{color:#00e1ff!important}.pagelinks a{margin:1vw;font-size:x-large;font-weight:500;color:#00b7ff!important;font-weight:bolder;text-decoration:underline}.pagelinks a:hover{color:#ae00ff!important}.pagelinks{display:flex;flex-direction:row;justify-content:center;align-items:center}.footerLinks a{color:#b803ff!important}.info h3{font-size:1.6vw}@media only screen and (max-width:768px){iframe{width:100vw!important;height:50vw!important;box-shadow:rgba(211,211,211,.322) 0 0 7vw 1vw;margin-top:7vh;top:10}.search-container{height:5vh}input{width:18rem!important;padding:.4rem .4rem}h1{font-size:7vw}h2{font-size:7vw}h3{font-size:5vw}.info h3{font-size:3vw}.result{width:25vw;margin:2vw}.hoverClass{width:36vw!important;transition-duration:.5s;box-shadow:rgba(211,211,211,.322) 0 0 7vw 1vw}.result:hover{width:36vw;transition-duration:.5s;box-shadow:rgba(211,211,211,.322) 0 0 7vw 1vw}.information p{font-size:4vw}.information a{font-size:4vw}.information h3{font-size:7vw}.result .info p{font-size:1.8vw}.pagelinks{flex-direction:column}.pagelinks a{font-size:5vw}}@media only screen and (max-width:414px){.information p{font-size:6vw}.information h3{font-size:11vw}button{padding:.48rem .4rem}input{width:74vw!important}.result{width:40vw;margin:2vw}.result:hover{width:45vw;transition-duration:.5s;box-shadow:rgba(211,211,211,.322) 0 0 7vw 1vw}.hoverClass{width:45vw!important;transition-duration:.5s;box-shadow:rgba(211,211,211,.322) 0 0 7vw 1vw}.information a{font-size:7vw}.info h3{font-size:4vw}.result .info p{font-size:3vw}.result .info{padding:.9vw}.pagelinks a{font-size:7vw}}@media only screen and (min-width:1400px){button{padding:.7vw 1vw;font-size:1.5vw}input{font-size:1.5vw;width:30vw}h1{font-size:4vw}h2{font-size:3vw}.info p{font-size:1vw!important}h3{font-size:1.5vw}.hoverClass{width:16.4vw!important;transition-duration:.5s;box-shadow:rgba(211,211,211,.322) 0 0 7vw 1vw}.information a{font-size:2vw}.alwaysVisibleContent h3{font-size:2vw}.pagelinks a{font-size:2vw}}@media only screen and (min-width:1600px){.result{width:13vw;margin:1vw}} -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | NETFLIX KE PITAJI 16 | 17 | 18 | 19 | 25 | 26 | 37 | 38 | 40 | 41 | 42 | 43 | 44 |
45 | 46 | 47 |
48 |
49 |
50 | 51 |

In case of any Error or Too Much Buffering click again on 52 | your Movie poster down below or just change the Player from the right corner in video player.

53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |

NETFLIX KE PITAJI

61 |

Netflix, on us. Free

62 |

Search any Movie/Webseries/Anime

63 | 69 |
70 |
71 |

PROJECT INFORMATION

72 |

Introduction

73 | 74 |

Netflix ke Pitaji is a one-of-a-kind, open-source project that allows users to search and retrieve data about 75 | Movies and Web Shows available on the Internet. This documentation provides a comprehensive overview of the 76 | features and functionality of the website, including its data sources, user interface, and community features. 77 |

78 | 79 |

Data Sources

80 | 81 |

Netflix ke Pitaji retrieves data from two of the largest movie and TV databases on the internet: IMDB (Internet 82 | Movie Database) and TMDB (The Movie Database). This combination of data sources provides a comprehensive and 83 | up-to-date movie and TV show library, ensuring that users have access to the latest information on their 84 | favorite movies and TV shows.

85 | 86 |

User Interface

87 | 88 |

The website has a simple and user-friendly interface, making it easy for users to navigate and search for 89 | movies and TV shows. The no reload feature of this website makes it very unique and super fast. The page load 90 | speed of this website is approximately 0.1 Seconds.

91 | 92 |

Movie and TV Show Information

93 | 94 |

The movie and TV show pages on Netflix ke Pitaji provide users with a wealth of information about the movie or 95 | TV show. The page includes the poster thumbnail, and information about cast and crew. More information about the 96 | Movies and Shows is intentionally not displayed, If you want to display that information then you can modify 97 | that in the source code.

98 | 99 |

Single Page Website

100 | 101 |

It is important to note that Netflix ke Pitaji is a single page client side website and does not store any 102 | information on 103 | its servers. All data is retrieved from IMDB and TMDB and is displayed on the website in real-time. Despite of 104 | being a single page website the Url's in addres bar are updated and their event is also handled. Means if you 105 | enter a url which contains some data about movies/webseries/search_query the website will load that data same as 106 | a normal website with backend does. This means 107 | that the website is fast and responsive, providing a seamless user experience for its users.

108 | 109 |

Source Code

110 | 111 |

The Source Code of this Tool is available at Github repository by Pulkit Pareek. You can access the repository 112 | at Here(Link to Github Repository).

114 | 115 |

Conclusion

116 | 117 |

In conclusion, Netflix ke Pitaji is an open-source project that provides a comprehensive movie and TV show 118 | library and a unique movie-watching experience. With its simple and user-friendly interface, comprehensive movie 119 | and TV show information, and the ability to watch movies and TV shows that are available on the internet for 120 | free.

121 | 122 |

Libraries Used

123 | 129 |
130 |
131 | 132 | 133 | 134 | 135 | -------------------------------------------------------------------------------- /script.min.js: -------------------------------------------------------------------------------- 1 | function scrollToTop(){let e=document.documentElement.scrollTop||document.body.scrollTop;e>0&&(window.requestAnimationFrame(scrollToTop),window.scrollTo(0,e-e/8))}const htmlBody=document.querySelector("html, body"),results=document.querySelector("#results"),scrollToResults=()=>{let e=results.offsetTop;htmlBody.scrollTo({top:e,behavior:"smooth"})},searchInput=document.getElementById("search-input"),searchButton=document.getElementById("search-button"),resultsContainer=document.getElementById("results"),corsProxy="https://cors-anywhere.pulkitpareekofficial.workers.dev/?url=";function optimisedImageUrl(e){return e.replace("._V1_.","._V1_QL75_UX160_.")}function fetchAndShow(){let e=encodeURIComponent(searchInput.value),t=`${corsProxy}https://v3.sg.media-imdb.com/suggestion/x/${e}.json`;Pace.restart(),fetch(t).then(e=>e.json()).then(e=>{let t=e.d;resultsContainer.innerHTML="",t.forEach(e=>{if(e.i&&("movie"===e.qid||"tvSeries"===e.qid)){let t=document.createElement("div");t.classList.add("result"),t.setAttribute("IMDB",e.id);let i="";"movie"===e.qid&&e.i?i=` 2 | ${e.l} 3 |
4 |

${e.l}

5 |

${e.s}

6 |
7 |
`:"tvSeries"===e.qid&&e.i&&(i=` 8 | ${e.l} 9 |
10 |

${e.l}

11 |

${e.s}

12 |
13 |
`),t.innerHTML=i,resultsContainer.appendChild(t)}})})}const fetchTitle=async e=>{let t=`${corsProxy}https://v3.sg.media-imdb.com/suggestion/x/${e}.json`;try{let i=await fetch(t),s=await i.json(),r=s.d[0].l;return r}catch(l){console.error(l)}};function setUrl(e){let t=e.getAttribute("url");window.history.replaceState({},"",`?${t.replace(/%20/g,"+")}`)}function fillSearchInput(){let e=new URLSearchParams(window.location.search),t=e.get("search"),i=e.get("season"),s=e.get("episode"),r=e.get("imdb"),l=e.get("type");if(!t||i||s||r)!r||!l||t||s||i?r&&!t&&s&&i&&(console.log("season",i,"episode",s),fetchTitle(r).then(e=>setAll(r,e,i,s,l)).catch(e=>console.error(e)),console.log("season",i,"episode",s)):fetchTitle(r).then(e=>setAll(r,e,i,s,l)).catch(e=>console.error(e));else{t=t.replace(/\+/g,"%20");let o=document.querySelector("#search-input");o.value=t,fetchAndShow()}}function updateURL(e){let t=e.value;t?window.history.replaceState({},"",`?search=${encodeURIComponent(t).replace(/%20/g,"+")}`):window.history.replaceState({},"",window.location.pathname)}function highlightCards(){let e=new URLSearchParams(window.location.search).get("imdb");try{document.querySelectorAll(".result").forEach(function(e){e.className="result"}),document.querySelector(`div[IMDB=${e}]`).className="result hoverClass"}catch(t){}}fillSearchInput(),window.onpopstate=function(){let e=new URLSearchParams(window.location.search),t=e.get("search"),i=e.get("imdb");if(t||i){let s=document.getElementsByClassName("information");for(let r=0;r`https://vidsrc.su/embed/movie/${e}`,embedTvUrl:(e,t,i)=>`https://vidsrc.su/embed/tv/${e}/${t}/${i}`};async function fetchTmdbIdFromImdb(e){let t=`https://api.themoviedb.org/3/find/${e}?api_key=b6b677eb7d4ec17f700e3d4dfc31d005&language=en-US&external_source=imdb_id`;try{let i=await fetch(t),s=await i.json();return s.movie_results&&s.movie_results[0]?s.movie_results[0].id:null}catch(r){return console.error("Failed to fetch TMDB ID:",r),null}}async function fetchTmdbTvIdFromImdb(e){let t=`https://api.themoviedb.org/3/find/${e}?api_key=b6b677eb7d4ec17f700e3d4dfc31d005&language=en-US&external_source=imdb_id`;try{let i=await fetch(t),s=await i.json();return s.tv_results&&s.tv_results[0]?s.tv_results[0].id:null}catch(r){return console.error("Failed to fetch TMDB ID for TV show:",r),null}}async function setAll(e,t,i,s,r){if(e&&t&&!i&&!s&&r){let l=await fetchTmdbIdFromImdb(e);if(!l){alert("Could not find TMDB ID for this movie.");return}let o=document.createElement("a");o.setAttribute("onClick","setUrl(this); return setVideo(this);"),o.setAttribute("url",`imdb=${e}&type=movie&title=${t.replace(/ /g,"_")}`),o.setAttribute("isWebSeries","false"),o.setAttribute("title",t),o.setAttribute("class","links"),o.setAttribute("IMDB",e),o.setAttribute("href",PLAYER_CONFIG.embedMovieUrl(l)),o.setAttribute("target","_blank"),o.click()}else if(e&&t&&s&&!r){let n=await fetchTmdbTvIdFromImdb(e);if(!n){alert("Could not find TMDB ID for this TV show.");return}let a=document.createElement("a");a.setAttribute("onClick","setUrl(this); return setVideo(this);"),console.log("season setall",i,"episode",s),a.setAttribute("url",`imdb=${e}&season=${i}&episode=${s}`),a.setAttribute("isWebSeries","true"),a.setAttribute("title",t),a.setAttribute("class","links"),a.setAttribute("IMDB",e),a.setAttribute("href",PLAYER_CONFIG.embedTvUrl(n,i,s)),a.setAttribute("target","_blank"),a.click()}}function setVideo(e){let t=document.getElementById(PLAYER_CONFIG.iframeId),i=document.getElementById(PLAYER_CONFIG.videoContainerId);t.src=e.getAttribute("href"),i.style.display="block";let s=document.getElementById("webSeriesData"),r="b6b677eb7d4ec17f700e3d4dfc31d005",l=e.getAttribute("IMDB");if(Pace.restart(),scrollToTop(),window.dispatchEvent(new PopStateEvent("popstate")),"false"==e.getAttribute("isWebSeries")&&"links"==e.className&&(s.innerHTML=""),""!==e.getAttribute("title")&&(document.title=e.getAttribute("title")),e.className.includes("episode")&&(episodeHighlight(e.getAttribute("cssidentification")),console.log("clicked")),"true"==e.getAttribute("isWebSeries")){async function o(){let e=await fetch(`https://api.themoviedb.org/3/find/${l}?api_key=${r}&language=en-US&external_source=imdb_id`),t=await e.json(),i=t.tv_results[0].id,o=await fetch(`https://api.themoviedb.org/3/tv/${i}?api_key=${r}&language=en-US`),n=await o.json(),a=n.number_of_seasons;s.innerHTML+="

Seasons:

";for(let c=1;c<=a;c++){s.innerHTML+=`

Season ${c}:


`;let d=document.createElement("div");d.classList.add("episode-container");let u="",h=await fetch(`https://api.themoviedb.org/3/tv/${i}/season/${c}?api_key=${r}&language=en-US`),m=await h.json();for(let p of m.episodes){let f=p.episode_number,b=f.toLocaleString("en-US",{minimumIntegerDigits:2,useGrouping:!1});u+=`E${b}. ${p.name}`}d.innerHTML=u,s.appendChild(d),episodeHighlight()}let g=new URLSearchParams(window.location.search),v=g.get("season"),y=g.get("episode");v&&y?document.querySelector(`a[cssIdentification="s${v}e${y}"]`).click():v&&!y?document.querySelector(`a[cssIdentification="s${v}e1"]`).click():document.querySelector('a[cssIdentification="s1e1"]').click()}s.innerHTML="",o()}function n(){dataLayer.push(arguments)}return window.dataLayer=window.dataLayer||[],n("js",new Date),n("config","G-THTQ9GZQ0J"),highlightCards(),!1} -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | .search-container { 2 | display: flex; 3 | height: 10vh; 4 | position: fixed; 5 | justify-content: center; 6 | align-content: center; 7 | flex-direction: row; 8 | flex-wrap: nowrap; 9 | align-items: center; 10 | z-index: 10; 11 | } 12 | 13 | input { 14 | padding: 0.2rem; 15 | font-size: 1rem; 16 | border-radius: 5px; 17 | border: 0.1vw solid gray; 18 | padding: 0.7vw; 19 | margin: 0.5vw; 20 | width: 19rem; 21 | outline: none; 22 | } 23 | 24 | input:focus { 25 | border: black solid 0.2vw; 26 | box-shadow: rgba(2, 255, 242, 0.596) 0vw 0vw 1.6vw 0.2vw; 27 | } 28 | 29 | 30 | button { 31 | padding: 0.55rem 0.4rem; 32 | background-color: blue; 33 | color: white; 34 | border-radius: 5px; 35 | border: none; 36 | cursor: pointer; 37 | text-align: center; 38 | font-size: 1rem; 39 | } 40 | 41 | button:hover { 42 | color: #000000; 43 | font-weight: bold; 44 | background-color: rgb(0, 247, 255); 45 | box-shadow: rgba(2, 255, 242, 0.596) 0vw 0vw 1.6vw 0.2vw; 46 | } 47 | 48 | #results { 49 | margin-top: 5vh; 50 | display: flex; 51 | flex-wrap: wrap; 52 | flex-direction: row; 53 | align-content: center; 54 | justify-content: center; 55 | align-items: center; 56 | } 57 | 58 | 59 | .result { 60 | width: 14vw; 61 | height: fit-content; 62 | margin: 2vw; 63 | border: 0.1vw solid rgb(190, 190, 190); 64 | box-shadow: rgba(211, 211, 211, 0.322) 0px 0px 2vw 0.05vw; 65 | border-radius: 5px; 66 | overflow: hidden; 67 | transition-duration: 0.5s; 68 | } 69 | 70 | .result:hover { 71 | width: 18vw; 72 | transition-duration: 0.5s; 73 | box-shadow: rgba(211, 211, 211, 0.322) 0px 0px 7vw 1vw; 74 | } 75 | 76 | .hoverClass { 77 | width: 16.7vw !important; 78 | transition-duration: 0.5s; 79 | box-shadow: rgba(211, 211, 211, 0.322) 0px 0px 7vw 1vw; 80 | } 81 | 82 | 83 | .result img { 84 | width: 100%; 85 | object-fit: cover; 86 | } 87 | 88 | .result .info { 89 | padding: 0.7vw; 90 | } 91 | 92 | .result .info h3 { 93 | margin: 0; 94 | } 95 | 96 | .result .info h3:hover { 97 | color: #39cdbc; 98 | font-weight: bold; 99 | text-shadow: #39cdbc 0px 0vw 5vw; 100 | } 101 | 102 | .hoverClass .info h3 { 103 | color: #39cdbc; 104 | font-weight: bold; 105 | text-shadow: #39cdbc 0px 0vw 5vw; 106 | } 107 | 108 | .result .info p { 109 | margin: 0; 110 | font-size: 1vw; 111 | color: gray; 112 | } 113 | 114 | .result .info p:hover { 115 | color: rgb(90, 212, 192); 116 | font-weight: 500; 117 | text-shadow: #8fe6db 0px 0vw 5vw; 118 | } 119 | 120 | .hoverClass .info p { 121 | color: rgb(90, 212, 192); 122 | font-weight: 500; 123 | text-shadow: #8fe6db 0px 0vw 5vw; 124 | } 125 | 126 | a { 127 | text-decoration: none; 128 | } 129 | 130 | .episodes { 131 | background-color: #d8d8d8; 132 | padding: 1vw; 133 | margin: 0.5vw; 134 | font-size: large; 135 | color: #000; 136 | text-decoration: none; 137 | border-radius: 1.1vw; 138 | } 139 | 140 | .episode-container { 141 | display: flex; 142 | flex-direction: row; 143 | flex-wrap: wrap; 144 | justify-content: center; 145 | align-content: center; 146 | align-items: center; 147 | } 148 | 149 | .episodes:hover { 150 | background-color: #39cdbc; 151 | color: #ffffff; 152 | font-weight: bold; 153 | } 154 | 155 | .selected { 156 | background-color: #39cdbc; 157 | color: #ffffff; 158 | font-weight: bold; 159 | } 160 | 161 | body { 162 | font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 163 | background-color: #111111; 164 | display: flex; 165 | flex-direction: column; 166 | flex-wrap: nowrap; 167 | align-items: center; 168 | } 169 | 170 | h1, 171 | h2, 172 | h3 { 173 | color: whitesmoke; 174 | z-index: 10; 175 | } 176 | 177 | 178 | iframe { 179 | width: 72vw; 180 | height: 36vw; 181 | box-shadow: rgba(211, 211, 211, 0.322) 0px 0px 7vw 1vw; 182 | margin-top: 10vh; 183 | top: 10; 184 | } 185 | 186 | #video { 187 | display: none; 188 | } 189 | 190 | .information { 191 | margin: 5vw; 192 | } 193 | 194 | .information h3 { 195 | font-size: 3vw; 196 | font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 197 | } 198 | 199 | .information p { 200 | color: #39cdbc; 201 | font-size: 2vw; 202 | font-weight: 700; 203 | } 204 | 205 | h2 { 206 | font-size: 3vw; 207 | font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 208 | color: aqua; 209 | } 210 | 211 | h3 { 212 | font-size: 3vw; 213 | } 214 | 215 | .information a, 216 | li { 217 | margin: 1vw; 218 | color: blue; 219 | font-size: x-large; 220 | font-weight: 500; 221 | } 222 | 223 | .information a:hover { 224 | color: rgb(0, 225, 255) !important; 225 | } 226 | 227 | .pagelinks a { 228 | margin: 1vw; 229 | font-size: x-large; 230 | font-weight: 500; 231 | color: #00b7ff !important; 232 | font-weight: bolder; 233 | text-decoration: underline; 234 | } 235 | 236 | .pagelinks a:hover { 237 | color: #ae00ff !important; 238 | } 239 | 240 | .pagelinks{ 241 | display: flex; 242 | flex-direction: row; 243 | justify-content: center; 244 | align-items: center; 245 | } 246 | 247 | .footerLinks a { 248 | color: #b803ff !important; 249 | } 250 | 251 | .info h3 { 252 | font-size: 1.6vw; 253 | } 254 | 255 | 256 | /* Responsive Configuration */ 257 | 258 | @media only screen and (max-width: 768px) { 259 | 260 | iframe { 261 | width: 100vw !important; 262 | height: 50vw !important; 263 | /* display: none; */ 264 | box-shadow: rgba(211, 211, 211, 0.322) 0px 0px 7vw 1vw; 265 | margin-top: 7vh; 266 | top: 10; 267 | } 268 | 269 | .search-container { 270 | height: 5vh; 271 | } 272 | 273 | input { 274 | width: 18rem !important; 275 | padding: 0.4rem 0.4rem; 276 | } 277 | 278 | h1 { 279 | font-size: 7vw; 280 | } 281 | 282 | h2 { 283 | font-size: 7vw; 284 | } 285 | 286 | h3 { 287 | font-size: 5vw; 288 | } 289 | 290 | .info h3 { 291 | font-size: 3vw; 292 | } 293 | 294 | .result { 295 | width: 25vw; 296 | margin: 2vw; 297 | } 298 | 299 | .hoverClass { 300 | width: 36vw !important; 301 | transition-duration: 0.5s; 302 | box-shadow: rgba(211, 211, 211, 0.322) 0px 0px 7vw 1vw; 303 | } 304 | 305 | .result:hover { 306 | width: 36vw; 307 | transition-duration: 0.5s; 308 | box-shadow: rgba(211, 211, 211, 0.322) 0px 0px 7vw 1vw; 309 | } 310 | 311 | .information p { 312 | font-size: 4vw; 313 | } 314 | 315 | .information a { 316 | font-size: 4vw; 317 | } 318 | 319 | .information h3 { 320 | font-size: 7vw; 321 | } 322 | 323 | .result .info p { 324 | font-size: 1.8vw; 325 | } 326 | 327 | .pagelinks{ 328 | flex-direction: column; 329 | } 330 | .pagelinks a{ 331 | font-size: 5vw; 332 | } 333 | } 334 | 335 | @media only screen and (max-width: 414px) { 336 | .information p { 337 | font-size: 6vw; 338 | } 339 | 340 | .information h3 { 341 | font-size: 11vw; 342 | } 343 | 344 | button { 345 | padding: 0.48rem 0.4rem; 346 | } 347 | 348 | input { 349 | width: 74vw !important; 350 | } 351 | 352 | .result { 353 | width: 40vw; 354 | margin: 2vw; 355 | } 356 | 357 | .result:hover { 358 | width: 45vw; 359 | transition-duration: 0.5s; 360 | box-shadow: rgba(211, 211, 211, 0.322) 0px 0px 7vw 1vw; 361 | } 362 | 363 | .hoverClass { 364 | width: 45vw !important; 365 | transition-duration: 0.5s; 366 | box-shadow: rgba(211, 211, 211, 0.322) 0px 0px 7vw 1vw; 367 | } 368 | 369 | .information a { 370 | font-size: 7vw; 371 | } 372 | 373 | .info h3 { 374 | font-size: 4vw; 375 | } 376 | 377 | .result .info p { 378 | font-size: 3vw; 379 | } 380 | 381 | .result .info { 382 | padding: 0.9vw; 383 | } 384 | 385 | .pagelinks a{ 386 | font-size: 7vw; 387 | } 388 | } 389 | 390 | @media only screen and (min-width: 1400px) { 391 | 392 | button { 393 | padding: 0.7vw 1vw; 394 | font-size: 1.5vw; 395 | } 396 | 397 | input { 398 | font-size: 1.5vw; 399 | width: 30vw; 400 | } 401 | 402 | h1 { 403 | font-size: 4vw; 404 | } 405 | 406 | h2 { 407 | font-size: 3vw; 408 | } 409 | 410 | .info p { 411 | font-size: 1vw !important; 412 | } 413 | 414 | h3 { 415 | font-size: 1.5vw; 416 | } 417 | 418 | .hoverClass { 419 | width: 16.4vw !important; 420 | transition-duration: 0.5s; 421 | box-shadow: rgba(211, 211, 211, 0.322) 0px 0px 7vw 1vw; 422 | } 423 | 424 | .information a { 425 | font-size: 2vw; 426 | } 427 | 428 | .alwaysVisibleContent h3 { 429 | font-size: 2vw; 430 | } 431 | 432 | .pagelinks a { 433 | font-size: 2vw; 434 | } 435 | } 436 | 437 | @media only screen and (min-width: 1600px) { 438 | .result { 439 | width: 13vw; 440 | margin: 1vw; 441 | } 442 | } -------------------------------------------------------------------------------- /privacy-policy.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Privacy Policy 10 | 11 | 12 | 13 | 14 | 15 |
16 | 22 | 23 |

Privacy Policy for NETFLIX KE PITAJI

24 | 25 |

At NETFLIX KE PITAJI, accessible from https://netflix-1uh.pages.dev/, one of our main priorities is the privacy of our visitors. This Privacy Policy document contains types of information that is collected and recorded by NETFLIX KE PITAJI and how we use it.

26 | 27 |

If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact us.

28 | 29 |

This Privacy Policy applies only to our online activities and is valid for visitors to our website with regards to the information that they shared and/or collect in NETFLIX KE PITAJI. This policy is not applicable to any information collected offline or via channels other than this website.

30 | 31 |

Consent

32 | 33 |

By using our website, you hereby consent to our Privacy Policy and agree to its terms.

34 | 35 |

Information we collect

36 | 37 |

The personal information that you are asked to provide, and the reasons why you are asked to provide it, will be made clear to you at the point we ask you to provide your personal information.

38 |

If you contact us directly, we may receive additional information about you such as your name, email address, phone number, the contents of the message and/or attachments you may send us, and any other information you may choose to provide.

39 |

When you register for an Account, we may ask for your contact information, including items such as name, company name, address, email address, and telephone number.

40 | 41 |

How we use your information

42 | 43 |

We use the information we collect in various ways, including to:

44 | 45 | 54 | 55 |

Log Files

56 | 57 |

NETFLIX KE PITAJI follows a standard procedure of using log files. These files log visitors when they visit websites. All hosting companies do this and a part of hosting services' analytics. The information collected by log files include internet protocol (IP) addresses, browser type, Internet Service Provider (ISP), date and time stamp, referring/exit pages, and possibly the number of clicks. These are not linked to any information that is personally identifiable. The purpose of the information is for analyzing trends, administering the site, tracking users' movement on the website, and gathering demographic information.

58 | 59 | 60 |

Google DoubleClick DART Cookie

61 | 62 |

Google is one of a third-party vendor on our site. It also uses cookies, known as DART cookies, to serve ads to our site visitors based upon their visit to www.website.com and other sites on the internet. However, visitors may choose to decline the use of DART cookies by visiting the Google ad and content network Privacy Policy at the following URL – https://policies.google.com/technologies/ads

63 | 64 |

Our Advertising Partners

65 | 66 |

Some of advertisers on our site may use cookies and web beacons. Our advertising partners are listed below. Each of our advertising partners has their own Privacy Policy for their policies on user data. For easier access, we hyperlinked to their Privacy Policies below.

67 | 68 | 74 | 75 |

Advertising Partners Privacy Policies

76 | 77 |

You may consult this list to find the Privacy Policy for each of the advertising partners of NETFLIX KE PITAJI.

78 | 79 |

Third-party ad servers or ad networks uses technologies like cookies, JavaScript, or Web Beacons that are used in their respective advertisements and links that appear on NETFLIX KE PITAJI, which are sent directly to users' browser. They automatically receive your IP address when this occurs. These technologies are used to measure the effectiveness of their advertising campaigns and/or to personalize the advertising content that you see on websites that you visit.

80 | 81 |

Note that NETFLIX KE PITAJI has no access to or control over these cookies that are used by third-party advertisers.

82 | 83 |

Third Party Privacy Policies

84 | 85 |

NETFLIX KE PITAJI's Privacy Policy does not apply to other advertisers or websites. Thus, we are advising you to consult the respective Privacy Policies of these third-party ad servers for more detailed information. It may include their practices and instructions about how to opt-out of certain options.

86 | 87 |

You can choose to disable cookies through your individual browser options. To know more detailed information about cookie management with specific web browsers, it can be found at the browsers' respective websites.

88 | 89 |

CCPA Privacy Rights (Do Not Sell My Personal Information)

90 | 91 |

Under the CCPA, among other rights, California consumers have the right to:

92 |

Request that a business that collects a consumer's personal data disclose the categories and specific pieces of personal data that a business has collected about consumers.

93 |

Request that a business delete any personal data about the consumer that a business has collected.

94 |

Request that a business that sells a consumer's personal data, not sell the consumer's personal data.

95 |

If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us.

96 | 97 |

GDPR Data Protection Rights

98 | 99 |

We would like to make sure you are fully aware of all of your data protection rights. Every user is entitled to the following:

100 |

The right to access – You have the right to request copies of your personal data. We may charge you a small fee for this service.

101 |

The right to rectification – You have the right to request that we correct any information you believe is inaccurate. You also have the right to request that we complete the information you believe is incomplete.

102 |

The right to erasure – You have the right to request that we erase your personal data, under certain conditions.

103 |

The right to restrict processing – You have the right to request that we restrict the processing of your personal data, under certain conditions.

104 |

The right to object to processing – You have the right to object to our processing of your personal data, under certain conditions.

105 |

The right to data portability – You have the right to request that we transfer the data that we have collected to another organization, or directly to you, under certain conditions.

106 |

If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us.

107 | 108 |

Children's Information

109 | 110 |

Another part of our priority is adding protection for children while using the internet. We encourage parents and guardians to observe, participate in, and/or monitor and guide their online activity.

111 | 112 |

NETFLIX KE PITAJI does not knowingly collect any Personal Identifiable Information from children under the age of 13. If you think that your child provided this kind of information on our website, we strongly encourage you to contact us immediately and we will do our best efforts to promptly remove such information from our records.

113 | 114 |

Changes to This Privacy Policy

115 | 116 |

We may update our Privacy Policy from time to time. Thus, we advise you to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately, after they are posted on this page.

117 | 118 |

Our Privacy Policy was created with the help of the TermsFeed Privacy Policy Generator.

119 | 120 |

Contact Us

121 | 122 |

If you have any questions or suggestions about our Privacy Policy, do not hesitate to contact us.

123 | 124 |
125 | 126 | 127 | -------------------------------------------------------------------------------- /terms-and-conditions.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Terms and Conditions 10 | 11 | 12 | 13 | 14 | 15 |
16 | 22 | 23 |

Terms and Conditions

24 | 25 |

Welcome to NETFLIX KE PITAJI!

26 | 27 |

These terms and conditions outline the rules and regulations for the use of NETFLIX KE PITAJI's Website, located at https://netflix-1uh.pages.dev/.

28 | 29 |

By accessing this website we assume you accept these terms and conditions. Do not continue to use NETFLIX KE PITAJI if you do not agree to take all of the terms and conditions stated on this page.

30 | 31 |

The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and all Agreements: "Client", "You" and "Your" refers to you, the person log on this website and compliant to the Company’s terms and conditions. "The Company", "Ourselves", "We", "Our" and "Us", refers to our Company. "Party", "Parties", or "Us", refers to both the Client and ourselves. All terms refer to the offer, acceptance and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner for the express purpose of meeting the Client’s needs in respect of provision of the Company’s stated services, in accordance with and subject to, prevailing law of Netherlands. Any use of the above terminology or other words in the singular, plural, capitalization and/or he/she or they, are taken as interchangeable and therefore as referring to same.

32 | 33 |

Cookies

34 | 35 |

We employ the use of cookies. By accessing NETFLIX KE PITAJI, you agreed to use cookies in agreement with the NETFLIX KE PITAJI's Privacy Policy.

36 | 37 |

Most interactive websites use cookies to let us retrieve the user’s details for each visit. Cookies are used by our website to enable the functionality of certain areas to make it easier for people visiting our website. Some of our affiliate/advertising partners may also use cookies.

38 | 39 |

License

40 | 41 |

Unless otherwise stated, NETFLIX KE PITAJI and/or its licensors own the intellectual property rights for all material on NETFLIX KE PITAJI. All intellectual property rights are reserved. You may access this from NETFLIX KE PITAJI for your own personal use subjected to restrictions set in these terms and conditions.

42 | 43 |

You must not:

44 | 50 | 51 |

This Agreement shall begin on the date hereof. Our Terms and Conditions were created with the help of the Free Terms and Conditions Generator.

52 | 53 |

Parts of this website offer an opportunity for users to post and exchange opinions and information in certain areas of the website. NETFLIX KE PITAJI does not filter, edit, publish or review Comments prior to their presence on the website. Comments do not reflect the views and opinions of NETFLIX KE PITAJI,its agents and/or affiliates. Comments reflect the views and opinions of the person who post their views and opinions. To the extent permitted by applicable laws, NETFLIX KE PITAJI shall not be liable for the Comments or for any liability, damages or expenses caused and/or suffered as a result of any use of and/or posting of and/or appearance of the Comments on this website.

54 | 55 |

NETFLIX KE PITAJI reserves the right to monitor all Comments and to remove any Comments which can be considered inappropriate, offensive or causes breach of these Terms and Conditions.

56 | 57 |

You warrant and represent that:

58 | 59 | 65 | 66 |

You hereby grant NETFLIX KE PITAJI a non-exclusive license to use, reproduce, edit and authorize others to use, reproduce and edit any of your Comments in any and all forms, formats or media.

67 | 68 |

Hyperlinking to our Content

69 | 70 |

The following organizations may link to our Website without prior written approval:

71 | 72 | 79 | 80 |

These organizations may link to our home page, to publications or to other Website information so long as the link: (a) is not in any way deceptive; (b) does not falsely imply sponsorship, endorsement or approval of the linking party and its products and/or services; and (c) fits within the context of the linking party’s site.

81 | 82 |

We may consider and approve other link requests from the following types of organizations:

83 | 84 | 93 | 94 |

We will approve link requests from these organizations if we decide that: (a) the link would not make us look unfavorably to ourselves or to our accredited businesses; (b) the organization does not have any negative records with us; (c) the benefit to us from the visibility of the hyperlink compensates the absence of NETFLIX KE PITAJI; and (d) the link is in the context of general resource information.

95 | 96 |

These organizations may link to our home page so long as the link: (a) is not in any way deceptive; (b) does not falsely imply sponsorship, endorsement or approval of the linking party and its products or services; and (c) fits within the context of the linking party’s site.

97 | 98 |

If you are one of the organizations listed in paragraph 2 above and are interested in linking to our website, you must inform us by sending an e-mail to NETFLIX KE PITAJI. Please include your name, your organization name, contact information as well as the URL of your site, a list of any URLs from which you intend to link to our Website, and a list of the URLs on our site to which you would like to link. Wait 2-3 weeks for a response.

99 | 100 |

Approved organizations may hyperlink to our Website as follows:

101 | 102 | 107 | 108 |

No use of NETFLIX KE PITAJI's logo or other artwork will be allowed for linking absent a trademark license agreement.

109 | 110 |

iFrames

111 | 112 |

Without prior approval and written permission, you may not create frames around our Webpages that alter in any way the visual presentation or appearance of our Website.

113 | 114 |

Content Liability

115 | 116 |

We shall not be hold responsible for any content that appears on your Website. You agree to protect and defend us against all claims that is rising on your Website. No link(s) should appear on any Website that may be interpreted as libelous, obscene or criminal, or which infringes, otherwise violates, or advocates the infringement or other violation of, any third party rights.

117 | 118 |

Your Privacy

119 | 120 |

Please read Privacy Policy

121 | 122 |

Reservation of Rights

123 | 124 |

We reserve the right to request that you remove all links or any particular link to our Website. You approve to immediately remove all links to our Website upon request. We also reserve the right to amen these terms and conditions and it’s linking policy at any time. By continuously linking to our Website, you agree to be bound to and follow these linking terms and conditions.

125 | 126 |

Removal of links from our website

127 | 128 |

If you find any link on our Website that is offensive for any reason, you are free to contact and inform us any moment. We will consider requests to remove links but we are not obligated to or so or to respond to you directly.

129 | 130 |

We do not ensure that the information on this website is correct, we do not warrant its completeness or accuracy; nor do we promise to ensure that the website remains available or that the material on the website is kept up to date.

131 | 132 |

Disclaimer

133 | 134 |

To the maximum extent permitted by applicable law, we exclude all representations, warranties and conditions relating to our website and the use of this website. Nothing in this disclaimer will:

135 | 136 | 142 | 143 |

The limitations and prohibitions of liability set in this Section and elsewhere in this disclaimer: (a) are subject to the preceding paragraph; and (b) govern all liabilities arising under the disclaimer, including liabilities arising in contract, in tort and for breach of statutory duty.

144 | 145 |

As long as the website and the information and services on the website are provided free of charge, we will not be liable for any loss or damage of any nature.

146 |
147 | 148 | 149 | -------------------------------------------------------------------------------- /script.js: -------------------------------------------------------------------------------- 1 | function scrollToTop() { 2 | const c = document.documentElement.scrollTop || document.body.scrollTop; 3 | if (c > 0) { 4 | window.requestAnimationFrame(scrollToTop); 5 | window.scrollTo(0, c - c / 8); 6 | } 7 | } 8 | 9 | const htmlBody = document.querySelector("html, body"); 10 | const results = document.querySelector("#results"); 11 | 12 | const scrollToResults = () => { 13 | const resultsTop = results.offsetTop; 14 | htmlBody.scrollTo({ 15 | top: resultsTop, 16 | behavior: "smooth", 17 | }); 18 | }; 19 | 20 | 21 | const searchInput = document.getElementById("search-input"); 22 | const searchButton = document.getElementById("search-button"); 23 | const resultsContainer = document.getElementById("results"); 24 | const corsProxy = "https://cors-anywhere.pulkitpareekofficial.workers.dev/?url="; 25 | 26 | // functions that manipulates the queries of url to get a low resolution image to increase page speed 27 | function optimisedImageUrl(url) { 28 | return url.replace("._V1_.", "._V1_QL75_UX160_."); 29 | } 30 | 31 | // Fetch and Show Cards 32 | 33 | function fetchAndShow() { 34 | const query = encodeURIComponent(searchInput.value); 35 | const url = `${corsProxy}https://v3.sg.media-imdb.com/suggestion/x/${query}.json`; 36 | Pace.restart(); 37 | 38 | fetch(url) 39 | .then((response) => response.json()) 40 | .then((data) => { 41 | const results = data.d; 42 | 43 | resultsContainer.innerHTML = ""; 44 | 45 | results.forEach((result) => { 46 | if (result.i && (result.qid === "movie" || result.qid === "tvSeries")) { 47 | const resultElem = document.createElement("div"); 48 | resultElem.classList.add("result"); 49 | resultElem.setAttribute("IMDB", result.id); 50 | 51 | let imageAndInfo = ""; 52 | 53 | if (result.qid === "movie" && result.i) { 54 | imageAndInfo = ` 55 | ${result.l} 56 |
57 |

${result.l}

58 |

${result.s}

59 |
60 |
`; 61 | } else if (result.qid === "tvSeries" && result.i) { 62 | imageAndInfo = ` 63 | ${result.l} 64 |
65 |

${result.l}

66 |

${result.s}

67 |
68 |
`; 69 | } 70 | resultElem.innerHTML = imageAndInfo; 71 | resultsContainer.appendChild(resultElem); 72 | } 73 | }); 74 | }); 75 | } 76 | 77 | // A function which will set the player url and page url by imitating a anchor tag click 78 | 79 | // fetch titile of movie/webseries by its imdb id 80 | 81 | const fetchTitle = async (imdbID) => { 82 | const url = `${corsProxy}https://v3.sg.media-imdb.com/suggestion/x/${imdbID}.json`; 83 | 84 | try { 85 | const response = await fetch(url); 86 | const data = await response.json(); 87 | const title = data.d[0].l; 88 | return title; 89 | } catch (error) { 90 | console.error(error); 91 | } 92 | }; 93 | 94 | // set url of element by getting its custom url attirbute 95 | 96 | function setUrl(element) { 97 | let search = element.getAttribute("url"); 98 | window.history.replaceState({}, "", `?${search.replace(/%20/g, "+")}`); 99 | } 100 | 101 | // insert search query in search box from url and set contents from url 102 | 103 | function fillSearchInput() { 104 | let searchParams = new URLSearchParams(window.location.search); 105 | let search = searchParams.get("search"); 106 | let season = searchParams.get("season"); 107 | let episode = searchParams.get("episode"); 108 | let imdb = searchParams.get("imdb"); 109 | let type = searchParams.get("type"); 110 | 111 | // It will set search query in search box from url 112 | 113 | if (search && !season && !episode && !imdb) { 114 | search = search.replace(/\+/g, "%20"); 115 | const searchInput = document.querySelector("#search-input"); 116 | searchInput.value = search; 117 | fetchAndShow(); 118 | } 119 | 120 | // It will set the contents according to url data 121 | else if (imdb && type && !search && !episode && !season) { 122 | fetchTitle(imdb) 123 | .then((title) => setAll(imdb, title, season, episode, type)) 124 | .catch((error) => console.error(error)); 125 | 126 | // It will set the contents according to url data 127 | } else if (imdb && !search && episode && season) { 128 | console.log("season", season, "episode", episode); 129 | 130 | fetchTitle(imdb) 131 | .then((title) => setAll(imdb, title, season, episode, type)) 132 | .catch((error) => console.error(error)); 133 | console.log("season", season, "episode", episode); 134 | } 135 | } 136 | 137 | fillSearchInput(); 138 | 139 | // update url by search query 140 | 141 | function updateURL(input) { 142 | let search = input.value; 143 | if (search) { 144 | window.history.replaceState( 145 | {}, 146 | "", 147 | `?search=${encodeURIComponent(search).replace(/%20/g, "+")}` 148 | ); 149 | } else { 150 | window.history.replaceState({}, "", window.location.pathname); 151 | } 152 | } 153 | 154 | // Highlighting Selected Card 155 | 156 | function highlightCards() { 157 | let searchParams = new URLSearchParams(window.location.search); 158 | let imdb_id = searchParams.get("imdb"); 159 | try { 160 | document.querySelectorAll(".result").forEach(function (card) { 161 | card.className = "result"; 162 | }); 163 | document.querySelector(`div[IMDB=${imdb_id}]`).className = 164 | "result hoverClass"; 165 | } catch (error) { 166 | // will throw error only if the class is not present 167 | } 168 | } 169 | 170 | // Listen for the onpopstate event and update the display of elements with the class "information" 171 | window.onpopstate = function () { 172 | let searchParams = new URLSearchParams(window.location.search); 173 | let search = searchParams.get("search"); 174 | let imdb = searchParams.get("imdb"); 175 | 176 | if (search || imdb) { 177 | let elements = document.getElementsByClassName("information"); 178 | 179 | for (let i = 0; i < elements.length; i++) { 180 | elements[i].style.display = "none"; 181 | } 182 | } else { 183 | let elements = document.getElementsByClassName("information"); 184 | 185 | for (let i = 0; i < elements.length; i++) { 186 | elements[i].style.display = "block"; 187 | } 188 | } 189 | }; 190 | 191 | // auto search by input which will execute when user stops typing for 500ms 192 | 193 | let timer; 194 | 195 | searchInput.addEventListener("keyup", function () { 196 | let inputQuery = this; 197 | clearTimeout(timer); 198 | timer = setTimeout(function () { 199 | updateURL(inputQuery); 200 | fetchAndShow(); 201 | window.dispatchEvent(new PopStateEvent("popstate")); 202 | scrollToResults(); 203 | }, 500); // wait for 500ms before executing the function 204 | }); 205 | 206 | // button click search 207 | 208 | searchButton.addEventListener("click", function () { 209 | fetchAndShow(); 210 | scrollToResults(); 211 | // hide information 212 | window.dispatchEvent(new PopStateEvent("popstate")); 213 | }); 214 | 215 | // higlight episodes of webseries 216 | 217 | function episodeHighlight(cssidentification = "s1e1") { 218 | document.querySelectorAll(".episodes").forEach(function (episode) { 219 | episode.className = "episodes"; 220 | }); 221 | document.querySelector( 222 | `.episodes[cssidentification='${cssidentification}']` 223 | ).className = "episodes selected"; 224 | } 225 | 226 | // === GLOBAL PLAYER CONFIGURATION === 227 | const PLAYER_CONFIG = { 228 | iframeId: "iframe", 229 | videoContainerId: "video", 230 | embedMovieUrl: (tmdb) => `https://vidsrc.su/embed/movie/${tmdb}`, 231 | embedTvUrl: (tmdb, season, episode) => 232 | `https://vidsrc.su/embed/tv/${tmdb}/${season}/${episode}`, 233 | }; 234 | 235 | // Helper to get TMDB ID from IMDb ID 236 | async function fetchTmdbIdFromImdb(imdbID) { 237 | const tmdbApiKey = "b6b677eb7d4ec17f700e3d4dfc31d005"; 238 | const url = `https://api.themoviedb.org/3/find/${imdbID}?api_key=${tmdbApiKey}&language=en-US&external_source=imdb_id`; 239 | try { 240 | const response = await fetch(url); 241 | const data = await response.json(); 242 | // For movies, TMDB ID is in movie_results[0].id 243 | return data.movie_results && data.movie_results[0] ? data.movie_results[0].id : null; 244 | } catch (error) { 245 | console.error("Failed to fetch TMDB ID:", error); 246 | return null; 247 | } 248 | } 249 | 250 | // Helper to get TMDB ID from IMDb ID for TV shows 251 | async function fetchTmdbTvIdFromImdb(imdbID) { 252 | const tmdbApiKey = "b6b677eb7d4ec17f700e3d4dfc31d005"; 253 | const url = `https://api.themoviedb.org/3/find/${imdbID}?api_key=${tmdbApiKey}&language=en-US&external_source=imdb_id`; 254 | try { 255 | const response = await fetch(url); 256 | const data = await response.json(); 257 | // For TV shows, TMDB ID is in tv_results[0].id 258 | return data.tv_results && data.tv_results[0] ? data.tv_results[0].id : null; 259 | } catch (error) { 260 | console.error("Failed to fetch TMDB ID for TV show:", error); 261 | return null; 262 | } 263 | } 264 | 265 | // setAll function updated to use TMDB ID for both movies and TV shows 266 | async function setAll(imdb, title, season, episode, type) { 267 | if (imdb && title && !season && !episode && type) { 268 | // Movie: get TMDB ID first 269 | const tmdbId = await fetchTmdbIdFromImdb(imdb); 270 | if (!tmdbId) { 271 | alert("Could not find TMDB ID for this movie."); 272 | return; 273 | } 274 | let a = document.createElement("a"); 275 | a.setAttribute("onClick", "setUrl(this); return setVideo(this);"); 276 | a.setAttribute( 277 | "url", 278 | `imdb=${imdb}&type=movie&title=${title.replace(/ /g, "_")}` 279 | ); 280 | a.setAttribute("isWebSeries", "false"); 281 | a.setAttribute("title", title); 282 | a.setAttribute("class", "links"); 283 | a.setAttribute("IMDB", imdb); 284 | a.setAttribute("href", PLAYER_CONFIG.embedMovieUrl(tmdbId)); 285 | a.setAttribute("target", "_blank"); 286 | a.click(); 287 | } else if (imdb && title && episode && !type) { 288 | // TV: get TMDB ID first 289 | const tmdbId = await fetchTmdbTvIdFromImdb(imdb); 290 | if (!tmdbId) { 291 | alert("Could not find TMDB ID for this TV show."); 292 | return; 293 | } 294 | let a = document.createElement("a"); 295 | a.setAttribute("onClick", "setUrl(this); return setVideo(this);"); 296 | console.log("season setall", season, "episode", episode); 297 | a.setAttribute("url", `imdb=${imdb}&season=${season}&episode=${episode}`); 298 | a.setAttribute("isWebSeries", "true"); 299 | a.setAttribute("title", title); 300 | a.setAttribute("class", "links"); 301 | a.setAttribute("IMDB", imdb); 302 | a.setAttribute( 303 | "href", 304 | PLAYER_CONFIG.embedTvUrl(tmdbId, season, episode) 305 | ); 306 | a.setAttribute("target", "_blank"); 307 | a.click(); 308 | } 309 | } 310 | 311 | // fetch and set video 312 | 313 | function setVideo(element) { 314 | const iframe = document.getElementById(PLAYER_CONFIG.iframeId); 315 | const video = document.getElementById(PLAYER_CONFIG.videoContainerId); 316 | iframe.src = element.getAttribute("href"); 317 | video.style.display = "block"; 318 | const webSeriesData = document.getElementById("webSeriesData"); 319 | const tmdbApiKey = "b6b677eb7d4ec17f700e3d4dfc31d005"; 320 | const imdbID = element.getAttribute("IMDB"); 321 | Pace.restart(); 322 | scrollToTop(); 323 | 324 | // hide information 325 | window.dispatchEvent(new PopStateEvent("popstate")); 326 | 327 | // clearing episodes list box for another series 328 | 329 | if ( 330 | element.getAttribute("isWebSeries") == "false" && 331 | element.className == "links" 332 | ) { 333 | webSeriesData.innerHTML = ""; 334 | } 335 | 336 | // setting page title 337 | 338 | if (element.getAttribute("title") !== "") { 339 | document.title = element.getAttribute("title"); 340 | } 341 | 342 | // highlight selected webseries episode 343 | 344 | if (element.className.includes("episode")) { 345 | episodeHighlight(element.getAttribute("cssidentification")); 346 | console.log("clicked"); 347 | } 348 | 349 | // Displaying webseries episode 350 | 351 | if (element.getAttribute("isWebSeries") == "true") { 352 | webSeriesData.innerHTML = ""; 353 | async function printEpisodes() { 354 | // First, get the show's TMDB id based on its IMDb id 355 | const response = await fetch( 356 | `https://api.themoviedb.org/3/find/${imdbID}?api_key=${tmdbApiKey}&language=en-US&external_source=imdb_id` 357 | ); 358 | const data = await response.json(); 359 | const showId = data.tv_results[0].id; 360 | 361 | // Next, get information about the show's seasons 362 | const seasonsData = await fetch( 363 | `https://api.themoviedb.org/3/tv/${showId}?api_key=${tmdbApiKey}&language=en-US` 364 | ); 365 | const seasonsDataJSON = await seasonsData.json(); 366 | const numberOfSeasons = seasonsDataJSON.number_of_seasons; 367 | 368 | webSeriesData.innerHTML += `

Seasons:

`; 369 | for ( 370 | let seasonNumber = 1; 371 | seasonNumber <= numberOfSeasons; 372 | seasonNumber++ 373 | ) { 374 | webSeriesData.innerHTML += `

Season ${seasonNumber}:


`; 375 | let episodeContainer = document.createElement("div"); 376 | episodeContainer.classList.add("episode-container"); 377 | let episodesData = ""; 378 | 379 | // Get information about episodes in the season 380 | const episodesDataResponse = await fetch( 381 | `https://api.themoviedb.org/3/tv/${showId}/season/${seasonNumber}?api_key=${tmdbApiKey}&language=en-US` 382 | ); 383 | const episodesDataJSON = await episodesDataResponse.json(); 384 | 385 | for (const episode of episodesDataJSON.episodes) { 386 | const episodeNumber = episode.episode_number; 387 | let formatedEpisodeNumber = episodeNumber.toLocaleString("en-US", { 388 | minimumIntegerDigits: 2, 389 | useGrouping: false, 390 | }); 391 | episodesData += `E${formatedEpisodeNumber}. ${episode.name}`; 392 | } 393 | 394 | episodeContainer.innerHTML = episodesData; 395 | webSeriesData.appendChild(episodeContainer); 396 | episodeHighlight(); 397 | } 398 | 399 | // Highlighting Selected Episodes as per url 400 | 401 | let searchParams = new URLSearchParams(window.location.search); 402 | let season = searchParams.get("season"); 403 | let episode = searchParams.get("episode"); 404 | 405 | if (season && episode) { 406 | document 407 | .querySelector(`a[cssIdentification="s${season}e${episode}"]`) 408 | .click(); 409 | } else if (season && !episode) { 410 | document.querySelector(`a[cssIdentification="s${season}e1"]`).click(); 411 | } else { 412 | document.querySelector(`a[cssIdentification="s1e1"]`).click(); 413 | } 414 | } 415 | printEpisodes(); 416 | } else { 417 | } 418 | 419 | // pushing data to analytics by gtag 420 | 421 | window.dataLayer = window.dataLayer || []; 422 | function gtag() { 423 | dataLayer.push(arguments); 424 | } 425 | gtag("js", new Date()); 426 | 427 | gtag("config", "G-THTQ9GZQ0J"); 428 | 429 | highlightCards(); 430 | 431 | // returning false so that anchor tag do not work as link 432 | 433 | return false; 434 | } 435 | -------------------------------------------------------------------------------- /jquery.js: -------------------------------------------------------------------------------- 1 | /*! jQuery v3.6.3 | (c) OpenJS Foundation and other contributors | jquery.org/license */ 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},S=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||S).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.3",E=function(e,t){return new E.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,S)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=E)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{if(d.cssSupportsSelector&&!CSS.supports("selector(:is("+c+"))"))throw new Error;return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===E&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[E]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,S=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssSupportsSelector=ce(function(){return CSS.supports("selector(*)")&&C.querySelectorAll(":is(:jqfake)")&&!CSS.supports("selector(:is(*,:jqfake))")}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=E,!C.getElementsByName||!C.getElementsByName(E).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&S){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&S)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+E+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+E+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssSupportsSelector||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&S&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),N.test(r[1])&&E.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=S.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,D=E(S);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=S.createDocumentFragment().appendChild(S.createElement("div")),(fe=S.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;E.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||E.expando+"_"+Ct.guid++;return this[e]=!0,e}}),E.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||E.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?E(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=S.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(r)):t=S),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=E.css(e,"top"),u=E.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===E.css(e,"position"))e=e.offsetParent;return e||re})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0