Found 64 repositories(showing 30)
molyswu
using Neural Networks (SSD) on Tensorflow. This repo documents steps and scripts used to train a hand detector using Tensorflow (Object Detection API). As with any DNN based task, the most expensive (and riskiest) part of the process has to do with finding or creating the right (annotated) dataset. I was interested mainly in detecting hands on a table (egocentric view point). I experimented first with the [Oxford Hands Dataset](http://www.robots.ox.ac.uk/~vgg/data/hands/) (the results were not good). I then tried the [Egohands Dataset](http://vision.soic.indiana.edu/projects/egohands/) which was a much better fit to my requirements. The goal of this repo/post is to demonstrate how neural networks can be applied to the (hard) problem of tracking hands (egocentric and other views). Better still, provide code that can be adapted to other uses cases. If you use this tutorial or models in your research or project, please cite [this](#citing-this-tutorial). Here is the detector in action. <img src="images/hand1.gif" width="33.3%"><img src="images/hand2.gif" width="33.3%"><img src="images/hand3.gif" width="33.3%"> Realtime detection on video stream from a webcam . <img src="images/chess1.gif" width="33.3%"><img src="images/chess2.gif" width="33.3%"><img src="images/chess3.gif" width="33.3%"> Detection on a Youtube video. Both examples above were run on a macbook pro **CPU** (i7, 2.5GHz, 16GB). Some fps numbers are: | FPS | Image Size | Device| Comments| | ------------- | ------------- | ------------- | ------------- | | 21 | 320 * 240 | Macbook pro (i7, 2.5GHz, 16GB) | Run without visualizing results| | 16 | 320 * 240 | Macbook pro (i7, 2.5GHz, 16GB) | Run while visualizing results (image above) | | 11 | 640 * 480 | Macbook pro (i7, 2.5GHz, 16GB) | Run while visualizing results (image above) | > Note: The code in this repo is written and tested with Tensorflow `1.4.0-rc0`. Using a different version may result in [some errors](https://github.com/tensorflow/models/issues/1581). You may need to [generate your own frozen model](https://pythonprogramming.net/testing-custom-object-detector-tensorflow-object-detection-api-tutorial/?completed=/training-custom-objects-tensorflow-object-detection-api-tutorial/) graph using the [model checkpoints](model-checkpoint) in the repo to fit your TF version. **Content of this document** - Motivation - Why Track/Detect hands with Neural Networks - Data preparation and network training in Tensorflow (Dataset, Import, Training) - Training the hand detection Model - Using the Detector to Detect/Track hands - Thoughts on Optimizations. > P.S if you are using or have used the models provided here, feel free to reach out on twitter ([@vykthur](https://twitter.com/vykthur)) and share your work! ## Motivation - Why Track/Detect hands with Neural Networks? There are several existing approaches to tracking hands in the computer vision domain. Incidentally, many of these approaches are rule based (e.g extracting background based on texture and boundary features, distinguishing between hands and background using color histograms and HOG classifiers,) making them not very robust. For example, these algorithms might get confused if the background is unusual or in situations where sharp changes in lighting conditions cause sharp changes in skin color or the tracked object becomes occluded.(see [here for a review](https://www.cse.unr.edu/~bebis/handposerev.pdf) paper on hand pose estimation from the HCI perspective) With sufficiently large datasets, neural networks provide opportunity to train models that perform well and address challenges of existing object tracking/detection algorithms - varied/poor lighting, noisy environments, diverse viewpoints and even occlusion. The main drawbacks to usage for real-time tracking/detection is that they can be complex, are relatively slow compared to tracking-only algorithms and it can be quite expensive to assemble a good dataset. But things are changing with advances in fast neural networks. Furthermore, this entire area of work has been made more approachable by deep learning frameworks (such as the tensorflow object detection api) that simplify the process of training a model for custom object detection. More importantly, the advent of fast neural network models like ssd, faster r-cnn, rfcn (see [here](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md#coco-trained-models-coco-models) ) etc make neural networks an attractive candidate for real-time detection (and tracking) applications. Hopefully, this repo demonstrates this. > If you are not interested in the process of training the detector, you can skip straight to applying the [pretrained model I provide in detecting hands](#detecting-hands). Training a model is a multi-stage process (assembling dataset, cleaning, splitting into training/test partitions and generating an inference graph). While I lightly touch on the details of these parts, there are a few other tutorials cover training a custom object detector using the tensorflow object detection api in more detail[ see [here](https://pythonprogramming.net/training-custom-objects-tensorflow-object-detection-api-tutorial/) and [here](https://towardsdatascience.com/how-to-train-your-own-object-detector-with-tensorflows-object-detector-api-bec72ecfe1d9) ]. I recommend you walk through those if interested in training a custom object detector from scratch. ## Data preparation and network training in Tensorflow (Dataset, Import, Training) **The Egohands Dataset** The hand detector model is built using data from the [Egohands Dataset](http://vision.soic.indiana.edu/projects/egohands/) dataset. This dataset works well for several reasons. It contains high quality, pixel level annotations (>15000 ground truth labels) where hands are located across 4800 images. All images are captured from an egocentric view (Google glass) across 48 different environments (indoor, outdoor) and activities (playing cards, chess, jenga, solving puzzles etc). <img src="images/egohandstrain.jpg" width="100%"> If you will be using the Egohands dataset, you can cite them as follows: > Bambach, Sven, et al. "Lending a hand: Detecting hands and recognizing activities in complex egocentric interactions." Proceedings of the IEEE International Conference on Computer Vision. 2015. The Egohands dataset (zip file with labelled data) contains 48 folders of locations where video data was collected (100 images per folder). ``` -- LOCATION_X -- frame_1.jpg -- frame_2.jpg ... -- frame_100.jpg -- polygons.mat // contains annotations for all 100 images in current folder -- LOCATION_Y -- frame_1.jpg -- frame_2.jpg ... -- frame_100.jpg -- polygons.mat // contains annotations for all 100 images in current folder ``` **Converting data to Tensorflow Format** Some initial work needs to be done to the Egohands dataset to transform it into the format (`tfrecord`) which Tensorflow needs to train a model. This repo contains `egohands_dataset_clean.py` a script that will help you generate these csv files. - Downloads the egohands datasets - Renames all files to include their directory names to ensure each filename is unique - Splits the dataset into train (80%), test (10%) and eval (10%) folders. - Reads in `polygons.mat` for each folder, generates bounding boxes and visualizes them to ensure correctness (see image above). - Once the script is done running, you should have an images folder containing three folders - train, test and eval. Each of these folders should also contain a csv label document each - `train_labels.csv`, `test_labels.csv` that can be used to generate `tfrecords` Note: While the egohands dataset provides four separate labels for hands (own left, own right, other left, and other right), for my purpose, I am only interested in the general `hand` class and label all training data as `hand`. You can modify the data prep script to generate `tfrecords` that support 4 labels. Next: convert your dataset + csv files to tfrecords. A helpful guide on this can be found [here](https://pythonprogramming.net/creating-tfrecord-files-tensorflow-object-detection-api-tutorial/).For each folder, you should be able to generate `train.record`, `test.record` required in the training process. ## Training the hand detection Model Now that the dataset has been assembled (and your tfrecords), the next task is to train a model based on this. With neural networks, it is possible to use a process called [transfer learning](https://www.tensorflow.org/tutorials/image_retraining) to shorten the amount of time needed to train the entire model. This means we can take an existing model (that has been trained well on a related domain (here image classification) and retrain its final layer(s) to detect hands for us. Sweet!. Given that neural networks sometimes have thousands or millions of parameters that can take weeks or months to train, transfer learning helps shorten training time to possibly hours. Tensorflow does offer a few models (in the tensorflow [model zoo](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md#coco-trained-models-coco-models)) and I chose to use the `ssd_mobilenet_v1_coco` model as my start point given it is currently (one of) the fastest models (read the SSD research [paper here](https://arxiv.org/pdf/1512.02325.pdf)). The training process can be done locally on your CPU machine which may take a while or better on a (cloud) GPU machine (which is what I did). For reference, training on my macbook pro (tensorflow compiled from source to take advantage of the mac's cpu architecture) the maximum speed I got was 5 seconds per step as opposed to the ~0.5 seconds per step I got with a GPU. For reference it would take about 12 days to run 200k steps on my mac (i7, 2.5GHz, 16GB) compared to ~5hrs on a GPU. > **Training on your own images**: Please use the [guide provided by Harrison from pythonprogramming](https://pythonprogramming.net/training-custom-objects-tensorflow-object-detection-api-tutorial/) on how to generate tfrecords given your label csv files and your images. The guide also covers how to start the training process if training locally. [see [here] (https://pythonprogramming.net/training-custom-objects-tensorflow-object-detection-api-tutorial/)]. If training in the cloud using a service like GCP, see the [guide here](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/running_on_cloud.md). As the training process progresses, the expectation is that total loss (errors) gets reduced to its possible minimum (about a value of 1 or thereabout). By observing the tensorboard graphs for total loss(see image below), it should be possible to get an idea of when the training process is complete (total loss does not decrease with further iterations/steps). I ran my training job for 200k steps (took about 5 hours) and stopped at a total Loss (errors) value of 2.575.(In retrospect, I could have stopped the training at about 50k steps and gotten a similar total loss value). With tensorflow, you can also run an evaluation concurrently that assesses your model to see how well it performs on the test data. A commonly used metric for performance is mean average precision (mAP) which is single number used to summarize the area under the precision-recall curve. mAP is a measure of how well the model generates a bounding box that has at least a 50% overlap with the ground truth bounding box in our test dataset. For the hand detector trained here, the mAP value was **0.9686@0.5IOU**. mAP values range from 0-1, the higher the better. <img src="images/accuracy.jpg" width="100%"> Once training is completed, the trained inference graph (`frozen_inference_graph.pb`) is then exported (see the earlier referenced guides for how to do this) and saved in the `hand_inference_graph` folder. Now its time to do some interesting detection. ## Using the Detector to Detect/Track hands If you have not done this yet, please following the guide on installing [Tensorflow and the Tensorflow object detection api](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md). This will walk you through setting up the tensorflow framework, cloning the tensorflow github repo and a guide on - Load the `frozen_inference_graph.pb` trained on the hands dataset as well as the corresponding label map. In this repo, this is done in the `utils/detector_utils.py` script by the `load_inference_graph` method. ```python detection_graph = tf.Graph() with detection_graph.as_default(): od_graph_def = tf.GraphDef() with tf.gfile.GFile(PATH_TO_CKPT, 'rb') as fid: serialized_graph = fid.read() od_graph_def.ParseFromString(serialized_graph) tf.import_graph_def(od_graph_def, name='') sess = tf.Session(graph=detection_graph) print("> ====== Hand Inference graph loaded.") ``` - Detect hands. In this repo, this is done in the `utils/detector_utils.py` script by the `detect_objects` method. ```python (boxes, scores, classes, num) = sess.run( [detection_boxes, detection_scores, detection_classes, num_detections], feed_dict={image_tensor: image_np_expanded}) ``` - Visualize detected bounding detection_boxes. In this repo, this is done in the `utils/detector_utils.py` script by the `draw_box_on_image` method. This repo contains two scripts that tie all these steps together. - detect_multi_threaded.py : A threaded implementation for reading camera video input detection and detecting. Takes a set of command line flags to set parameters such as `--display` (visualize detections), image parameters `--width` and `--height`, videe `--source` (0 for camera) etc. - detect_single_threaded.py : Same as above, but single threaded. This script works for video files by setting the video source parameter videe `--source` (path to a video file). ```cmd # load and run detection on video at path "videos/chess.mov" python detect_single_threaded.py --source videos/chess.mov ``` > Update: If you do have errors loading the frozen inference graph in this repo, feel free to generate a new graph that fits your TF version from the model-checkpoint in this repo. Use the [export_inference_graph.py](https://github.com/tensorflow/models/blob/master/research/object_detection/export_inference_graph.py) script provided in the tensorflow object detection api repo. More guidance on this [here](https://pythonprogramming.net/testing-custom-object-detector-tensorflow-object-detection-api-tutorial/?completed=/training-custom-objects-tensorflow-object-detection-api-tutorial/). ## Thoughts on Optimization. A few things that led to noticeable performance increases. - Threading: Turns out that reading images from a webcam is a heavy I/O event and if run on the main application thread can slow down the program. I implemented some good ideas from [Adrian Rosebuck](https://www.pyimagesearch.com/2017/02/06/faster-video-file-fps-with-cv2-videocapture-and-opencv/) on parrallelizing image capture across multiple worker threads. This mostly led to an FPS increase of about 5 points. - For those new to Opencv, images from the `cv2.read()` method return images in [BGR format](https://www.learnopencv.com/why-does-opencv-use-bgr-color-format/). Ensure you convert to RGB before detection (accuracy will be much reduced if you dont). ```python cv2.cvtColor(image_np, cv2.COLOR_BGR2RGB) ``` - Keeping your input image small will increase fps without any significant accuracy drop.(I used about 320 x 240 compared to the 1280 x 720 which my webcam provides). - Model Quantization. Moving from the current 32 bit to 8 bit can achieve up to 4x reduction in memory required to load and store models. One way to further speed up this model is to explore the use of [8-bit fixed point quantization](https://heartbeat.fritz.ai/8-bit-quantization-and-tensorflow-lite-speeding-up-mobile-inference-with-low-precision-a882dfcafbbd). Performance can also be increased by a clever combination of tracking algorithms with the already decent detection and this is something I am still experimenting with. Have ideas for optimizing better, please share! <img src="images/general.jpg" width="100%"> Note: The detector does reflect some limitations associated with the training set. This includes non-egocentric viewpoints, very noisy backgrounds (e.g in a sea of hands) and sometimes skin tone. There is opportunity to improve these with additional data. ## Integrating Multiple DNNs. One way to make things more interesting is to integrate our new knowledge of where "hands" are with other detectors trained to recognize other objects. Unfortunately, while our hand detector can in fact detect hands, it cannot detect other objects (a factor or how it is trained). To create a detector that classifies multiple different objects would mean a long involved process of assembling datasets for each class and a lengthy training process. > Given the above, a potential strategy is to explore structures that allow us **efficiently** interleave output form multiple pretrained models for various object classes and have them detect multiple objects on a single image. An example of this is with my primary use case where I am interested in understanding the position of objects on a table with respect to hands on same table. I am currently doing some work on a threaded application that loads multiple detectors and outputs bounding boxes on a single image. More on this soon.
jettbrains
W3C Strategic Highlights September 2019 This report was prepared for the September 2019 W3C Advisory Committee Meeting (W3C Member link). See the accompanying W3C Fact Sheet — September 2019. For the previous edition, see the April 2019 W3C Strategic Highlights. For future editions of this report, please consult the latest version. A Chinese translation is available. ☰ Contents Introduction Future Web Standards Meeting Industry Needs Web Payments Digital Publishing Media and Entertainment Web & Telecommunications Real-Time Communications (WebRTC) Web & Networks Automotive Web of Things Strengthening the Core of the Web HTML CSS Fonts SVG Audio Performance Web Performance WebAssembly Testing Browser Testing and Tools WebPlatform Tests Web of Data Web for All Security, Privacy, Identity Internationalization (i18n) Web Accessibility Outreach to the world W3C Developer Relations W3C Training Translations W3C Liaisons Introduction This report highlights recent work of enhancement of the existing landscape of the Web platform and innovation for the growth and strength of the Web. 33 working groups and a dozen interest groups enable W3C to pursue its mission through the creation of Web standards, guidelines, and supporting materials. We track the tremendous work done across the Consortium through homogeneous work-spaces in Github which enables better monitoring and management. We are in the middle of a period where we are chartering numerous working groups which demonstrate the rapid degree of change for the Web platform: After 4 years, we are nearly ready to publish a Payment Request API Proposed Recommendation and we need to soon charter follow-on work. In the last year we chartered the Web Payment Security Interest Group. In the last year we chartered the Web Media Working Group with 7 specifications for next generation Media support on the Web. We have Accessibility Guidelines under W3C Member review which includes Silver, a new approach. We have just launched the Decentralized Identifier Working Group which has tremendous potential because Decentralized Identifier (DID) is an identifier that is globally unique, resolveable with high availability, and cryptographically verifiable. We have Privacy IG (PING) under W3C Member review which strengthens our focus on the tradeoff between privacy and function. We have a new CSS charter under W3C Member review which maps the group's work for the next three years. In this period, W3C and the WHATWG have succesfully completed the negotiation of a Memorandum of Understanding rooted in the mutual belief that that having two distinct specifications claiming to be normative is generally harmful for the Web community. The MOU, signed last May, describes how the two organizations are to collaborate on the development of a single authoritative version of the HTML and DOM specifications. W3C subsequently rechartered the HTML Working Group to assist the W3C community in raising issues and proposing solutions for the HTML and DOM specifications, and for the production of W3C Recommendations from WHATWG Review Drafts. As the Web evolves continuously, some groups are looking for ways for specifications to do so as well. So-called "evergreen recommendations" or "living standards" aim to track continuous development (and maintenance) of features, on a feature-by-feature basis, while getting review and patent commitments. We see the maturation and further development of an incredible number of new technologies coming to the Web. Continued progress in many areas demonstrates the vitality of the W3C and the Web community, as the rest of the report illustrates. Future Web Standards W3C has a variety of mechanisms for listening to what the community thinks could become good future Web standards. These include discussions with the Membership, discussions with other standards bodies, the activities of thousands of participants in over 300 community groups, and W3C Workshops. There are lots of good ideas. The W3C strategy team has been identifying promising topics and invites public participation. Future, recent and under consideration Workshops include: Inclusive XR (5-6 November 2019, Seattle, WA, USA) to explore existing and future approaches on making Virtual and Augmented Reality experiences more inclusive, including to people with disabilities; W3C Workshop on Data Models for Transportation (12-13 September 2019, Palo Alto, CA, USA) W3C Workshop on Web Games (27-28 June 2019, Redmond, WA, USA), view report Second W3C Workshop on the Web of Things (3-5 June 2019, Munich, Germany) W3C Workshop on Web Standardization for Graph Data; Creating Bridges: RDF, Property Graph and SQL (4-6 March 2019, Berlin, Germany), view report Web & Machine Learning. The Strategy Funnel documents the staff's exploration of potential new work at various phases: Exploration and Investigation, Incubation and Evaluation, and eventually to the chartering of a new standards group. The Funnel view is a GitHub Project where new area are issues represented by “cards” which move through the columns, usually from left to right. Most cards start in Exploration and move towards Chartering, or move out of the funnel. Public input is welcome at any stage but particularly once Incubation has begun. This helps W3C identify work that is sufficiently incubated to warrant standardization, to review the ecosystem around the work and indicate interest in participating in its standardization, and then to draft a charter that reflects an appropriate scope. Ongoing feedback can speed up the overall standardization process. Since the previous highlights document, W3C has chartered a number of groups, and started discussion on many more: Newly Chartered or Rechartered Web Application Security WG (03-Apr) Web Payment Security IG (17-Apr) Patent and Standards IG (24-Apr) Web Applications WG (14-May) Web & Networks IG (16-May) Media WG (23-May) Media and Entertainment IG (06-Jun) HTML WG (06-Jun) Decentralized Identifier WG (05-Sep) Extended Privacy IG (PING) (30-Sep) Verifiable Claims WG (30-Sep) Service Workers WG (31-Dec) Dataset Exchange WG (31-Dec) Web of Things Working Group (31-Dec) Web Audio Working Group (31-Dec) Proposed charters / Advance Notice Accessibility Guidelines WG Privacy IG (PING) RDF Literal Direction WG Timed Text WG CSS WG Web Authentication WG Closed Internationalization Tag Set IG Meeting Industry Needs Web Payments All Web Payments specifications W3C's payments standards enable a streamlined checkout experience, enabling a consistent user experience across the Web with lower front end development costs for merchants. Users can store and reuse information and more quickly and accurately complete online transactions. The Web Payments Working Group has republished Payment Request API as a Candidate Recommendation, aiming to publish a Proposed Recommendation in the Fall 2019, and is discussing use cases and features for Payment Request after publication of the 1.0 Recommendation. Browser vendors have been finalizing implementation of features added in the past year (view the implementation report). As work continues on the Payment Handler API and its implementation (currently in Chrome and Edge Canary), one focus in 2019 is to increase adoption in other browsers. Recently, Mastercard demonstrated the use of Payment Request API to carry out EMVCo's Secure Remote Commerce (SRC) protocol whose payment method definition is being developed with active participation by Visa, Mastercard, American Express, and Discover. Payment method availability is a key factor in merchant considerations about adopting Payment Request API. The ability to get uniform adoption of a new payment method such as Secure Remote Commerce (SRC) also depends on the availability of the Payment Handler API in browsers, or of proprietary alternatives. Web Monetization, which the Web Payments Working Group will discuss again at its face-to-face meeting in September, can be used to enable micropayments as an alternative revenue stream to advertising. Since the beginning of 2019, Amazon, Brave Software, JCB, Certus Cybersecurity Solutions and Netflix have joined the Web Payments Working Group. In April, W3C launched the Web Payment Security Group to enable W3C, EMVCo, and the FIDO Alliance to collaborate on a vision for Web payment security and interoperability. Participants will define areas of collaboration and identify gaps between existing technical specifications in order to increase compatibility among different technologies, such as: How do SRC, FIDO, and Payment Request relate? The Payment Services Directive 2 (PSD2) regulations in Europe are scheduled to take effect in September 2019. What is the role of EMVCo, W3C, and FIDO technologies, and what is the current state of readiness for the deadline? How can we improve privacy on the Web at the same time as we meet industry requirements regarding user identity? Digital Publishing All Digital Publishing specifications, Publication milestones The Web is the universal publishing platform. Publishing is increasingly impacted by the Web, and the Web increasingly impacts Publishing. Topic of particular interest to Publishing@W3C include typography and layout, accessibility, usability, portability, distribution, archiving, offline access, print on demand, and reliable cross referencing. And the diverse publishing community represented in the groups consist of the traditional "trade" publishers, ebook reading system manufacturers, but also publishers of audio book, scholarly journals or educational materials, library scientists or browser developers. The Publishing Working Group currently concentrates on Audiobooks which lack a comprehensive standard, thus incurring extra costs and time to publish in this booming market. Active development is ongoing on the future standard: Publication Manifest Audiobook profile for Web Publications Lightweight Packaging Format The BD Comics Manga Community Group, the Synchronized Multimedia for Publications Community Group, the Publishing Community Group and a future group on archival, are companions to the working group where specific work is developed and incubated. The Publishing Community Group is a recently launched incubation channel for Publishing@W3C. The goal of the group is to propose, document, and prototype features broadly related to: publications on the Web reading modes and systems and the user experience of publications The EPUB 3 Community Group has successfully completed the revision of EPUB 3.2. The Publishing Business Group fosters ongoing participation by members of the publishing industry and the overall ecosystem in the development of Web infrastructure to better support the needs of the industry. The Business Group serves as an additional conduit to the Publishing Working Group and several Community Groups for feedback between the publishing ecosystem and W3C. The Publishing BG has played a vital role in fostering and advancing the adoption and continued development of EPUB 3. In particular the BG provided critical support to the update of EPUBCheck to validate EPUB content to the new EPUB 3.2 specification. This resulted in the development, in conjunction with the EPUB3 Community Group, of a new generation of EPUBCheck, i.e., EPUBCheck 4.2 production-ready release. Media and Entertainment All Media specifications The Media and Entertainment vertical tracks media-related topics and features that create immersive experiences for end users. HTML5 brought standard audio and video elements to the Web. Standardization activities since then have aimed at turning the Web into a professional platform fully suitable for the delivery of media content and associated materials, enabling missing features to stream video content on the Web such as adaptive streaming and content protection. Together with Microsoft, Comcast, Netflix and Google, W3C received an Technology & Engineering Emmy Award in April 2019 for standardization of a full TV experience on the Web. Current goals are to: Reinforce core media technologies: Creation of the Media Working Group, to develop media-related specifications incubated in the WICG (e.g. Media Capabilities, Picture-in-picture, Media Session) and maintain maintain/evolve Media Source Extensions (MSE) and Encrypted Media Extensions (EME). Improve support for Media Timed Events: data cues incubation. Enhance color support (HDR, wide gamut), in scope of the CSS WG and in the Color on the Web CG. Reduce fragmentation: Continue annual releases of a common and testable baseline media devices, in scope of the Web Media APIs CG and in collaboration with the CTA WAVE Project. Maintain the Road-map of Media Technologies for the Web which highlights Web technologies that can be used to build media applications and services, as well as known gaps to enable additional use cases. Create the future: Discuss perspectives for Media and Entertainment for the Web. Bring the power of GPUs to the Web (graphics, machine learning, heavy processing), under incubation in the GPU for the Web CG. Transition to a Working Group is under discussion. Determine next steps after the successful W3C Workshop on Web Games of June 2019. View the report. Timed Text The Timed Text Working Group develops and maintains formats used for the representation of text synchronized with other timed media, like audio and video, and notably works on TTML, profiles of TTML, and WebVTT. Recent progress includes: A robust WebVTT implementation report poises the specification for publication as a proposed recommendation. Discussions around re-chartering, notably to add a TTML Profile for Audio Description deliverable to the scope of the group, and clarify that rendering of captions within XR content is also in scope. Immersive Web Hardware that enables Virtual Reality (VR) and Augmented Reality (AR) applications are now broadly available to consumers, offering an immersive computing platform with both new opportunities and challenges. The ability to interact directly with immersive hardware is critical to ensuring that the web is well equipped to operate as a first-class citizen in this environment. The Immersive Web Working Group has been stabilizing the WebXR Device API while the companion Immersive Web Community Group incubates the next series of features identified as key for the future of the Immersive Web. W3C plans a workshop focused on the needs and benefits at the intersection of VR & Accessibility (Inclusive XR), on 5-6 November 2019 in Seattle, WA, USA, to explore existing and future approaches on making Virtual and Augmented Reality experiences more inclusive. Web & Telecommunications The Web is the Open Platform for Mobile. Telecommunication service providers and network equipment providers have long been critical actors in the deployment of Web technologies. As the Web platform matures, it brings richer and richer capabilities to extend existing services to new users and devices, and propose new and innovative services. Real-Time Communications (WebRTC) All Real-Time Communications specifications WebRTC has reshaped the whole communication landscape by making any connected device a potential communication end-point, bringing audio and video communications anywhere, on any network, vastly expanding the ability of operators to reach their customers. WebRTC serves as the corner-stone of many online communication and collaboration services. The WebRTC Working Group aims to bringing WebRTC 1.0 (and companion specification Media Capture and Streams) to Recommendation by the end of 2019. Intense efforts are focused on testing (supported by a dedicated hackathon at IETF 104) and interoperability. The group is considering pushing features that have not gotten enough traction to separate modules or to a later minor revision of the spec. Beyond WebRTC 1.0, the WebRTC Working Group will focus its efforts on WebRTC NV which the group has started documenting by identifying use cases. Web & Networks Recently launched, in the wake of the May 2018 Web5G workshop, the Web & Networks Interest Group is chaired by representatives from AT&T, China Mobile and Intel, with a goal to explore solutions for web applications to achieve better performance and resource allocation, both on the device and network. The group's first efforts are around use cases, privacy & security requirements and liaisons. Automotive All Automotive specifications To create a rich application ecosystem for vehicles and other devices allowed to connect to the vehicle, the W3C Automotive Working Group is delivering a service specification to expose all common vehicle signals (engine temperature, fuel/charge level, range, tire pressure, speed, etc.) The Vehicle Information Service Specification (VISS), which is a Candidate Recommendation, is seeing more implementations across the industry. It provides the access method to a common data model for all the vehicle signals –presently encapsulating a thousand or so different data elements– and will be growing to accommodate the advances in automotive such as autonomous and driver assist technologies and electrification. The group is already working on a successor to VISS, leveraging the underlying data model and the VIWI submission from Volkswagen, for a more robust means of accessing vehicle signals information and the same paradigm for other automotive needs including location-based services, media, notifications and caching content. The Automotive and Web Platform Business Group acts as an incubator for prospective standards work. One of its task forces is using W3C VISS in performing data sampling and off-boarding the information to the cloud. Access to the wealth of information that W3C's auto signals standard exposes is of interest to regulators, urban planners, insurance companies, auto manufacturers, fleet managers and owners, service providers and others. In addition to components needed for data sampling and edge computing, capturing user and owner consent, information collection methods and handling of data are in scope. The upcoming W3C Workshop on Data Models for Transportation (September 2019) is expected to focus on the need of additional ontologies around transportation space. Web of Things All Web of Things specifications W3C's Web of Things work is designed to bridge disparate technology stacks to allow devices to work together and achieve scale, thus enabling the potential of the Internet of Things by eliminating fragmentation and fostering interoperability. Thing descriptions expressed in JSON-LD cover the behavior, interaction affordances, data schema, security configuration, and protocol bindings. The Web of Things complements existing IoT ecosystems to reduce the cost and risk for suppliers and consumers of applications that create value by combining multiple devices and information services. There are many sectors that will benefit, e.g. smart homes, smart cities, smart industry, smart agriculture, smart healthcare and many more. The Web of Things Working Group is finishing the initial Web of Things standards, with support from the Web of Things Interest Group: Web of Things Architecture Thing Descriptions Strengthening the Core of the Web HTML The HTML Working Group was chartered early June to assist the W3C community in raising issues and proposing solutions for the HTML and DOM specifications, and to produce W3C Recommendations from WHATWG Review Drafts. A few days before, W3C and the WHATWG signed a Memorandum of Understanding outlining the agreement to collaborate on the development of a single version of the HTML and DOM specifications. Issues and proposed solutions for HTML and DOM done via the newly rechartered HTML Working Group in the WHATWG repositories The HTML Working Group is targetting November 2019 to bring HTML and DOM to Candidate Recommendations. CSS All CSS specifications CSS is a critical part of the Open Web Platform. The CSS Working Group gathers requirements from two large groups of CSS users: the publishing industry and application developers. Within W3C, those groups are exemplified by the Publishing groups and the Web Platform Working Group. The former requires things like better pagination support and advanced font handling, the latter needs intelligent (and fast!) scrolling and animations. What we know as CSS is actually a collection of almost a hundred specifications, referred to as ‘modules’. The current state of CSS is defined by a snapshot, updated once a year. The group also publishes an index defining every term defined by CSS specifications. Fonts All Fonts specifications The Web Fonts Working Group develops specifications that allow the interoperable deployment of downloadable fonts on the Web, with a focus on Progressive Font Enrichment as well as maintenance of WOFF Recommendations. Recent and ongoing work includes: Early API experiments by Adobe and Monotype have demonstrated the feasibility of a font enrichment API, where a server delivers a font with minimal glyph repertoire and the client can query the full repertoire and request additional subsets on-the-fly. In other experiments, the Brotli compression used in WOFF 2 was extended to support shared dictionaries and patch update. Metrics to quantify improvement are a current hot discussion topic. The group will meet at ATypi 2019 in Japan, to gather requirements from the international typography community. The group will first produce a report summarizing the strengths and weaknesses of each prototype solution by Q2 2020. SVG All SVG specifications SVG is an important and widely-used part of the Open Web Platform. The SVG Working Group focuses on aligning the SVG 2.0 specification with browser implementations, having split the specification into a currently-implemented 2.0 and a forward-looking 2.1. Current activity is on stabilization, increased integration with the Open Web Platform, and test coverage analysis. The Working Group was rechartered in March 2019. A new work item concerns native (non-Web-browser) uses of SVG as a non-interactive, vector graphics format. Audio The Web Audio Working Group was extended to finish its work on the Web Audio API, expecting to publish it as a Recommendation by year end. The specification enables synthesizing audio in the browser. Audio operations are performed with audio nodes, which are linked together to form a modular audio routing graph. Multiple sources — with different types of channel layout — are supported. This modular design provides the flexibility to create complex audio functions with dynamic effects. The first version of Web Audio API is now feature complete and is implemented in all modern browsers. Work has started on the next version, and new features are being incubated in the Audio Community Group. Performance Web Performance All Web Performance specifications There are currently 18 specifications in development in the Web Performance Working Group aiming to provide methods to observe and improve aspects of application performance of user agent features and APIs. The W3C team is looking at related work incubated in the W3C GPU for the Web (WebGPU) Community Group which is poised to transition to a W3C Working Group. A preliminary draft charter is available. WebAssembly All WebAssembly specifications WebAssembly improves Web performance and power by being a virtual machine and execution environment enabling loaded pages to run native (compiled) code. It is deployed in Firefox, Edge, Safari and Chrome. The specification will soon reach Candidate Recommendation. WebAssembly enables near-native performance, optimized load time, and perhaps most importantly, a compilation target for existing code bases. While it has a small number of native types, much of the performance increase relative to Javascript derives from its use of consistent typing. WebAssembly leverages decades of optimization for compiled languages and the byte code is optimized for compactness and streaming (the web page starts executing while the rest of the code downloads). Network and API access all occurs through accompanying Javascript libraries -- the security model is identical to that of Javascript. Requirements gathering and language development occur in the Community Group while the Working Group manages test development, community review and progression of specifications on the Recommendation Track. Testing Browser testing plays a critical role in the growth of the Web by: Improving the reliability of Web technology definitions; Improving the quality of implementations of these technologies by helping vendors to detect bugs in their products; Improving the data available to Web developers on known bugs and deficiencies of Web technologies by publishing results of these tests. Browser Testing and Tools The Browser Testing and Tools Working Group is developing WebDriver version 2, having published last year the W3C Recommendation of WebDriver. WebDriver acts as a remote control interface that enables introspection and control of user agents, provides a platform- and language-neutral wire protocol as a way for out-of-process programs to remotely instruct the behavior of Web, and emulates the actions of a real person using the browser. WebPlatform Tests The WebPlatform Tests project now provides a mechanism which allows to fully automate tests that previously needed to be run manually: TestDriver. TestDriver enables sending trusted key and mouse events, sending complex series of trusted pointer and key interactions for things like in-content drag-and-drop or pinch zoom, and even file upload. Since 2014 W3C began work on this coordinated open-source effort to build a cross-browser test suite for the Web Platform, which WHATWG, and all major browsers adopted. Web of Data All Data specifications There have been several great success stories around the standardization of data on the web over the past year. Verifiable Claims seems to have significant uptake. It is also significant that the Distributed Identifier WG charter has received numerous favorable reviews, and was just recently launched. JSON-LD has been a major success with the large deployment on Web sites via schema.org. JSON-LD 1.1 completed technical work, about to transition to CR More than 25% of websites today include schema.org data in JSON-LD The Web of Things description is in CR since May, making use of JSON-LD Verifiable Credentials data model is in CR since July, also making use of JSON-LD Continued strong interest in decentralized identifiers Engagement from the TAG with reframing core documents, such as Ethical Web Principles, to include data on the web within their scope Data is increasingly important for all organizations, especially with the rise of IoT and Big Data. W3C has a mature and extensive suite of standards relating to data that were developed over two decades of experience, with plans for further work on making it easier for developers to work with graph data and knowledge graphs. Linked Data is about the use of URIs as names for things, the ability to dereference these URIs to get further information and to include links to other data. There are ever-increasing sources of open Linked Data on the Web, as well as data services that are restricted to the suppliers and consumers of those services. The digital transformation of industry is seeking to exploit advanced digital technologies. This will facilitate businesses to integrate horizontally along the supply and value chains, and vertically from the factory floor to the office floor. W3C is seeking to make it easier to support enterprise-wide data management and governance, reflecting the strategic importance of data to modern businesses. Traditional approaches to data have focused on tabular databases (SQL/RDBMS), Comma Separated Value (CSV) files, and data embedded in PDF documents and spreadsheets. We're now in midst of a major shift to graph data with nodes and labeled directed links between them. Graph data is: Faster than using SQL and associated JOIN operations More favorable to integrating data from heterogeneous sources Better suited to situations where the data model is evolving In the wake of the recent W3C Workshop on Graph Data we are in the process of launching a Graph Standardization Business Group to provide a business perspective with use cases and requirements, to coordinate technical standards work and liaisons with external organizations. Web for All Security, Privacy, Identity All Security specifications, all Privacy specifications Authentication on the Web As the WebAuthn Level 1 W3C Recommendation published last March is seeing wide implementation and adoption of strong cryptographic authentication, work is proceeding on Level 2. The open standard Web API gives native authentication technology built into native platforms, browsers, operating systems (including mobile) and hardware, offering protection against hacking, credential theft, phishing attacks, thus aiming to end the era of passwords as a security construct. You may read more in our March press release. Privacy An increasing number of W3C specifications are benefitting from Privacy and Security review; there are security and privacy aspects to every specification. Early review is essential. Working with the TAG, the Privacy Interest Group has updated the Self-Review Questionnaire: Security and Privacy. Other recent work of the group includes public blogging further to the exploration of anti-patterns in standards and permission prompts. Security The Web Application Security Working Group adopted Feature Policy, aiming to allow developers to selectively enable, disable, or modify the behavior of some of these browser features and APIs within their application; and Fetch Metadata, aiming to provide servers with enough information to make a priori decisions about whether or not to service a request based on the way it was made, and the context in which it will be used. The Web Payment Security Interest Group, launched last April, convenes members from W3C, EMVCo, and the FIDO Alliance to discuss cooperative work to enhance the security and interoperability of Web payments (read more about payments). Internationalization (i18n) All Internationalization specifications, educational articles related to Internationalization, spec developers checklist Only a quarter or so current Web users use English online and that proportion will continue to decrease as the Web reaches more and more communities of limited English proficiency. If the Web is to live up to the "World Wide" portion of its name, and for the Web to truly work for stakeholders all around the world engaging with content in various languages, it must support the needs of worldwide users as they engage with content in the various languages. The growth of epublishing also brings requirements for new features and improved typography on the Web. It is important to ensure the needs of local communities are captured. The W3C Internationalization Initiative was set up to increase in-house resources dedicated to accelerating progress in making the World Wide Web "worldwide" by gathering user requirements, supporting developers, and education & outreach. For an overview of current projects see the i18n radar. W3C's Internationalization efforts progressed on a number of fronts recently: Requirements: New African and European language groups will work on the gap analysis, errata and layout requirements. Gap analysis: Japanese, Devanagari, Bengali, Tamil, Lao, Khmer, Javanese, and Ethiopic updated in the gap-analysis documents. Layout requirements document: notable progress tracked in the Southeast Asian Task Force while work continues on Chinese layout requirements. Developer support: Spec reviews: the i18n WG continues active review of specifications of the WHATWG and other W3C Working Groups. Short review checklist: easy way to begin a self-review to help spec developers understand what aspects of their spec are likely to need attention for internationalization, and points them to more detailed checklists for the relevant topics. It also helps those reviewing specs for i18n issues. Strings on the Web: Language and Direction Metadata lays out issues and discusses potential solutions for passing information about language and direction with strings in JSON or other data formats. The document was rewritten for clarity, and expanded. The group is collaborating with the JSON-LD and Web Publishing groups to develop a plan for updating RDF, JSON-LD and related specifications to handle metadata for base direction of text (bidi). User-friendly test format: a new format was developed for Internationalization Test Suite tests, which displays helpful information about how the test works. This particularly useful because those tests are pointed to by educational materials and gap-analysis documents. Web Platform Tests: a large number of tests in the i18n test suite have been ported to the WPT repository, including: css-counter-styles, css-ruby, css-syntax, css-test, css-text-decor, css-writing-modes, and css-pseudo. Education & outreach: (for all educational materials, see the HTML & CSS Authoring Techniques) Web Accessibility All Accessibility specifications, WAI resources The Web Accessibility Initiative supports W3C's Web for All mission. Recent achievements include: Education and training: Inaccessibility of CAPTCHA updated to bring our analysis and recommendations up to date with CAPTCHA practice today, concluding two years of extensive work and invaluable input from the public (read more on the W3C Blog Learn why your web content and applications should be accessible. The Education and Outreach Working Group has completed revision and updating of the Business Case for Digital Accessibility. Accessibility guidelines: The Accessibility Guidelines Working Group has continued to update WCAG Techniques and Understanding WCAG 2.1; and published a Candidate Recommendation of Accessibility Conformance Testing Rules Format 1.0 to improve inter-rater reliability when evaluating conformance of web content to WCAG An updated charter is being developed to host work on "Silver", the next generation accessibility guidelines (WCAG 2.2) There are accessibility aspects to most specifications. Check your work with the FAST checklist. Outreach to the world W3C Developer Relations To foster the excellent feedback loop between Web Standards development and Web developers, and to grow participation from that diverse community, recent W3C Developer Relations activities include: @w3cdevs tracks the enormous amount of work happening across W3C W3C Track during the Web Conference 2019 in San Francisco Tech videos: W3C published the 2019 Web Games Workshop videos The 16 September 2019 Developer Meetup in Fukuoka, Japan, is open to all and will combine a set of technical demos prepared by W3C groups, and a series of talks on a selected set of W3C technologies and projects W3C is involved with Mozilla, Google, Samsung, Microsoft and Bocoup in the organization of ViewSource 2019 in Amsterdam (read more on the W3C Blog) W3C Training In partnership with EdX, W3C's MOOC training program, W3Cx offers a complete "Front-End Web Developer" (FEWD) professional certificate program that consists of a suite of five courses on the foundational languages that power the Web: HTML5, CSS and JavaScript. We count nearly 900K students from all over the world. Translations Many Web users rely on translations of documents developed at W3C whose official language is English. W3C is extremely grateful to the continuous efforts of its community in ensuring our various deliverables in general, and in our specifications in particular, are made available in other languages, for free, ensuring their exposure to a much more diverse set of readers. Last Spring we developed a more robust system, a new listing of translations of W3C specifications and updated the instructions on how to contribute to our translation efforts. W3C Liaisons Liaisons and coordination with numerous organizations and Standards Development Organizations (SDOs) is crucial for W3C to: make sure standards are interoperable coordinate our respective agenda in Internet governance: W3C participates in ICANN, GIPO, IGF, the I* organizations (ICANN, IETF, ISOC, IAB). ensure at the government liaison level that our standards work is officially recognized when important to our membership so that products based on them (often done by our members) are part of procurement orders. W3C has ARO/PAS status with ISO. W3C participates in the EU MSP and Rolling Plan on Standardization ensure the global set of Web and Internet standards form a compatible stack of technologies, at the technical and policy level (patent regime, fragmentation, use in policy making) promote Standards adoption equally by the industry, the public sector, and the public at large Coralie Mercier, Editor, W3C Marketing & Communications $Id: Overview.html,v 1.60 2019/10/15 12:05:52 coralie Exp $ Copyright © 2019 W3C ® (MIT, ERCIM, Keio, Beihang) Usage policies apply.
Rastaman4e
NICEHASH PLATFORM TERMS OF USE AND NICEHASH MINING TERMS OF SERVICE PLEASE READ THESE NICEHASH PLATFORM TERMS OF USE AND NICEHASH MINING TERMS OF SERVICE (“Terms”) CAREFULLY BEFORE USING THE THE PLATFORM OR SERVICES DESCRIBED HEREIN. BY SELECTING “I AGREE”, ACCESSING THE PLATFORM, USING NICEHASH MINING SERVICES OR DOWNLOADING OR USING NICEHASH MINING SOFTWARE, YOU ARE ACKNOWLEDGING THAT YOU HAVE READ THESE TERMS, AS AMENDED FROM TIME TO TIME, AND YOU ARE AGREEING TO BE BOUND BY THEM. IF YOU DO NOT AGREE TO THESE TERMS, OR ANY SUBSEQUENT AMENDMENTS, CHANGES OR UPDATES, DO NOT ACCESS THE PLATFORM, USE NICEHASH MINING SERVICES OR USE THE NICEHASH MINING SOFTWARE. GENERAL These Terms apply to users of the NiceHash Platform (“Platform” and NiceHash Mining Services (“Services”) which are provided to you by NICEHASH Ltd, company organized and existing under the laws of the British Virgin Islands, with registered address at Intershore Chambers, Road Town, Tortola, British Virgin Islands, registration number: 2048669, hereinafter referred to as “NiceHash, as well as “we” or “us”. ELIGIBILITY By using the NiceHash platform and NiceHash Mining Services, you represent and warrant that you: are at least Minimum Age and have capacity to form a binding contract; have not previously been suspended or removed from the NiceHash Platform; have full power and authority to enter into this agreement and in doing so will not violate any other agreement to which you are a party; are not not furthering, performing, undertaking, engaging in, aiding, or abetting any unlawful activity through your relationship with us, through your use of NiceHash Platform or use of NiceHash Mining Services; will not use NiceHash Platform or NiceHash Mining Services if any applicable laws in your country prohibit you from doing so in accordance with these Terms. We reserve the right to terminate your access to the NiceHash Platform and Mining Services for any reason and in our sole and absolute discretion. Use of NiceHash Platform and Mining Services is void where prohibited by applicable law. Depending on your country of residence or incorporation or registered office, you may not be able to use all the functions of the NiceHash Platform or services provided therein. It is your responsibility to follow the rules and laws in your country of residence and/or country from which you access the NiceHash Platform. DEFINITIONS NiceHash Platform means a website located on the following web address: www.nicehash.com. NiceHash Mining Services mean all services provided by NiceHash, namely the provision of the NiceHash Platform, NiceHash Hashing power marketplace, NiceHash API, NiceHash OS, NiceHash Mining Software including licence for NiceHash Miner, NiceHash Private Endpoint, NiceHash Account, NiceHash mobile apps, and all other software products, applications and services associated with these products, except for the provision of NiceHash Exchange Services. NiceHash Exchange Service means a service which allows trading of digital assets in the form of digital tokens or cryptographic currency for our users by offering them a trading venue, helping them find a trading counterparty and providing the means for transaction execution. NiceHash Exchange Services are provided by NICEX Ltd and accessible at the NiceHash Platform under NiceHash Exchange Terms of Service. Hashing power marketplace means an infrastructure provided by the NiceHash which enables the Hashing power providers to point their rigs towards NiceHash stratum servers where Hashing power provided by different Hashing power providers is gathered and sold as generic Hashing power to the Hashing power buyers. Hashing power buyer means a legal entity or individual who buys the gathered and generic hashing power on the Hashing power marketplace from undefined Hashing power providers. Hashing power provider means a legal entity or individual who sells his hashing power on the Hashing power marketplace to undefined Hashing power buyers. NiceHash Mining Software means NiceHash Miner and any other software available via the NiceHash Platform. NiceHash Miner means a comprehensive software with graphical user interface and web interface, owned by NiceHash. NiceHash Miner is a process manager software which enables the Hashing power providers to point their rigs towards NiceHash stratum servers and sell their hashing power to the Hashing power buyers. NiceHash Miner also means any and all of its code, compilations, updates, upgrades, modifications, error corrections, patches and bug fixes and similar. NiceHash Miner does not mean third party software compatible with NiceHash Miner (Third Party Plugins and Miners). NiceHash QuickMiner means a software accessible at https://www.nicehash.com/quick-miner which enables Hashing power providers to point their PCs or rigs towards NiceHash stratum servers and sell their hashing power to the Hashing power buyers. NiceHash QuickMiner is intended as a tryout tool. Hashing power rig means all hardware which produces hashing power that represents computation power which is required to calculate the hash function of different type of cryptocurrency. Secondary account is an account managed by third party from which the Account holder deposits funds to his NiceHash Wallet or/and to which the Account holder withdraws funds from his NiceHash Wallet. Stratum is a lightweight mining protocol: https://slushpool.com/help/manual/stratum-protocol. NiceHash Account means an online account available on the NiceHash Platform and created by completing the registration procedure on the NiceHash Platform. Account holder means an individual or legal entity who completes the registration procedure and successfully creates the NiceHash Account. Minimum Age means 18 years old or older, if in order for NiceHash to lawfully provide the Services to you without parental consent (including using your personal data). NiceHash Wallet means a wallet created automatically for the Account holder and provided by the NiceHash Wallet provider. NiceHash does not hold funds on behalf of the Account holder but only transfers Account holder’s requests regarding the NiceHash Wallet transaction to the NiceHash Wallet provider who executes the requested transactions. In this respect NiceHash only processes and performs administrative services related to the payments regarding the NiceHash Mining Services and NiceHash Exchange Services, if applicable. NiceHash Wallet provider is a third party which on the behalf of the Account holder provides and manages the NiceHash Wallet, holds, stores and transfers funds and hosts NiceHash Wallet. For more information about the NiceHash Wallet provider, see the following website: https://www.bitgo.com/. Blockchain network is a distributed database that is used to maintain a continuously growing list of records, called blocks. Force Majeure Event means any governmental or relevant regulatory regulations, acts of God, war, riot, civil commotion, fire, flood, or any disaster or an industrial dispute of workers unrelated to you or NiceHash. Any act, event, omission, happening or non-happening will only be considered Force Majeure if it is not attributable to the wilful act, neglect or failure to take reasonable precautions of the affected party, its agents, employees, consultants, contractors and sub-contractors. SALE AND PURCHASE OF HASHING POWER Hashing power providers agree to sell and NiceHash agrees to proceed Hashing power buyers’ payments for the provided hashing power on the Hashing power marketplace, on the Terms set forth herein. According to the applicable principle get-paid-per-valid-share (pay as you go principle) Hashing power providers will be paid only for validated and accepted hashing power to their NiceHash Wallet or other wallet, as indicated in Account holder’s profile settings or in stratum connection username. In some cases, no Hashing power is sent to Hashing power buyers or is accepted by NiceHash Services, even if Hashing power is generated on the Hashing power rigs. These cases include usage of slower hardware as well as software, hardware or network errors. In these cases, Hashing power providers are not paid for such Hashing power. Hashing power buyers agree to purchase and NiceHash agrees to process the order and forward the purchased hashing power on the Hashing power marketplace, on the Terms set forth herein. According to the applicable principle pay-per-valid-share (pay as you go principle) Hashing power buyers will pay from their NiceHash Wallet only for the hashing power that was validated by our engine. When connection to the mining pool which is selected on the Hashing power order is lost or when an order is cancelled during its lifetime, Hashing power buyer pays for additional 10 seconds worth of hashing power. Hashing power order is charged for extra hashing power when mining pool which is selected on the Hashing power order, generates rapid mining work changes and/or rapid mining job switching. All payments including any fees will be processed in crypto currency and NiceHash does not provide an option to sale and purchase of the hashing power in fiat currency. RISK DISCLOSURE If you choose to use NiceHash Platform, Services and NiceHash Wallet, it is important that you remain aware of the risks involved, that you have adequate technical resources and knowledge to bear such risks and that you monitor your transactions carefully. General risk You understand that NiceHash Platform and Services, blockchain technology, Bitcoin, all other cryptocurrencies and cryptotokens, proof of work concept and other associated and related technologies are new and untested and outside of NiceHash’s control. You acknowledge that there are major risks associated with these technologies. In addition to the risks disclosed below, there are risks that NiceHash cannot foresee and it is unreasonable to believe that such risk could have been foreseeable. The performance of NiceHash’s obligation under these Terms will terminate if market or technology circumstances change to such an extent that (i) these Terms clearly no longer comply with NiceHash’s expectations, (ii) it would be unjust to enforce NiceHash’s obligations in the general opinion or (iii) NiceHash’s obligation becomes impossible. NiceHash Account abuse You acknowledge that there is risk associated with the NiceHash Account abuse and that you have been fully informed and warned about it. The funds stored in the NiceHash Wallet may be disposed by third party in case the third party obtains the Account holder’s login credentials. The Account holder shall protect his login credentials and his electronic devices where the login credentials are stored against unauthorized access. Regulatory risks You acknowledge that there is risk associated with future legislation which may restrict, limit or prohibit certain aspects of blockchain technology which may also result in restriction, limitation or prohibition of NiceHash Services and that you have been fully informed and warned about it. Risk of hacking You acknowledge that there is risk associated with hacking NiceHash Services and NiceHash Wallet and that you have been fully informed and warned about it. Hacker or other groups or organizations may attempt to interfere with NiceHash Services or NiceHash Wallet in any way, including without limitation denial of services attacks, Sybil attacks, spoofing, smurfing, malware attacks, mining attacks or consensus-based attacks. Cryptocurrency risk You acknowledge that there is risk associated with the cryptocurrencies which are used as payment method and that you have been fully informed and warned about it. Cryptocurrencies are prone to, but not limited to, value volatility, transaction costs and times uncertainty, lack of liquidity, availability, regulatory restrictions, policy changes and security risks. NiceHash Wallet risk You acknowledge that there is risk associated with funds held on the NiceHash Wallet and that you have been fully informed and warned about it. You acknowledge that NiceHash Wallet is provided by NiceHash Wallet provider and not NiceHash. You acknowledge and agree that NiceHash shall not be responsible for any NiceHash Wallet provider’s services, including their accuracy, completeness, timeliness, validity, copyright compliance, legality, decency, quality or any other aspect thereof. NiceHash does not assume and shall not have any liability or responsibility to you or any other person or entity for any Hash Wallet provider’s services. Hash Wallet provider’s services and links thereto are provided solely as a convenience to you and you access and use them entirely at your own risk and subject to NiceHash Wallet provider’s terms and conditions. Since the NiceHash Wallet is a cryptocurrency wallet all funds held on it are entirely uninsured in contrast to the funds held on the bank account or other financial institutions which are insured. Connection risk You acknowledge that there are risks associated with usage of NiceHash Services which are provided through the internet including, but not limited to, the failure of hardware, software, configuration and internet connections and that you have been fully informed and warned about it. You acknowledge that NiceHash will not be responsible for any configuration, connection or communication failures, disruptions, errors, distortions or delays you may experience when using NiceHash Services, however caused. Hashing power provision risk You acknowledge that there are risks associated with the provisions of the hashing power which is provided by the Hashing power providers through the Hashing power marketplace and that you have been fully informed and warned about it. You acknowledge that NiceHash does not provide the hashing power but only provides the Hashing power marketplace as a service. Hashing power providers’ Hashing power rigs are new and untested and outside of NiceHash’s control. There is a major risk that the Hashing power rigs (i) will stop providing hashing power, (ii) will provide hashing power in an unstable way, (iii) will be wrongly configured or (iv) provide insufficient speed of the hashing power. Hashing power rigs as hardware could be subject of damage, errors, electricity outage, misconfiguration, connection or communication failures and other malfunctions. NiceHash will not be responsible for operation of Hashing power rigs and its provision of hashing power. By submitting a Hashing power order you agree to Hashing power no-refund policy – all shares forwarded to mining pool, selected on the Hashing power order are final and non-refundable. Hashing power profitability risk You acknowledge that there is risk associated with the profitability of the hashing power provision and that you have been fully informed and warned about it. You acknowledge that all Hashing power rig’s earning estimates and profitability calculations on NiceHash Platform are only for informational purposes and were made based on the Hashing power rigs set up in the test environments. NiceHash does not warrant that your Hashing power rigs would achieve the same profitability or earnings as calculated on NiceHash Platform. There is risk that your Hashing power rig would not produce desired hashing power quantity and quality and that your produced hashing power would differentiate from the hashing power produced by our Hashing power rigs set up in the test environments. There is risk that your Hashing power rigs would not be as profitable as our Hashing power rigs set up in the test environments or would not be profitable at all. WARRANTIES NiceHash Platform and Mining Services are provided on the “AS IS” and “AS AVAILABLE” basis, including all faults and defects. To the maximum extent permitted by applicable law, NiceHash makes no representations and warranties and you waive all warranties of any kind. Particularly, without limiting the generality of the foregoing, the NiceHash makes no representations and warranties, whether express, implied, statutory or otherwise regarding NiceHash Platform and Mining Services or other services related to NiceHash Platform and provided by third parties, including any warranty that such services will be uninterrupted, harmless, secure or not corrupt or damaged, meet your requirements, achieve any intended results, be compatible or work with any other software, applications, systems or services, meet any performance or error free or that any errors or defects can or will be corrected. Additionally NiceHash makes no representations and warranties, whether express, implied, statutory or otherwise of merchantability, suitability, reliability, availability, timeliness, accuracy, satisfactory quality, fitness for a particular purpose or quality, title and non-infringement with respect to any of the Mining Services or other services related to NiceHash Platform and provided by third parties, or quiet enjoyment and any warranties arising out of any course of dealing, course of performance, trade practice or usage of NiceHash Platform and Mining Services including information, content and material contained therein. Especially NiceHash makes no representations and warranties, whether express, implied, statutory or otherwise regarding any payment services and systems, NiceHash Wallet which is provided by third party or any other financial services which might be related to the NiceHash Platform and Mining Services. You acknowledge that you do not rely on and have not been induced to accept the NiceHash Platform and Mining Services according to these Terms on the basis of any warranties, representations, covenants, undertakings or any other statement whatsoever, other than expressly set out in these Terms that neither the NiceHash nor any of its respective agents, officers, employees or advisers have given any such warranties, representations, covenants, undertakings or other statements. LIABILITY NiceHash and their respective officers, employees or agents will not be liable to you or anyone else, to the maximum extent permitted by applicable law, for any damages of any kind, including, but not limited to, direct, consequential, incidental, special or indirect damages (including but not limited to lost profits, trading losses or damages that result from use or loss of use of NiceHash Services or NiceHash Wallet), even if NiceHash has been advised of the possibility of such damages or losses, including, without limitation, from the use or attempted use of NiceHash Platform and Mining Services, NiceHash Wallet or other related websites or services. NiceHash does not assume any obligations to users in connection with the unlawful alienation of Bitcoins, which occurred on 6. 12. 2017 with NICEHASH, d. o. o., and has been fully reimbursed with the completion of the NiceHash Repayment Program. NiceHash will not be responsible for any compensation, reimbursement, or damages arising in connection with: (i) your inability to use the NiceHash Platform and Mining Services, including without limitation as a result of any termination or suspension of the NiceHash Platform or these Terms, power outages, maintenance, defects, system failures, mistakes, omissions, errors, defects, viruses, delays in operation or transmission or any failure of performance, (ii) the cost of procurement of substitute goods or services, (iii) any your investments, expenditures, or commitments in connection with these Terms or your use of or access to the NiceHash Platform and Mining Services, (iv) your reliance on any information obtained from NiceHash, (v) Force Majeure Event, communications failure, theft or other interruptions or (vi) any unauthorized access, alteration, deletion, destruction, damage, loss or failure to store any data, including records, private key or other credentials, associated with NiceHash Platform and Mining Services or NiceHash Wallet. Our aggregate liability (including our directors, members, employees and agents), whether in contract, warranty, tort (including negligence, whether active, passive or imputed), product liability, strict liability or other theory, arising out of or relating to the use of NiceHash Platform and Mining Services, or inability to use the Platform and Services under these Terms or under any other document or agreement executed and delivered in connection herewith or contemplated hereby, shall in any event not exceed 100 EUR per user. You will defend, indemnify, and hold NiceHash harmless and all respective employees, officers, directors, and representatives from and against any claims, demand, action, damages, loss, liabilities, costs and expenses (including reasonable attorney fees) arising out of or relating to (i) any third-party claim concerning these Terms, (ii) your use of, or conduct in connection with, NiceHash Platform and Mining Services, (iii) any feedback you provide, (iv) your violation of these Terms, (v) or your violation of any rights of any other person or entity. If you are obligated to indemnify us, we will have the right, in our sole discretion, to control any action or proceeding (at our expense) and determine whether we wish to settle it. If we are obligated to respond to a third-party subpoena or other compulsory legal order or process described above, you will also reimburse us for reasonable attorney fees, as well as our employees’ and contractors’ time and materials spent responding to the third-party subpoena or other compulsory legal order or process at reasonable hourly rates. The Services and the information, products, and services included in or available through the NiceHash Platform may include inaccuracies or typographical errors. Changes are periodically added to the information herein. Improvements or changes on the NiceHash Platform can be made at any time. NICEHASH ACCOUNT The registration of the NiceHash Account is made through the NiceHash Platform, where you are required to enter your email address and password in the registration form. After successful completion of registration, the confirmation email is sent to you. After you confirm your registration by clicking on the link in the confirmation email the NiceHash Account is created. NiceHash will send you proof of completed registration once the process is completed. When you create NiceHash Account, you agree to (i) create a strong password that you change frequently and do not use for any other website, (ii) implement reasonable and appropriate measures designed to secure access to any device which has access to your email address associated with your NiceHash Account and your username and password for your NiceHash Account, (iii) maintain the security of your NiceHash Account by protecting your password and by restricting access to your NiceHash Account; (iv) promptly notify us if you discover or otherwise suspect any security breaches related to your NiceHash Account so we can take all required and possible measures to secure your NiceHash Account and (v) take responsibility for all activities that occur under your NiceHash Account and accept all risks of any authorized or unauthorized access to your NiceHash Account, to the maximum extent permitted by law. Losing access to your email, registered at NiceHash Platform, may also mean losing access to your NiceHash Account. You may not be able to use the NiceHash Platform or Mining Services, execute withdrawals and other security sensitive operations until you regain access to your email address, registered at NiceHash Platform. If you wish to change the email address linked to your NiceHash Account, we may ask you to complete a KYC procedure for security purposes. This step serves solely for the purpose of identification in the process of regaining access to your NiceHash Account. Once the NiceHash Account is created a NiceHash Wallet is automatically created for the NiceHash Account when the request for the first deposit to the NiceHash Wallet is made by the user. Account holder’s NiceHash Wallet is generated by NiceHash Wallet provider. Account holder is strongly suggested to enhance the security of his NiceHash Account by adding an additional security step of Two-factor authentication (hereinafter “2FA”) when logging into his account, withdrawing funds from his NiceHash Wallet or placing a new order. Account holder can enable this security feature in the settings of his NiceHash Account. In the event of losing or changing 2FA code, we may ask the Account holder to complete a KYC procedure for security reasons. This step serves solely for the purpose of identification in the process of reactivating Account holders 2FA and it may be subject to an a In order to use certain functionalities of the NiceHash Platform, such as paying for the acquired hashing power, users must deposit funds to the NiceHash Wallet, as the payments for the hashing power could be made only through NiceHash Wallet. Hashing power providers have two options to get paid for the provided hashing power: (i) by using NiceHash Wallet to receive the payments or (ii) by providing other Bitcoin address where the payments shall be received to. Hashing power providers provide their Bitcoin address to NiceHash by providing such details via Account holder’s profile settings or in a form of a stratum username while connecting to NiceHash stratum servers. Account holder may load funds on his NiceHash Wallet from his Secondary account. Account holder may be charged fees by the Secondary account provider or by the blockchain network for such transaction. NiceHash is not responsible for any fees charged by Secondary account providers or by the blockchain network or for the management and security of the Secondary accounts. Account holder is solely responsible for his use of Secondary accounts and Account holder agrees to comply with all terms and conditions applicable to any Secondary accounts. The timing associated with a load transaction will depend in part upon the performance of Secondary accounts providers, the performance of blockchain network and performance of the NiceHash Wallet provider. NiceHash makes no guarantee regarding the amount of time it may take to load funds on to NiceHash Wallet. NiceHash Wallet shall not be used by Account holders to keep, save and hold funds for longer period and also not for executing other transactions which are not related to the transactions regarding the NiceHash Platform. The NiceHash Wallet shall be used exclusively and only for current and ongoing transactions regarding the NiceHash Platform. Account holders shall promptly withdraw any funds kept on the NiceHash Wallet that will not be used and are not intended for the reasons described earlier. Commission fees may be charged by the NiceHash Wallet provider, by the blockchain network or by NiceHash for any NiceHash Wallet transactions. Please refer to the NiceHash Platform, for more information about the commission fees for NiceHash Wallet transactions which are applicable at the time of the transaction. NiceHash reserves the right to change these commission fees according to the provisions to change these Terms at any time for any reason. You have the right to use the NiceHash Account only in compliance with these Terms and other commercial terms and principles published on the NiceHash Platform. In particular, you must observe all regulations aimed at ensuring the security of funds and financial transactions. Provided that the balance of funds in your NiceHash Wallet is greater than any minimum balance requirements needed to satisfy any of your open orders, you may withdraw from your NiceHash Wallet any amount of funds, up to the total amount of funds in your NiceHash Wallet in excess of such minimum balance requirements, to Secondary Account, less any applicable withdrawal fees charged by NiceHash or by the blockchain network for such transaction. Withdrawals are not processed instantly and may be grouped with other withdrawal requests. Some withdrawals may require additional verification information which you will have to provide in order to process the withdrawal. It may take up to 24 hours before withdrawal is fully processed and distributed to the Blockchain network. Please refer to the NiceHash Platform for more information about the withdrawal fees and withdrawal processing. NiceHash reserves the right to change these fees according to the provisions to change these Terms at any time for any reason. You have the right to close the NiceHash Account. In case you have funds on your NiceHash Wallet you should withdraw funds from your account prior to requesting NiceHash Account closure. After we receive your NiceHash Account closure request we will deactivate your NiceHash Account. You can read more about closing the NiceHash Account in our Privacy Policy. Your NiceHash Account may be deactivated due to your inactivity. Your NiceHash account may be locked and a mandatory KYC procedure is applied for security reasons, if it has been more than 6 month since your last login. NiceHash or any of its partners or affiliates are not responsible for the loss of the funds, stored on or transferred from the NiceHash Wallet, as well as for the erroneous implementation of the transactions made via NiceHash Wallet, where such loss or faulty implementation of the transaction are the result of a malfunction of the NiceHash Wallet and the malfunction was caused by you or the NiceHash Wallet provider. You are obliged to inform NiceHash in case of loss or theft, as well as in the case of any possible misuse of the access data to your NiceHash Account, without any delay, and demand change of access data or closure of your existing NiceHash Account and submit a request for new access data. NiceHash will execute the change of access data or closure of the NiceHash Account and the opening of new NiceHash Account as soon as technically possible and without any undue delay. All information pertaining to registration, including a registration form, generation of NiceHash Wallet and detailed instructions on the use of the NiceHash Account and NiceHash Wallet are available at NiceHash Platform. The registration form as well as the entire system is properly protected from unwanted interference by third parties. KYC PROCEDURE NiceHash is appropriately implementing AML/CTF and security measures to diligently detect and prevent any malicious or unlawful use of NiceHash Services or use, which is strictly prohibited by these Terms, which are deemed as your agreement to provide required personal information for identity verification. Security measures include a KYC procedure, which is aimed at determining the identity of an individual user or an organisation. We may ask you to complete this procedure before enabling some or all functionalities of the NiceHash platform and provide its services. A KYC procedure might be applied as a security measure when: changing the email address linked to your NiceHash Account, losing or changing your 2FA code; logging in to your NiceHash Account for the first time after the launch of the new NiceHash Platform in August 2019, gaining access to all or a portion of NiceHash Services, NiceHash Wallet and its related services or any portion thereof if they were disabled due to and activating your NiceHash Account if it has been deactivated due to its inactivity and/or security or other reasons. HASHING POWER TRANSACTIONS General NiceHash may, at any time and in our sole discretion, (i) refuse any order submitted or provided hashing power, (ii) cancel an order or part of the order before it is executed, (iii) impose limits on the order amount permitted or on provided hashing power or (iv) impose any other conditions or restrictions upon your use of the NiceHash Platform and Mining Services without prior notice. For example, but not limited to, NiceHash may limit the number of open orders that you may establish or limit the type of supported Hashing power rigs and mining algorithms or NiceHash may restrict submitting orders or providing hashing power from certain locations. Please refer to the NiceHash Platform, for more information about terminology, hashing power transactions’ definitions and descriptions, order types, order submission, order procedure, order rules and other restrictions and limitations of the hashing power transactions. NiceHash reserves the right to change any transaction, definitions, description, order types, procedure, rules, restrictions and limitations at any time for any reason. Orders, provision of hashing power, payments, deposits, withdrawals and other transactions are accepted only through the interface of the NiceHash Platform, NiceHash API and NiceHash Account and are fixed by the software and hardware tools of the NiceHash Platform. If you do not understand the meaning of any transaction option, NiceHash strongly encourages you not to utilize any of those options. Hashing Power Order In order to submit an Hashing Power Order via the NiceHash Account, the Hashing power buyer must have available funds in his NiceHash Wallet. Hashing power buyer submits a new order to buy hashing power via the NiceHash Platform or via the NiceHash API by setting the following parameters in the order form: NiceHash service server location, third-party mining pool, algorithm to use, order type, set amount he is willing to spend on this order, set price per hash he is willing to pay, optionally approximate limit maximum hashing power for his order and other parameters as requested and by confirming his order. Hashing power buyer may submit an order in maximum amount of funds available on his NiceHash Wallet at the time of order submission. Order run time is only approximate since order’s lifetime is based on the number of hashes that it delivers. Particularly during periods of high volume, illiquidity, fast movement or volatility in the marketplace for any digital assets or hashing power, the actual price per hash at which some of the orders are executed may be different from the prevailing price indicated on NiceHash Platform at the time of your order. You understand that NiceHash is not liable for any such price fluctuations. In the event of market disruption, NiceHash Services disruption, NiceHash Hashing Power Marketplace disruption or manipulation or Force Majeure Event, NiceHash may do one or more of the following: (i) suspend access to the NiceHash Account or NiceHash Platform, or (ii) prevent you from completing any actions in the NiceHash Account, including closing any open orders. Following any such event, when trading resumes, you acknowledge that prevailing market prices may differ significantly from the prices available prior to such event. When Hashing power buyer submits an order for purchasing of the Hashing power via NiceHash Platform or via the NiceHash API he authorizes NiceHash to execute the order on his behalf and for his account in accordance with such order. Hashing power buyer acknowledges and agrees that NiceHash is not acting as his broker, intermediary, agent or advisor or in any fiduciary capacity. NiceHash executes the order in set order amount minus NiceHash’s processing fee. Once the order is successfully submitted the order amount starts to decrease in real time according to the payments for the provided hashing power. Hashing power buyer agrees to pay applicable processing fee to NiceHash for provided services. The NiceHash’s fees are deducted from Hashing power buyer’s NiceHash Wallet once the whole order is exhausted and completed. Please refer to the NiceHash Platform, for more information about the fees which are applicable at the time of provision of services. NiceHash reserves the right to change these fees according to the provisions to change these Terms at any time for any reason. The changed fees will apply only for the NiceHash Services provided after the change of the fees. All orders submitted prior the fee change but not necessary completed prior the fee change will be charged according to the fees applicable at the time of the submission of the order. NiceHash will attempt, on a commercially reasonable basis, to execute the Hashing power buyer’s purchase of the hashing power on the Hashing power marketplace under these Terms according to the best-effort delivery approach. In this respect NiceHash does not guarantee that the hashing power will actually be delivered or verified and does not guarantee any quality of the NiceHash Services. Hashing power buyer may cancel a submitted order during order’s lifetime. If an order has been partially executed, Hashing power buyer may cancel the unexecuted remainder of the order. In this case the NiceHash’s processing fee will apply only for the partially executed order. NiceHash reserves the right to refuse any order cancellation request once the order has been submitted. Selling Hashing Power and the Provision of Hashing Power In order to submit the hashing power to the NiceHash stratum server the Hashing power provider must first point its Hashing power rig to the NiceHash stratum server. Hashing power provider is solely responsible for configuration of his Hashing power rig. The Hashing power provider gets paid by Hashing power buyers for all validated and accepted work that his Hashing power rig has produced. The provided hashing power is validated by NiceHash’s stratum engine and validator. Once the hashing power is validated the Hashing power provider is entitled to receive the payment for his work. NiceHash logs all validated hashing power which was submitted by the Hashing power provider. The Hashing power provider receives the payments of current globally weighted average price on to his NiceHash Wallet or his selected personal Bitcoin address. The payments are made periodically depending on the height of payments. NiceHash reserves the right to hold the payments any time and for any reason by indicating the reason, especially if the payments represent smaller values. Please refer to the NiceHash Platform, for more information about the height of payments for provided hashing power, how the current globally weighted average price is calculated, payment periods, payment conditions and conditions for detention of payments. NiceHash reserves the right to change this payment policy according to the provisions to change these Terms at any time for any reason. All Hashing power rig’s earnings and profitability calculations on NiceHash Platform are only for informational purposes. NiceHash does not warrant that your Hashing power rigs would achieve the same profitability or earnings as calculated on NiceHash Platform. You hereby acknowledge that it is possible that your Hashing power rigs would not be as profitable as indicated in our informational calculations or would not be profitable at all. Hashing power provider agrees to pay applicable processing fee to NiceHash for provided Services. The NiceHash’s fees are deducted from all the payments made to the Hashing power provider for his provided work. Please refer to the NiceHash Platform, for more information about the fees which are applicable at the time of provision of services. Hashing power provider which has not submitted any hashing power to the NiceHash stratum server for a period of 90 days agrees that a processing fee of 0.00001000 BTC or less, depending on the unpaid mining balance, will be deducted from his unpaid mining balance. NiceHash reserves the right to change these fees according to the provisions to change these Terms at any time for any reason. The changed fees will apply only for the NiceHash Services provided after the change of the fees. NiceHash will attempt, on a commercially reasonable basis, to execute the provision of Hashing power providers’ hashing power on the Hashing power marketplace under these Terms according to the best-effort delivery approach. In this respect NiceHash does not guarantee that the hashing power will actually be delivered or verified and does not guarantee any quality of the NiceHash Services. Hashing power provider may disconnect the Hashing power rig from the NiceHash stratum server any time. NiceHash reserves the right to refuse any Hashing power rig once the Hashing power rig has been pointed towards NiceHash stratum server. RESTRICTIONS When accessing the NiceHash Platform or using the Mining Services or NiceHash Wallet, you warrant and agree that you: will not use the Services for any purpose that is unlawful or prohibited by these Terms, will not violate any law, contract, intellectual property or other third-party right or commit a tort, are solely responsible for your conduct while accessing the NiceHash Platform or using the Mining Services or NiceHash Wallet, will not access the NiceHash Platform or use the Mining Services in any manner that could damage, disable, overburden, or impair the provision of the Services or interfere with any other party's use and enjoyment of the Services, will not misuse and/or maliciously use Hashing power rigs, you will particularly refrain from using network botnets or using NiceHash Platform or Mining Services with Hashing power rigs without the knowledge or awareness of Hashing power rig owner(s), will not perform or attempt to perform any kind of malicious attacks on blockchains with the use of the NiceHash Platform or Mining Services, intended to maliciously gain control of more than 50% of the network's mining hash rate, will not use the NiceHash Platform or Mining Services for any kind of market manipulation or disruption, such as but not limited to NiceHash Mining Services disruption and NiceHash Hashing Power Marketplace manipulation. In case of any of the above mentioned events, NiceHash reserves the right to immediately suspend your NiceHash Account, freeze or block the funds in the NiceHash Wallet, and suspend your access to NiceHash Platform, particularly if NiceHash believes that such NiceHash Account are in violation of these Terms or Privacy Policy, or any applicable laws and regulation. RIGHTS AND OBLIGATIONS In the event of disputes with you, NiceHash is obliged to prove that the NiceHash service which is the subject of the dispute was not influenced by technical or other failure. You will have possibility to check at any time, subject to technical availability, the transactions details, statistics and available balance of the funds held on the NiceHash Wallet, through access to the NiceHash Account. You may not obtain or attempt to obtain any materials or information through any means not intentionally made available or provided to you or public through the NiceHash Platform or Mining Services. We may, in our sole discretion, at any time, for any or no reason and without liability to you, with prior notice (i) terminate all rights and obligations between you and NiceHash derived from these Terms, (ii) suspend your access to all or a portion of NiceHash Services, NiceHash Wallet and its related services or any portion thereof and delete or deactivate your NiceHash Account and all related information and files in such account (iii) modify, suspend or discontinue, temporarily or permanently, any portion of NiceHash Platform or (iv) provide enhancements or improvements to the features and functionality of the NiceHash Platform, which may include patches, bug fixes, updates, upgrades and other modifications. Any such change may modify or delete certain portion, features or functionalities of the NiceHash Services. You agree that NiceHash has no obligation to (i) provide any updates, or (ii) continue to provide or enable any particular portion, features or functionalities of the NiceHash Services to you. You further agree that all changes will be (i) deemed to constitute an integral part of the NiceHash Platform, and (ii) subject to these Terms. In the event of your breach of these Terms, including but not limited to, for instance, in the event that you breach any term of these Terms, due to legal grounds originating in anti-money laundering and know your client regulation and procedures, or any other relevant applicable regulation, all right and obligations between you and NiceHash derived from these Terms terminate automatically if you fail to comply with these Terms within the notice period of 8 days after you have been warned by NiceHash about the breach and given 8 days period to cure the breaches. NiceHash reserves the right to keep these rights and obligations in force despite your breach of these Terms. In the event of termination, NiceHash will attempt to return you any funds stored on your NiceHash Wallet not otherwise owed to NiceHash, unless NiceHash believes you have committed fraud, negligence or other misconduct. You acknowledge that the NiceHash Services and NiceHash Wallet may be suspended for maintenance. Technical information about the hashing power transactions, including information about chosen server locations, algorithms used, selected mining pools, your business or activities, including all financial and technical information, specifications, technology together with all details of prices, current transaction performance and future business strategy represent confidential information and trade secrets. NiceHash shall, preserve the confidentiality of all before mentioned information and shall not disclose or cause or permit to be disclosed without your permission any of these information to any person save to the extent that such disclosure is strictly to enable you to perform or comply with any of your obligations under these Terms, or to the extent that there is an irresistible legal requirement on you or NiceHash to do so; or where the information has come into the public domain otherwise than through a breach of any of the terms of these Terms. NiceHash shall not be entitled to make use of any of these confidential information and trade secrets other than during the continuance of and pursuant to these Terms and then only for the purpose of carrying out its obligations pursuant to these Terms. NICEHASH MINER LICENSE (NICEHASH MINING SOFTWARE LICENSE) NiceHash Mining Software whether on disk, in read only memory, or any other media or in any other form is licensed, not sold, to you by NiceHash for use only under these Terms. NiceHash retains ownership of the NiceHash Mining Software itself and reserves all rights not expressly granted to you. Subject to these Terms, you are granted a limited, non-transferable, non-exclusive and a revocable license to download, install and use the NiceHash Mining Software. You may not distribute or make the NiceHash Mining Software available over a network where it could be used by multiple devices at the same time. You may not rent, lease, lend, sell, redistribute, assign, sublicense host, outsource, disclose or otherwise commercially exploit the NiceHash Mining Software or make it available to any third party. There is no license fee for the NiceHash Mining Software. NiceHash reserves the right to change the license fee policy according to the provisions to change these Terms any time and for any reason, including to decide to start charging the license fee for the NiceHash Mining Software. You are responsible for any and all applicable taxes. You may not, and you agree not to or enable others to, copy, decompile, reverse engineer, reverse compile, disassemble, attempt to derive the source code of, decrypt, modify, or create derivative works of the NiceHash Mining Software or any services provided by the NiceHash Mining Software, or any part thereof (except as and only to the extent any foregoing restriction is prohibited by applicable law or to the extent as may be permitted by the licensing terms governing use of open-sourced components included with the NiceHash Mining Software). If you choose to allow automatic updates, your device will periodically check with NiceHash for updates and upgrades to the NiceHash Mining Software and, if an update or upgrade is available, the update or upgrade will automatically download and install onto your device and, if applicable, your peripheral devices. You can turn off the automatic updates altogether at any time by changing the automatic updates settings found within the NiceHash Mining Software. You agree that NiceHash may collect and use technical and related information, including but not limited to technical information about your computer, system and application software, and peripherals, that is gathered periodically to facilitate the provision of software updates, product support and other services to you (if any) related to the NiceHash Mining Software and to verify compliance with these Terms. NiceHash may use this information, as long as it is in a form that does not personally identify you, to improve our NiceHash Services. NiceHash Mining Software contains features that rely upon information about your selected mining pools. You agree to our transmission, collection, maintenance, processing, and use of all information obtained from you about your selected mining pools. You can opt out at any time by going to settings in the NiceHash Mining Software. NiceHash may provide interest-based advertising to you. If you do not want to receive relevant ads in the NiceHash Mining Software, you can opt out at any time by going to settings in the NiceHash Mining Software. If you opt out, you will continue to receive the same number of ads, but they may be less relevant because they will not be based on your interest. NiceHash Mining Software license is effective until terminated. All provisions of these Terms regarding the termination apply also for the NiceHash Mining Software license. Upon the termination of NiceHash Mining Software license, you shall cease all use of the NiceHash Mining Software and destroy or delete all copies, full or partial, of the NiceHash Mining Software. THIRD PARTY MINERS AND PLUGINS Third Party Miners and Plugins are a third party software which enables the best and most efficient mining operations. NiceHash Miner integrates third party mining software using a third party miner plugin system. Third Party Mining Software is a closed source software which supports mining algorithms for cryptocurrencies and can be integrated into NiceHash Mining Software. Third Party Miner Plugin enables the connection between NiceHash Mining Software and Third Party Mining Software and it can be closed, as well as open sourced. NiceHash Mining Software user interface enables the user to manually select which available Third Party Miners and Plugins will be downloaded and integrated. Users can select or deselect Third Party Miners and Plugins found in the Plugin Manager window. Some of the available Third Party Miners and Plugins which are most common are preselected by NiceHash, but can be deselected, depending on users' needs. The details of the Third Party Miners and Plugins available for NiceHash Mining Software are accessible within the NiceHash Mining Software user interface. The details include, but not limited to, the author of the software and applicable license information, if applicable information about developer fee for Third Party Miners, software version etc. Developer fees may apply to the use of Third Party Miners and Plugins. NiceHash will not be liable, to the maximum extent permitted by applicable law, for any damages of any kind, including, but not limited to, direct, consequential, incidental, special or indirect damages, arising out of using Third Party Miners and Plugins. The latter includes, but is not limited to: i) any power outages, maintenance, defects, system failures, mistakes, omissions, errors, defects, viruses, delays in operation or transmission or any failure of performance; ii) any unauthorized access, alteration, deletion, destruction, damage, loss or failure to store any data, including records, private key or other credentials, associated with usage of Third Party Miners and Plugins and ii) Force Majeure Event, communications failure, theft or other interruptions. If you choose to allow automatic updates, your device will periodically check with NiceHash for updates and upgrades to the installed Third Party Miners and Plugins, if an update or upgrade is available, the update or upgrade will automatically download and install onto your device and, if applicable, your peripheral devices. You can turn off the automatic updates altogether at any time by changing the automatic updates settings found within the NiceHash Mining Software. NICEHASH QUICKMINER NiceHash QuickMiner is a software application that allows the visitors of the NiceHash Quick Miner web page, accessible athttps://www.nicehash.com/quick-miner, to connect their PC or a mining rig to the NiceHash Hashing Power Marketplace. Visitors of the NiceHash Quick Miner web page can try out and experience crypto currency mining without having to register on the NiceHash Platform and create a NiceHash Account. Users are encouraged to do so as soon as possible in order to collect the funds earned using NiceHash Quick Miner. Users can download NiceHash QuickMiner free of charge. In order to operate NiceHash QuickMiner software needs to automatically detect technical information about users' computer hardware. You agree that NiceHash may collect and use technical and related information. For more information please refer to NiceHash Privacy Policy. Funds arising from the usage of NiceHash QuickMiner are transferred to a dedicated cryptocurrency wallet owned and managed by NiceHash. NiceHash QuickMiner Users expressly agree and acknowledge that completing the registration process and creating a NiceHash Account is necessary in order to collect the funds arising from the usage of NiceHash QuickMiner. Users of NiceHash QuickMiner who do not successfully register a NiceHash Account will lose their right to claim funds arising from their usage of NiceHash QuickMiner. Those funds, in addition to the condition that the user has not been active on the NiceHash QuickMiner web page for consecutive 7 days, will be donated to the charity of choice. NICEHASH PRIVATE ENDPOINT NiceHash Private Endpoint is a network interface that connects users privately and securely to NiceHash Stratum servers. Private Endpoint uses a private IP address and avoids additional latency caused by DDOS protection. All NiceHash Private Mining Proxy servers are managed by NiceHash and kept up-to-date. Users can request a dedicated private access endpoint by filling in the form for NiceHash Private Endpoint Solution available at the NiceHash Platform. In the form the user specifies the email address, country, number of connections and locations and algorithms used. Based on the request NiceHash prepares an individualized offer based on the pricing stipulated on the NiceHash Platform, available at https://www.nicehash.com/private-endpoint-solution. NiceHash may request additional information from the users of the Private Endpoint Solution in order to determine whether we are obligated to collect VAT from you, including your VAT identification number. INTELLECTUAL PROPERTY NiceHash retains all copyright and other intellectual property rights, including inventions, discoveries, knowhow, processes, marks, methods, compositions, formulae, techniques, information and data, whether or not patentable, copyrightable or protectable in trademark, and any trademarks, copyrights or patents based thereon over all content and other materials contained on NiceHash Platform or provided in connection with the Services, including, without limitation, the NiceHash logo and all designs, text, graphics, pictures, information, data, software, source code, as well as the compilation thereof, sound files, other files and the selection and arrangement thereof. This material is protected by international copyright laws and other intellectual property right laws, namely trademark. These Terms shall not be understood and interpreted in a way that they would mean assignment of copyright or other intellectual property rights, unless it is explicitly defined so in these Terms. NiceHash hereby grants you a limited, nonexclusive and non-sublicensable license to access and use NiceHash’s copyrighted work and other intellectual property for your personal or internal business use. Such license is subject to these Terms and does not permit any resale, the distribution, public performance or public display, modifying or otherwise making any derivative uses, use, publishing, transmission, reverse engineering, participation in the transfer or sale, or any way exploit any of the copyrighted work and other intellectual property other than for their intended purposes. This granted license will automatically terminate if NiceHash suspends or terminates your access to the Services, NiceHash Wallet or closes your NiceHash Account. NiceHash will own exclusive rights, including all intellectual property rights, to any feedback including, but not limited to, suggestions, ideas or other information or materials regarding NiceHash Services or related products that you provide, whether by email, posting through our NiceHash Platform, NiceHash Account or otherwise and you irrevocably assign any and all intellectual property rights on such feedback unlimited in time, scope and territory. Any Feedback you submit is non-confidential and shall become the sole property of NiceHash. NiceHash will be entitled to the unrestricted use, modification or dissemination of such feedback for any purpose, commercial or otherwise, without acknowledgment or compensation to you. You waive any rights you may have to the feedback. We have the right to remove any posting you make on NiceHash Platform if, in our opinion, your post does not comply with the content standards defined by these Terms. PRIVACY POLICY Please refer to our NiceHash Platform and Mining Services Privacy Policy published on the NiceHash Platform for information about how we collect, use and share your information, as well as what options do you have with regards to your personal information. COMMUNICATION AND SUPPORT You agree and consent to receive electronically all communications, agreements, documents, receipts, notices and disclosures that NiceHash provides in connection with your NiceHash Account or use of the NiceHash Platform and Services. You agree that NiceHash may provide these communications to you by posting them via the NiceHash Account or by emailing them to you at the email address you provide. You should maintain copies of electronic communications by printing a paper copy or saving an electronic copy. It is your responsibility to keep your email address updated in the NiceHash Account so that NiceHash can communicate with you electronically. You understand and agree that if NiceHash sends you an electronic communication but you do not receive it because your email address is incorrect, out of date, blocked by your service provider, or you are otherwise unable to receive electronic communications, it will be deemed that you have been provided with the communication. You can update your NiceHash Account preferences at any time by logging into your NiceHash Account. If your email address becomes invalid such that electronic communications sent to you by NiceHash are returned, NiceHash may deem your account to be inactive and close it. You may give NiceHash a notice under these Terms by sending an email to support@nicehash.com or contact NiceHash through support located on the NiceHash Platform. All communication and notices pursuant to these Terms must be given in English language. FEES Please refer to the NiceHash Platform for more information about the fees or administrative costs which are applicable at the time of provision of services. NiceHash reserves the right to change these fees according to the provisions to change these Terms at any time for any reason. The changed fees will apply only for the Services provided after the change of the fees. You authorize us, or our designated payment processor, to charge or deduct your NiceHash Account for any applicable fees in connection with the transactions completed via the Services. TAX It is your responsibility to determine what, if any, taxes apply to the transactions you complete or services you provide via the NiceHash Platform, Mining Services and NiceHash Wallet, it is your responsibility to report and remit the correct tax to the appropriate tax authority and all your factual and potential tax obligations are your concern. You agree that NiceHash is not in any case and under no conditions responsible for determining whether taxes apply to your transactions or services or for collecting, reporting, withholding or remitting any taxes arising from any transactions or services. You also agree that NiceHash is not in any case and under no conditions bound to compensate for your tax obligation or give you any advice related to tax issues. All fees and charges payable by you to NiceHash are exclusive of any taxes, and shall certain taxes be applicable, they shall be added on top of the payable amounts. Upon our request, you will provide to us any information that we reasonably request to determine whether we are obligated to collect VAT from you, including your VAT identification number. If any deduction or withholding is required by law, you will notify NiceHash and will pay NiceHash any additional amounts necessary to ensure that the net amount received by NiceHash, after any deduction and withholding, equals the amount NiceHash would have received if no deduction or withholding had been required. Additionally, you will provide NiceHash with documentation showing that the withheld and deducted amounts have been paid to the relevant taxing authority. FINAL PROVISIONS Natural persons and legal entities that are not capable of holding legal rights and obligations are not allowed to create NiceHash Account and use NiceHash Platform or other related services. If NiceHash becomes aware that such natural person or legal entity has created the NiceHash Account or has used NiceHash Services, NiceHash will delete such NiceHash Account and disable any Services and block access to NiceHash Account and NiceHash Services to such natural person or legal entity. If you register to use the NiceHash Services on behalf of a legal entity, you represent and warrant that (i) such legal entity is duly organized and validly existing under the applicable laws of the jurisdiction of its organization; and (ii) you are duly authorized by such legal entity to act on its behalf. These Terms do not create any third-party beneficiary rights in any individual or entity. These Terms forms the entire agreement and understanding relating to the subject matter hereof and supersede any previous and contemporaneous agreements, arrangements or understandings relating to the subject matter hereof to the exclusion of any terms implied by law that may be excluded by contract. If at any time any provision of these Terms is or becomes illegal, invalid or unenforceable, the legality, validity and enforceability of every other provisions will not in any way be impaired. Such illegal, invalid or unenforceable provision of these Terms shall be deemed to be modified and replaced by such legal, valid and enforceable provision or arrangement, which corresponds as closely as possible to our and your will and business purpose pursued and reflected in these Terms. Headings of sections are for convenience only and shall not be used to limit or construe such sections. No failure to enforce nor delay in enforcing, on our side to the Terms, any right or legal remedy shall function as a waiver thereof, nor shall any individual or partial exercise of any right or legal remedy prevent any further or other enforcement of these rights or legal remedies or the enforcement of any other rights or legal remedies. NiceHash reserves the right to make changes, amendments, supplementations or modifications from time to time to these Terms including but not limited to changes of licence agreement for NiceHash Mining Software and of any fees and compensations policies, in its sole discretion and for any reason. We suggest that you review these Terms periodically for changes. If we make changes to these Terms, we will provide you with notice of such changes, such as by sending an email, providing notice on the NiceHash Platform, placing a popup window after login to the NiceHash Account or by posting the amended Terms on the NiceHash Platform and updating the date at the top of these Terms. The amended Terms will be deemed effective immediately upon posting for any new users of the NiceHash Services. In all other cases, the amended Terms will become effective for preexisting users upon the earlier of either: (i) the date users click or press a button to accept such changes in their NiceHash Account, or (ii) continued use of NiceHash Services 30 days after NiceHash provides notice of such changes. Any amended Terms will apply prospectively to use of the NiceHash Services after such changes become effective. The notice of change of these Terms is considered as notice of termination of all rights and obligations between you and NiceHash derived from these Terms with notice period of 30 days, if you do not accept the amended Terms. If you do not agree to any amended Terms, (i) the agreement between you and NiceHash is terminated by expiry of 30 days period which starts after NiceHash provides you a notice of change of these Terms, (ii) you must discontinue using NiceHash Services and (iii) you must inform us regarding your disagreement with the changes and request closure of your NiceHash Account. If you do not inform us regarding your disagreement and do not request closure of you NiceHash Account, we will deem that you agree with the changed Terms. You may not assign or transfer your rights or obligations under these Terms without the prior written consent of NiceHash. NiceHash may assign or transfer any or all of its rights under these Terms, in whole or in part, without obtaining your consent or approval. These Terms shall be governed by and construed and enforced in accordance with the Laws of the British Virgin Islands, and shall be interpreted in all respects as a British Virgin Islands contract. Any transaction, dispute, controversy, claim or action arising from or related to your access or use of the NiceHash Platform or these Terms of Service likewise shall be governed by the Laws of the British Virgin Islands, exclusive of choice-of-law principles. The rights and remedies conferred on NiceHash by, or pursuant to, these Terms are cumulative and are in addition, and without prejudice, to all other rights and remedies otherwise available to NiceHash at law. NiceHash may transfer its rights and obligations under these Terms to other entities which include, but are not limited to H-BIT, d.o.o. and NICEX Ltd, or any other firm or business entity that directly or indirectly acquires all or substantially all of the assets or business of NICEHASH Ltd. If you do not consent to any transfer, you may terminate this agreement and close your NiceHash Account. These Terms are not boilerplate. If you disagree with any of them, believe that any should not apply to you, or wish to negotiate these Terms, please contact NiceHash and immediately navigate away from the NiceHash Platform. Do not use the NiceHash Mining Services, NiceHash Wallet or other related services until you and NiceHash have agreed upon new terms of service. Last updated: March 1, 2021
chikitang
!DOCTYPE html> <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" data-a11y-animated-images="system"> <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://github.githubassets.com"> <link rel="dns-prefetch" href="https://avatars.githubusercontent.com"> <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> <link rel="preconnect" href="https://github.githubassets.com" crossorigin> <link rel="preconnect" href="https://avatars.githubusercontent.com"> <link crossorigin="anonymous" media="all" integrity="sha512-ksfTgQOOnE+FFXf+yNfVjKSlEckJAdufFIYGK7ZjRhWcZgzAGcmZqqArTgMLpu90FwthqcCX4ldDgKXbmVMeuQ==" rel="stylesheet" href="https://github.githubassets.com/assets/light-92c7d381038e.css" /><link crossorigin="anonymous" media="all" integrity="sha512-1KkMNn8M/al/dtzBLupRwkIOgnA9MWkm8oxS+solP87jByEvY/g4BmoxLihRogKcX1obPnf4Yp7dI0ZTWO+ljg==" rel="stylesheet" href="https://github.githubassets.com/assets/dark-d4a90c367f0c.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" integrity="sha512-cZa7DZqvMBwD236uzEunO/G1dvw8/QftyT2UtLWKQFEy0z0eq0R5WPwqVME+3NSZG1YaLJAaIqtU+m0zWf/6SQ==" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-7196bb0d9aaf.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" integrity="sha512-WVoKqJ4y1nLsdNH4RkRT5qrM9+n9RFe1RHSiTnQkBf5TSZkJEc9GpLpTIS7T15EQaUQBJ8BwmKvwFPVqfpTEIQ==" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-595a0aa89e32.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" integrity="sha512-XpAMBMSRZ6RTXgepS8LjKiOeNK3BilRbv8qEiA/M3m+Q4GoqxtHedOI5BAZRikCzfBL4KWYvVzYZSZ8Gp/UnUg==" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-5e900c04c491.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" integrity="sha512-3HF2HZ4LgEIQm77yOzoeR20CX1n2cUQlcywscqF4s+5iplolajiHV7E5ranBwkX65jN9TNciHEVSYebQ+8xxEw==" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-dc71761d9e0b.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" integrity="sha512-+J8j3T0kbK9/sL3zbkCfPtgYcRD4qQfRbT6xnfOrOTjvz4zhr0M7AXPuE642PpaxGhHs1t77cTtieW9hI2K6Gw==" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-f89f23dd3d24.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" integrity="sha512-AQeAx5wHQAXNf0DmkvVlHYwA3f6BkxunWTI0GGaRN57GqD+H9tW8RKIKlopLS0qGaC54seFsPc601GDlqIuuHg==" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-010780c79c07.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" integrity="sha512-+u5pmgAE0T03d/yI6Ha0NWwz6Pk0W6S6WEfIt8veDVdK8NTjcMbZmQB9XUCkDlrBoAKkABva8HuGJ+SzEpV1Uw==" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-faee699a0004.css" /> <link crossorigin="anonymous" media="all" integrity="sha512-EAhBCLIJ/pXHG3Y6yQhs9s53SHV80sjJ+yCwlQtfv7LaVkD+VoEuZBZ5betQJFUNj/5qBSfZk5GFtazEDzWLAg==" rel="stylesheet" href="https://github.githubassets.com/assets/primer-10084108b209.css" /> <link crossorigin="anonymous" media="all" integrity="sha512-j4LlGsvrPJxvY8+OWTjZfxsE5dNUiTsSjDrRiYJN24hZSD0fRrKZKtHnFIt1HSPGvNd1XAXX4UWQu+7n30g2KQ==" rel="stylesheet" href="https://github.githubassets.com/assets/global-8f82e51acbeb.css" /> <link crossorigin="anonymous" media="all" integrity="sha512-ws/OpUoggF9K9ooMit55m3zLZc0tylad06U0PD2d0mPaGrdyGa+YTIAGxvVPrke4PWfw/1hdyplewI0dG5RMqw==" rel="stylesheet" href="https://github.githubassets.com/assets/github-c2cfcea54a20.css" /> <link crossorigin="anonymous" media="all" integrity="sha512-EU4iyx/yvfUFbgkpn4fpfcGLGdCO/MAsSFcvCXZ2Z2EW37nQnDHPgt/cXbfA0Tro59XCXEOAzXxFKLLkIuetnw==" rel="stylesheet" href="https://github.githubassets.com/assets/profile-114e22cb1ff2.css" /> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-/QgkqjzVefOR3Tj2b+frbSHSVAOEXToMLNi27AqI0et2R/r9L6h5gKl9tEbPuN2sV41z3bAkC0YbPhQSDjak+A==" src="https://github.githubassets.com/assets/runtime-fd0824aa3cd5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-X+8lM1ka/+ZD419IfxRmavutulfxSofkt+qmxoFdfa0Zp6fBjTUoNaJeZfEK1YdE6ibpcZz/HaOVu2FnHGJ7DA==" src="https://github.githubassets.com/assets/environment-5fef2533591a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-io+1MvgXPXTw8Kp4eOdNMJl8uGASuw8VfTY5VeIFETaAknimWi8GoxggMEeQ6mq0de4Dest4iIJ/9gUbCo0hgw==" src="https://github.githubassets.com/assets/vendors-node_modules_selector-observer_dist_index_esm_js-8a8fb532f817.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-Es25N4GyPa8Yfp5wpahoe5b2fyPtkRMyR6mKIXyCJC0ocqQazeWvxhGZhx3StRxOfqDfHDR5SS35u/R3Wux6Cg==" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_details-dialog-elemen-63debe-12cdb93781b2.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-lmiecOIgf+hakg5oKMNM7grVhEDyPoIrT39Px448JJH5PSAaK21PH0Twgyz5O5oi8+dnlLr3Jt8bBCtAcpNdRw==" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-c7e9ed-96689e70e220.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-y67eNkVaNK4RguUGcHOvIbHFlgf1Qje+LDdjVw2eFuuvBOqta2GePz/CwoLIR/PJhhRAj5RPGxCWoomnimSw6w==" src="https://github.githubassets.com/assets/vendors-node_modules_github_catalyst_lib_index_js-node_modules_github_time-elements_dist_index_js-cbaede36455a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-6ehrOOu5AOQD8/Lw6TgTsdkj9odsrpi0xWo0vkH3wBR3vIw/Bj/Rxw9wZMfw2qVzdqqF/pCiaJ5f0A/P6HtGrw==" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-52e104-e9e86b38ebb9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-l//8hwOiwPAmBg0NwsWUYovdQ7/r9kPHiD9/LL4fD3M7El8gbgaOYU5+o6cYLB6puSfOTxyN9M6fE38HSDr2Bw==" src="https://github.githubassets.com/assets/github-elements-97fffc8703a2.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-RVfrK7GqzKgqgrdk4OZy+0LLxAMJ1odMQC1/Qt7SpwSHjE9s4R0/09fu5QvzcQ6XdNZMjJ1Wy8Cr6wL3Q+HCcQ==" src="https://github.githubassets.com/assets/element-registry-4557eb2bb1aa.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-uo73yUZcm4EicwjSbfxFZcKfjWniOxhLBp+q1n7IFRfutFM6/lzbQMgD0Xrxp7QD1HzqdvrV8UclPhi3mEOyzQ==" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-ba8ef7c9465c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-LWSGAMIPWi+15W2gBjmxbtVqU0DamkrNOQylAjPL8509iKnuWgSLdjylDv3WWm/9p6h2U/D//3i6BiiGFZPXJA==" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_github_catalyst_lib_index_-87b1b3-2d648600c20f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-0r1nf/rfPz54kyePp4f63bcPxkFo7wyaUZJD/SwIVDK3q0WzurAK9ydOm88tzKtPJm8xWI0Vo25NyCfecwxJ9g==" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_hotkey_dist_index-9f48bd-d2bd677ffadf.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-VK56d0N1hPZ20mOzPoy84zlTGCjGbKKmVvfjoyDqSF+VxTD4f6X8QDs2RgG1R1cdBmsCiea+ZxP6ukV3tHlD+Q==" src="https://github.githubassets.com/assets/vendors-node_modules_github_paste-markdown_dist_index_esm_js-node_modules_github_quote-select-df2537-54ae7a774375.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-318SWYQMEUmWdOuBzC1KdeVyyq5RDCiMNGP7Jh9s/Oz68Yy8e94t8qKxiCnfFKnzfpN3MxrATi7jCQyDv6jh0w==" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_pjax_ts-df5f1259840c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-2hsYB2KHyayxUJJxJGhXeTeTZZG2c7lzRtO0uB1txmpc7rfvIt4mf0iossT0MHIHknYlaslgi98jmmlVXcXaZQ==" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_keyboard-shortcuts-helper_ts-app_assets_modules_github_be-af52ef-da1b18076287.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-mszhDznUQJHnUG/R5PW8SVIpe08ysmzHfMNnUF9Nu2DlTQ2EI+vzUxDTJ1cUGPr1nRRvsed9bKe1IdZI+1Q4Rg==" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_details_ts-app_assets_modules_github_behaviors_include-fr-34e1f7-9acce10f39d4.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-w/t2D/KwutVIcNp5IDznla0td11er/0FLWMQBuZ4+ec53IQDBc4+CztZqlCj/RZ8XDkk/eiECEwiUjXv5UAJnQ==" src="https://github.githubassets.com/assets/behaviors-c3fb760ff2b0.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-O4QCEHjN5g9SG+Bqu36E7RCxy4hi2w3nyDWVsHwc/hUgAMsYntgibQcLNqSrar4T78Dnj0NZgM/C4FhFt8DIag==" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-6e358f-3b84021078cd.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-tuRHxLY6eU4xuxKD8rm7GxWa0B337+gV5cSnivbY1FPmUo4zRUBCbKqs6kvuJsuGj2dg1uz4ajSLTrHDFeADUw==" src="https://github.githubassets.com/assets/notifications-global-b6e447c4b63a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-QdQXem5u6Zn5fejgHuEVa07Zdffi7rtk2HHG8DZHegrkzMgrrdC5d5spRsxjV/xGF3KSyl3B8FI7xXu77LG2TQ==" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-1424532-41d4177a6e6e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-fkqJogEq3qR42gMZhv5UupQvBdhPiQIIBomJsm5HYJ6ZzfJjDFdKWsWso3u5eKdEz6b8hhXFjUwnLnK6SkJdhA==" src="https://github.githubassets.com/assets/profile-7e4a89a2012a.js"></script> <title>Your Repositories</title> <meta name="request-id" content="FD00:0DFC:1DF0AC7:313D6B2:62A02226" data-pjax-transient="true" /><meta name="html-safe-nonce" content="980ec10d2da5b506cd46be36dd6e013e8bada887c7553a22c701573bbe482ab0" data-pjax-transient="true" /><meta name="visitor-payload" content="eyJyZWZlcnJlciI6Imh0dHBzOi8vZ2l0aHViLmNvbS9leHBsb3JlIiwicmVxdWVzdF9pZCI6IkZEMDA6MERGQzoxREYwQUM3OjMxM0Q2QjI6NjJBMDIyMjYiLCJ2aXNpdG9yX2lkIjoiNzQ5MzY1NDMzNjA2MzQxMjkzMSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9" data-pjax-transient="true" /><meta name="visitor-hmac" content="421e7a5a14726f1086d7a9de5370e75ce73e1595c8567ceca4fe9616e47623d9" data-pjax-transient="true" /> <meta name="github-keyboard-shortcuts" content="" data-pjax-transient="true" /> <meta name="selected-link" value="/chikitang" data-pjax-transient> <meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY"> <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU"> <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA"> <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc"> <meta name="octolytics-url" content="https://collector.github.com/github/collect" /><meta name="octolytics-actor-id" content="107093285" /><meta name="octolytics-actor-login" content="chikitang" /><meta name="octolytics-actor-hash" content="1bbae79ef5b27d38ae2058bbe0b8e84e42ca017579fe6b91fb76d14b6a316195" /> <meta name="user-login" content="chikitang"> <meta name="viewport" content="width=device-width"> <meta name="description" content="chikitang has one repository available. Follow their code on GitHub."> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub"> <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta name="apple-itunes-app" content="app-id=1477376905" /> <meta name="twitter:image:src" content="https://avatars.githubusercontent.com/u/107093285?v=4?s=400" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="chikitang - Repositories" /><meta name="twitter:description" content="chikitang has one repository available. Follow their code on GitHub." /> <meta property="og:image" content="https://avatars.githubusercontent.com/u/107093285?v=4?s=400" /><meta property="og:image:alt" content="chikitang has one repository available. Follow their code on GitHub." /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="profile" /><meta property="og:title" content="chikitang - Repositories" /><meta property="og:url" content="https://github.com/chikitang" /><meta property="og:description" content="chikitang has one repository available. Follow their code on GitHub." /><meta property="profile:username" content="chikitang" /> <link rel="assets" href="https://github.githubassets.com/"> <link rel="shared-web-socket" href="wss://alive.github.com/_sockets/u/107093285/ws?session=eyJ2IjoiVjMiLCJ1IjoxMDcwOTMyODUsInMiOjg5NTc1NzU0OCwiYyI6MTYzNjI1Mjg2NywidCI6MTY1NDY2MTY3M30=--c25c69ac641d7bef477abc2e101060da9d58d110fdab2b83c67104ea57cb74d1" data-refresh-url="/_alive" data-session-id="0f954fa662a2d554f181d0867897a8c903cfbb09b242250a287b6117e8fa2281"> <link rel="shared-web-socket-src" href="/assets-cdn/worker/socket-worker-b98ccfd9236e.js"> <link rel="sudo-modal" href="/sessions/sudo_modal"> <meta name="hostname" content="github.com"> <meta name="keyboard-shortcuts-preference" content="all"> <script type="application/json" id="memex_keyboard_shortcuts_preference">"all"</script> <meta name="expected-hostname" content="github.com"> <meta name="js-proxy-site-detection-payload" content="ZTEwZDA3YzMzN2IyY2I2ZjU1ZWFkZWNkYmNkM2RlNjAyNWQwYzUwODYwOGU5ODU2MDBjZDYzZjI4OGQ5OWQyOHx7InJlbW90ZV9hZGRyZXNzIjoiNzYuMTM1Ljk2LjIwNSIsInJlcXVlc3RfaWQiOiJGRDAwOjBERkM6MURGMEFDNzozMTNENkIyOjYyQTAyMjI2IiwidGltZXN0YW1wIjoxNjU0NjYxNjczLCJob3N0IjoiZ2l0aHViLmNvbSJ9"> <meta name="enabled-features" content="ACTIONS_CALLABLE_WORKFLOWS,PRESENCE_IDLE,RELEASE_PREV_TAG_PICKER"> <meta http-equiv="x-pjax-version" content="a37df167d895af7f9c4d1b90e97a54af1d17d291209210e78f815dbbd9a85bbc" data-turbo-track="reload"> <meta http-equiv="x-pjax-csp-version" content="485d6a5ccbb1eeae9c86b616b4870b531f6f458e8bd5c309c40280dc4f51defb" data-turbo-track="reload"> <meta http-equiv="x-pjax-css-version" content="560bbf933d6879732c126fa7af06481a25d36e7da91d312b7f44915e69fcdbb9" data-turbo-track="reload"> <meta http-equiv="x-pjax-js-version" content="3c347e3ecd4172f21f40b5f945958e9a8b15c3b5c962803de065de8ef0b29900" data-turbo-track="reload"> <meta name="turbo-cache-control" content="no-preview"></meta> <meta name="octolytics-dimension-user_id" content="107093285" /><meta name="octolytics-dimension-user_login" content="chikitang" /> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <meta name="browser-optimizely-client-errors-url" content="https://api.github.com/_private/browser/optimizely_client/errors"> <link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000"> <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png"> <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg"> <meta name="theme-color" content="#1e2327"> <meta name="color-scheme" content="light dark" /> <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials"> </head> <body class="logged-in env-production page-responsive page-profile mine" style="word-wrap: break-word;"> <div class="position-relative js-header-wrapper "> <a href="#start-of-content" class="p-3 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a> <span data-view-component="true" class="progress-pjax-loader js-pjax-loader-bar Progress position-fixed width-full"> <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span> </span> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-vq9xa9mXhnKoPKegD98xDdz3z2QGmpBBTgEdXLjXQWpAHaNrJgMoKO/tWwQg3XrNHOMwbWccPo2ej0RASJ32Jw==" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_decorators_js-node_modules_github_catalyst_lib-098f88-beaf716bd997.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-SqxGVVy+lvF/R0gsWdxjPTIX6BkspUwgKC7GkhrrpHDvTiiYveTazaMKVQ4ZsbyB8PpALQMJVu5FThgLLEa/qQ==" src="https://github.githubassets.com/assets/vendors-node_modules_github_clipboard-copy-element_dist_index_esm_js-node_modules_delegated-e-a39d96-4aac46555cbe.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-+RY85fUZaREgYAhJOwiMFuEzzJ0MYIJJ/e3HrBLNx5mbTvOTWawq9+/XBdBy/omg01kYOA4my0k99ImePtihQQ==" src="https://github.githubassets.com/assets/app_assets_modules_github_command-palette_items_help-item_ts-app_assets_modules_github_comman-48ad9d-f9163ce5f519.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-MZKd5uKV0ZulPULi4Ci9ya+diAKnUgu9G0+cTix+XVo6BGYYtTfTaAmIKFNxFkAQKcOCHMJU7itIuu409PIlNg==" src="https://github.githubassets.com/assets/command-palette-31929de6e295.js"></script> <header class="Header js-details-container Details px-3 px-md-4 px-lg-5 flex-wrap flex-md-nowrap" role="banner" > <div class="Header-item mt-n1 mb-n1 d-none d-md-flex"> <a class="Header-link " href="https://github.com/" data-hotkey="g d" aria-label="Homepage " data-turbo="false" data-analytics-event="{"category":"Header","action":"go to dashboard","label":"icon:logo"}" > <svg height="32" aria-hidden="true" viewBox="0 0 16 16" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github v-align-middle"> <path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path> </svg> </a> </div> <div class="Header-item d-md-none"> <button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="Header-link js-details-target btn-link"> <svg aria-hidden="true" height="24" viewBox="0 0 16 16" version="1.1" width="24" data-view-component="true" class="octicon octicon-three-bars"> <path fill-rule="evenodd" d="M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"></path> </svg> </button> </div> <div class="Header-item Header-item--full flex-column flex-md-row width-full flex-order-2 flex-md-order-none mr-0 mt-3 mt-md-0 Details-content--hidden-not-important d-md-flex"> <div class="header-search flex-auto js-site-search position-relative flex-self-stretch flex-md-self-auto mb-3 mb-md-0 mr-0 mr-md-3 scoped-search site-scoped-search js-jump-to" > <div class="position-relative"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="User" data-scope-id="107093285" data-scoped-search-url="/users/chikitang/search" data-unscoped-search-url="/search" data-turbo="false" action="/users/chikitang/search" accept-charset="UTF-8" method="get"> <label class="form-control input-sm header-search-wrapper p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"> <input type="text" class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable" data-hotkey=s,/ name="q" data-test-selector="nav-search-input" placeholder="Search or jump to…" data-unscoped-placeholder="Search or jump to…" data-scoped-placeholder="Search or jump to…" autocapitalize="off" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-autocomplete="list" aria-controls="jump-to-results" aria-label="Search or jump to…" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" spellcheck="false" autocomplete="off" > <input type="hidden" value="onaOjrBo6ohITGCajPS3asceXniJrPVtVg0W3PjGOVqghJTYE-qvcN961YI7OuNKFtGNfvjgTbQtKVQNyp1O1Q" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf" /> <input type="hidden" class="js-site-search-type-field" name="type" > <svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1 header-search-key-slash"><path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path><path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path></svg> <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container"> <ul class="d-none js-jump-to-suggestions-template-container"> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="suggestion"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> <svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0"> <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path> </svg> <svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0"> <path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path> </svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this user"> In this user </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> </ul> <ul class="d-none js-jump-to-no-results-template-container"> <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2"> <span class="color-fg-muted">No suggested jump to results</span> </li> </ul> <ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container"> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="scoped_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> <svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0"> <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path> </svg> <svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0"> <path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path> </svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this user"> In this user </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-owner-scoped-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="owner_scoped_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> <svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0"> <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path> </svg> <svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0"> <path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path> </svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub"> Search </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="global_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> <svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0"> <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path> </svg> <svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0"> <path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path> </svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this user"> In this user </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> <li class="d-flex flex-justify-center flex-items-center p-0 f5 js-jump-to-suggestion"> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" width="32" height="32" viewBox="0 0 16 16" fill="none" data-view-component="true" class="m-3 anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke" /> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" /> </svg> </li> </ul> </div> </label> </form> </div> </div> <nav id="global-nav" class="d-flex flex-column flex-md-row flex-self-stretch flex-md-self-auto" aria-label="Global"> <a class="Header-link py-md-3 d-block d-md-none py-2 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:dashboard:user" aria-label="Dashboard" data-turbo="false" href="/dashboard">Dashboard</a> <a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-hotkey="g p" data-ga-click="Header, click, Nav menu - item:pulls context:user" aria-label="Pull requests you created" data-turbo="false" data-selected-links="/pulls /pulls/assigned /pulls/mentioned /pulls" href="/pulls"> Pull<span class="d-inline d-md-none d-lg-inline"> request</span>s </a> <a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-hotkey="g i" data-ga-click="Header, click, Nav menu - item:issues context:user" aria-label="Issues you created" data-turbo="false" data-selected-links="/issues /issues/assigned /issues/mentioned /issues" href="/issues">Issues</a> <div class="d-flex position-relative"> <a class="js-selected-navigation-item Header-link flex-auto mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:marketplace context:user" data-octo-click="marketplace_click" data-octo-dimensions="location:nav_bar" data-turbo="false" data-selected-links=" /marketplace" href="/marketplace">Marketplace</a> </div> <a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:explore" data-turbo="false" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore" href="/explore">Explore</a> <a class="js-selected-navigation-item Header-link d-block d-md-none py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:workspaces context:user" data-turbo="false" data-selected-links="/codespaces /codespaces" href="/codespaces">Codespaces</a> <a class="js-selected-navigation-item Header-link d-block d-md-none py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:Sponsors" data-hydro-click="{"event_type":"sponsors.button_click","payload":{"button":"HEADER_SPONSORS_DASHBOARD","sponsorable_login":"chikitang","originating_url":"https://github.com/chikitang?tab=repositories","user_id":107093285}}" data-hydro-click-hmac="894b353f92ef9cf99df582a68ce68afedb950c23eac562794d264b04c4d7d514" data-turbo="false" data-selected-links=" /sponsors/accounts" href="/sponsors/accounts">Sponsors</a> <a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-turbo="false" href="/settings/profile">Settings</a> <a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-turbo="false" href="/chikitang"> <img class="avatar avatar-user" loading="lazy" decoding="async" src="https://avatars.githubusercontent.com/u/107093285?s=40&v=4" width="20" height="20" alt="@chikitang" /> chikitang </a> <!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/logout" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="7Jd6yI5THWDg_FkIJV1Ds7qiCFaoX_Hvj-TdaYW6DwuhdateNViXxoS146e9dSd4uNbU3k2j7jqyorRzKNOZEQ" /> <button type="submit" class="Header-link mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade d-md-none btn-link d-block width-full text-left" style="padding-left: 2px;" data-analytics-event="{"category":"Header","action":"sign out","label":"icon:logout"}" > <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sign-out v-align-middle"> <path fill-rule="evenodd" d="M2 2.75C2 1.784 2.784 1 3.75 1h2.5a.75.75 0 010 1.5h-2.5a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h2.5a.75.75 0 010 1.5h-2.5A1.75 1.75 0 012 13.25V2.75zm10.44 4.5H6.75a.75.75 0 000 1.5h5.69l-1.97 1.97a.75.75 0 101.06 1.06l3.25-3.25a.75.75 0 000-1.06l-3.25-3.25a.75.75 0 10-1.06 1.06l1.97 1.97z"></path> </svg> Sign out </button> </form></nav> </div> <div class="Header-item Header-item--full flex-justify-center d-md-none position-relative"> <a class="Header-link " href="https://github.com/" data-hotkey="g d" aria-label="Homepage " data-turbo="false" data-analytics-event="{"category":"Header","action":"go to dashboard","label":"icon:logo"}" > <svg height="32" aria-hidden="true" viewBox="0 0 16 16" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github v-align-middle"> <path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path> </svg> </a> </div> <div class="Header-item mr-0 mr-md-3 flex-order-1 flex-md-order-none"> <notification-indicator class="js-socket-channel" data-test-selector="notifications-indicator" data-channel="eyJjIjoibm90aWZpY2F0aW9uLWNoYW5nZWQ6MTA3MDkzMjg1IiwidCI6MTY1NDY2MTY3M30=--d1a31430da7c3a208906377c76b5480a6b4db38284d899049601dbe9bf1e1be6"> <a href="/notifications" class="Header-link notification-indicator position-relative tooltipped tooltipped-sw" aria-label="You have no unread notifications" data-hotkey="g n" data-ga-click="Header, go to notifications, icon:read" data-target="notification-indicator.link"> <span class="mail-status " data-target="notification-indicator.modifier"></span> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell"> <path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path> </svg> </a> </notification-indicator> </div> <div class="Header-item position-relative d-none d-md-flex"> <details class="details-overlay details-reset"> <summary class="Header-link" aria-label="Create new…" data-analytics-event="{"category":"Header","action":"create new","label":"icon:add"}" > <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-plus"> <path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path> </svg> <span class="dropdown-caret"></span> </summary> <details-menu class="dropdown-menu dropdown-menu-sw"> <a role="menuitem" class="dropdown-item" href="/new" data-ga-click="Header, create new repository"> New repository </a> <a role="menuitem" class="dropdown-item" href="/new/import" data-ga-click="Header, import a repository"> Import repository </a> <a role="menuitem" class="dropdown-item" href="https://gist.github.com/" data-ga-click="Header, create new gist"> New gist </a> <a role="menuitem" class="dropdown-item" href="/organizations/new" data-ga-click="Header, create new organization"> New organization </a> <a role="menuitem" class="dropdown-item" href="/users/chikitang/projects/new?type=beta" data-ga-click="Header, create new project"> New project </a> </details-menu> </details> </div> <div class="Header-item position-relative mr-0 d-none d-md-flex"> <details class="details-overlay details-reset js-feature-preview-indicator-container" data-feature-preview-indicator-src="/users/chikitang/feature_preview/indicator_check"> <summary class="Header-link" aria-label="View profile and more" data-analytics-event="{"category":"Header","action":"show menu","label":"icon:avatar"}" > <img src="https://avatars.githubusercontent.com/u/107093285?s=40&v=4" alt="@chikitang" size="20" height="20" width="20" data-view-component="true" class="avatar avatar-small circle" /> <span class="unread-indicator js-feature-preview-indicator" style="top: 1px;" hidden></span> <span class="dropdown-caret"></span> </summary> <details-menu class="dropdown-menu dropdown-menu-sw" style="width: 180px" preload> <include-fragment src="/users/107093285/menu" loading="lazy"> <p class="text-center mt-3" data-hide-on-error> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" width="32" height="32" viewBox="0 0 16 16" fill="none" data-view-component="true" class="anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke" /> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" /> </svg> </p> <p class="ml-1 mb-2 mt-2 color-fg-default" data-show-on-error> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path> </svg> Sorry, something went wrong. </p> </include-fragment> </details-menu> </details> </div> </header> </div> <div id="start-of-content" class="show-on-focus"></div> <div data-pjax-replace id="js-flash-container"> <template class="js-flash-template"> <div class="flash flash-full {{ className }}"> <div class="px-2" > <button class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg> </button> <div>{{ message }}</div> </div> </div> </template> </div> <include-fragment class="js-notification-shelf-include-fragment" data-base-src="https://github.com/notifications/beta/shelf"></include-fragment> <details class="details-reset details-overlay details-overlay-dark js-command-palette-dialog" data-pjax-replace id="command-palette-pjax-container" > <summary aria-label="command palette trigger"> </summary> <details-dialog class="command-palette-details-dialog d-flex flex-column flex-justify-center height-fit" aria-label="command palette"> <command-palette class="command-palette color-bg-default rounded-3 border color-shadow-small" data-return-to=/chikitang?tab=repositories data-user-id="107093285" data-activation-hotkey="Mod+k,Mod+Alt+k" data-command-mode-hotkey="Mod+Shift+k" data-action=" command-palette-page-stack-updated:command-palette#updateInputScope itemsUpdated:command-palette#itemsUpdated keydown:command-palette#onKeydown loadingStateChanged:command-palette#loadingStateChanged selectedItemChanged:command-palette#selectedItemChanged pageFetchError:command-palette#pageFetchError "> <command-palette-mode data-char="#" data-scope-types="[""]" data-placeholder="Search issues and pull requests" ></command-palette-mode> <command-palette-mode data-char="#" data-scope-types="["owner","repository"]" data-placeholder="Search issues, pull requests, discussions, and projects" ></command-palette-mode> <command-palette-mode data-char="!" data-scope-types="["owner","repository"]" data-placeholder="Search projects" ></command-palette-mode> <command-palette-mode data-char="@" data-scope-types="[""]" data-placeholder="Search or jump to a user, organization, or repository" ></command-palette-mode> <command-palette-mode data-char="@" data-scope-types="["owner"]" data-placeholder="Search or jump to a repository" ></command-palette-mode> <command-palette-mode data-char="/" data-scope-types="["repository"]" data-placeholder="Search files" ></command-palette-mode> <command-palette-mode data-char="?" ></command-palette-mode> <command-palette-mode data-char=">" data-placeholder="Run a command" ></command-palette-mode> <command-palette-mode data-char="" data-scope-types="[""]" data-placeholder="Search or jump to..." ></command-palette-mode> <command-palette-mode data-char="" data-scope-types="["owner"]" data-placeholder="Search or jump to..." ></command-palette-mode> <command-palette-mode class="js-command-palette-default-mode" data-char="" data-placeholder="Search or jump to..." ></command-palette-mode> <command-palette-input placeholder="Search or jump to..." data-action=" command-palette-input:command-palette#onInput command-palette-select:command-palette#onSelect command-palette-descope:command-palette#onDescope command-palette-cleared:command-palette#onInputClear " > <div class="js-search-icon d-flex flex-items-center mr-2" style="height: 26px"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search color-fg-muted"> <path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path> </svg> </div> <div class="js-spinner d-flex flex-items-center mr-2 color-fg-muted" hidden> <svg aria-label="Loading" class="anim-rotate" viewBox="0 0 16 16" fill="none" width="16" height="16"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke" ></circle> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" ></path> </svg> </div> <command-palette-scope > <div data-target="command-palette-scope.placeholder" hidden class="color-fg-subtle">/ <span class="text-semibold color-fg-default">...</span> / </div> <command-palette-token data-text="chikitang" data-id="U_kgDOBmIdJQ" data-type="owner" data-value="chikitang" data-targets="command-palette-scope.tokens" class="color-fg-default text-semibold" style="white-space:nowrap;line-height:20px;" >chikitang<span class="color-fg-subtle text-normal"> / </span></command-palette-token> </command-palette-scope> <div class="command-palette-input-group flex-1 form-control border-0 box-shadow-none" style="z-index: 0"> <div class="command-palette-typeahead position-absolute d-flex flex-items-center Truncate"> <span class="typeahead-segment input-mirror" data-target="command-palette-input.mirror"></span> <span class="Truncate-text" data-target="command-palette-input.typeaheadText"></span> <span class="typeahead-segment" data-target="command-palette-input.typeaheadPlaceholder"></span> </div> <input class="js-overlay-input typeahead-input d-none" disabled tabindex="-1" aria-label="Hidden input for typeahead" > <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="js-input typeahead-input form-control border-0 box-shadow-none input-block width-full no-focus-indicator" aria-label="Command palette input" aria-haspopup="listbox" aria-expanded="false" aria-autocomplete="list" aria-controls="command-palette-page-stack" role="combobox" data-action=" input:command-palette-input#onInput keydown:command-palette-input#onKeydown " > </div> <button aria-label="clear command palette" aria-keyshortcuts="Control+Backspace" data-action="click:command-palette-input#onClear keypress:command-palette-input#onClear" data-target="command-palette-input.clearButton" id="command-palette-clear-button" hidden="hidden" type="button" data-view-component="true" class="btn-octicon command-palette-input-clear-button"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x-circle-fill"> <path fill-rule="evenodd" d="M2.343 13.657A8 8 0 1113.657 2.343 8 8 0 012.343 13.657zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z"></path> </svg></button> <tool-tip hidden="hidden" for="command-palette-clear-button" data-direction="w" data-type="description" data-view-component="true">Clear</tool-tip> </command-palette-input> <command-palette-page-stack data-default-scope-id="U_kgDOBmIdJQ" data-default-scope-type="User" data-action="command-palette-page-octicons-cached:command-palette-page-stack#cacheOcticons" > <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["","owner","repository"]" data-mode="" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type <kbd class="hx_kbd">#</kbd> to search pull requests </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["","owner","repository"]" data-mode="" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type <kbd class="hx_kbd">#</kbd> to search issues </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["owner","repository"]" data-mode="" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type <kbd class="hx_kbd">#</kbd> to search discussions </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["owner","repository"]" data-mode="" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type <kbd class="hx_kbd">!</kbd> to search projects </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["owner"]" data-mode="" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type <kbd class="hx_kbd">@</kbd> to search teams </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[""]" data-mode="" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type <kbd class="hx_kbd">@</kbd> to search people and organizations </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["","owner","repository"]" data-mode="" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type <kbd class="hx_kbd">></kbd> to activate command mode </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["","owner","repository"]" data-mode="" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Go to your accessibility settings to change your keyboard shortcuts </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["","owner","repository"]" data-mode="#" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type author:@me to search your content </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["","owner","repository"]" data-mode="#" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type is:pr to filter to pull requests </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["","owner","repository"]" data-mode="#" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type is:issue to filter to issues </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["owner","repository"]" data-mode="#" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type is:project to filter to projects </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="["","owner","repository"]" data-mode="#" data-value=""> <div class="d-flex flex-items-start flex-justify-between"> <div> <span class="text-bold">Tip:</span> Type is:open to filter to open content </div> <div class="ml-2 flex-shrink-0"> Type <kbd class="hx_kbd">?</kbd> for help and tips </div> </div> </command-palette-tip> <command-palette-tip class="mx-3 my-2 flash flash-error d-flex flex-items-center" data-scope-types="*" data-on-error> <div> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path> </svg> </div> <div class="px-2"> We’ve encountered an error and some results aren't available at this time. Type a new search or try again later. </div> </command-palette-tip> <command-palette-tip class="h4 color-fg-default pl-3 pb-2 pt-3" data-on-empty data-scope-types="*" data-match-mode="[^?]|^$"> No results matched your search </command-palette-tip> <div hidden> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="arrow-right-color-fg-muted"> <svg height="16" class="octicon octicon-arrow-right color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="arrow-right-color-fg-default"> <svg height="16" class="octicon octicon-arrow-right color-fg-default" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="codespaces-color-fg-muted"> <svg height="16" class="octicon octicon-codespaces color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 1.75C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 01-1.75 1.75h-8.5A1.75 1.75 0 012 6.75v-5zm1.75-.25a.25.25 0 00-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25v-5a.25.25 0 00-.25-.25h-8.5zM0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0114.25 16H1.75A1.75 1.75 0 010 14.25v-3zM1.75 11a.25.25 0 00-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-3a.25.25 0 00-.25-.25H1.75z"></path><path fill-rule="evenodd" d="M3 12.75a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5a.75.75 0 01-.75-.75zm4 0a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5h-4.5a.75.75 0 01-.75-.75z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="copy-color-fg-muted"> <svg height="16" class="octicon octicon-copy color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="dash-color-fg-muted"> <svg height="16" class="octicon octicon-dash color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 7.75A.75.75 0 012.75 7h10a.75.75 0 010 1.5h-10A.75.75 0 012 7.75z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="file-color-fg-muted"> <svg height="16" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 00.25-.25V6h-2.75A1.75 1.75 0 019 4.25V1.5H3.75zm6.75.062V4.25c0 .138.112.25.25.25h2.688a.252.252 0 00-.011-.013l-2.914-2.914a.272.272 0 00-.013-.011zM2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0113.25 16h-9.5A1.75 1.75 0 012 14.25V1.75z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="gear-color-fg-muted"> <svg height="16" class="octicon octicon-gear color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="lock-color-fg-muted"> <svg height="16" class="octicon octicon-lock color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 4v2h-.25A1.75 1.75 0 002 7.75v5.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-5.5A1.75 1.75 0 0012.25 6H12V4a4 4 0 10-8 0zm6.5 2V4a2.5 2.5 0 00-5 0v2h5zM12 7.5h.25a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-5.5a.25.25 0 01.25-.25H12z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="moon-color-fg-muted"> <svg height="16" class="octicon octicon-moon color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="person-color-fg-muted"> <svg height="16" class="octicon octicon-person color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 5a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm.061 3.073a4 4 0 10-5.123 0 6.004 6.004 0 00-3.431 5.142.75.75 0 001.498.07 4.5 4.5 0 018.99 0 .75.75 0 101.498-.07 6.005 6.005 0 00-3.432-5.142z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="pencil-color-fg-muted"> <svg height="16" class="octicon octicon-pencil color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="issue-opened-open"> <svg height="16" class="octicon octicon-issue-opened open" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path d="M8 9.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path><path fill-rule="evenodd" d="M8 0a8 8 0 100 16A8 8 0 008 0zM1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="git-pull-request-draft-color-fg-muted"> <svg height="16" class="octicon octicon-git-pull-request-draft color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 3.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.25 1a2.25 2.25 0 00-.75 4.372v5.256a2.251 2.251 0 101.5 0V5.372A2.25 2.25 0 003.25 1zm0 11a.75.75 0 100 1.5.75.75 0 000-1.5zm9.5 3a2.25 2.25 0 100-4.5 2.25 2.25 0 000 4.5zm0-3a.75.75 0 100 1.5.75.75 0 000-1.5z"></path><path d="M14 7.5a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0zm0-4.25a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="search-color-fg-muted"> <svg height="16" class="octicon octicon-search color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="sun-color-fg-muted"> <svg height="16" class="octicon octicon-sun color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="sync-color-fg-muted"> <svg height="16" class="octicon octicon-sync color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="trash-color-fg-muted"> <svg height="16" class="octicon octicon-trash color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="key-color-fg-muted"> <svg height="16" class="octicon octicon-key color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.5 5.5a4 4 0 112.731 3.795.75.75 0 00-.768.18L7.44 10.5H6.25a.75.75 0 00-.75.75v1.19l-.06.06H4.25a.75.75 0 00-.75.75v1.19l-.06.06H1.75a.25.25 0 01-.25-.25v-1.69l5.024-5.023a.75.75 0 00.181-.768A3.995 3.995 0 016.5 5.5zm4-5.5a5.5 5.5 0 00-5.348 6.788L.22 11.72a.75.75 0 00-.22.53v2C0 15.216.784 16 1.75 16h2a.75.75 0 00.53-.22l.5-.5a.75.75 0 00.22-.53V14h.75a.75.75 0 00.53-.22l.5-.5a.75.75 0 00.22-.53V12h.75a.75.75 0 00.53-.22l.932-.932A5.5 5.5 0 1010.5 0zm.5 6a1 1 0 100-2 1 1 0 000 2z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="comment-discussion-color-fg-muted"> <svg height="16" class="octicon octicon-comment-discussion color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 2.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-3.5a.75.75 0 00-.53.22L3.5 11.44V9.25a.75.75 0 00-.75-.75h-1a.25.25 0 01-.25-.25v-5.5zM1.75 1A1.75 1.75 0 000 2.75v5.5C0 9.216.784 10 1.75 10H2v1.543a1.457 1.457 0 002.487 1.03L7.061 10h3.189A1.75 1.75 0 0012 8.25v-5.5A1.75 1.75 0 0010.25 1h-8.5zM14.5 4.75a.25.25 0 00-.25-.25h-.5a.75.75 0 110-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0114.25 12H14v1.543a1.457 1.457 0 01-2.487 1.03L9.22 12.28a.75.75 0 111.06-1.06l2.22 2.22v-2.19a.75.75 0 01.75-.75h1a.25.25 0 00.25-.25v-5.5z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="bell-color-fg-muted"> <svg height="16" class="octicon octicon-bell color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="bell-slash-color-fg-muted"> <svg height="16" class="octicon octicon-bell-slash color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5c-.997 0-1.895.416-2.534 1.086A.75.75 0 014.38 1.55 5 5 0 0113 5v2.373a.75.75 0 01-1.5 0V5A3.5 3.5 0 008 1.5zM4.182 4.31L1.19 2.143a.75.75 0 10-.88 1.214L3 5.305v2.642a.25.25 0 01-.042.139L1.255 10.64A1.518 1.518 0 002.518 13h11.108l1.184.857a.75.75 0 10.88-1.214l-1.375-.996a1.196 1.196 0 00-.013-.01L4.198 4.321a.733.733 0 00-.016-.011zm7.373 7.19L4.5 6.391v1.556c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01.015.015 0 00.005.012.017.017 0 00.006.004l.007.001h9.037zM8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path></svg> </div> <div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="paintbrush-color-fg-muted"> <svg height="16" class="octicon octicon-paintbrush color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.134 1.535C9.722 2.562 8.16 4.057 6.889 5.312 5.8 6.387 5.041 7.401 4.575 8.294a3.745 3.745 0 00-3.227 1.054c-.43.431-.69 1.066-.86 1.657a11.982 11.982 0 00-.358 1.914A21.263 21.263 0 000 15.203v.054l.75-.007-.007.75h.054a14.404 14.404 0 00.654-.012 21.243 21.243 0 001.63-.118c.62-.07 1.3-.18 1.914-.357.592-.17 1.226-.43 1.657-.861a3.745 3.745 0 001.055-3.217c.908-.461 1.942-1.216 3.04-2.3 1.279-1.262 2.764-2.825 3.775-4.249.501-.706.923-1.428 1.125-2.096.2-.659.235-1.469-.368-2.07-.606-.607-1.42-.55-2.069-.34-.66.213-1.376.646-2.076 1.155zm-3.95 8.48a3.76 3.76 0 00-1.19-1.192 9.758 9.758 0 011.161-1.607l1.658 1.658a9.853 9.853 0 01-1.63 1.142zM.742 16l.007-.75-.75.008A.75.75 0 00.743 16zM12.016 2.749c-1.224.89-2.605 2.189-3.822 3.384l1.718 1.718c1.21-1.205 2.51-2.597 3.387-3.833.47-.662.78-1.227.912-1.662.134-.444.032-.551.009-.575h-.001V1.78c-.014-.014-.112-.113-.548.027-.432.14-.995.462-1.655.942zM1.62 13.089a19.56 19.56 0 00-.104 1.395 19.55 19.55 0 001.396-.104 10.528 10.528 0 001.668-.309c.526-.151.856-.325 1.011-.48a2.25 2.25 0 00-3.182-3.182c-.155.155-.329.485-.48 1.01a10.515 10.515 0 00-.309 1.67z"></path></svg> </div> <command-palette-item-group data-group-id="top" data-group-title="Top result" data-group-hint="" data-group-limits="{}" data-default-priority="0" > </command-palette-item-group> <command-palette-item-group data-group-id="commands" data-group-title="Commands" data-group-hint="Type > to filter" data-group-limits="{"static_items_page":50,"issue":50,"pull_request":50,"discussion":50}" data-default-priority="1" > </command-palette-item-group> <command-palette-item-group data-group-id="global_commands" data-group-title="Global Commands" data-group-hint="Type > to filter" data-group-limits="{"issue":0,"pull_request":0,"discussion":0}" data-default-priority="2" > </command-palette-item-group> <command-palette-item-group data-group-id="this_page" data-group-title="This Page" data-group-hint="" data-group-limits="{}" data-default-priority="3" > </command-palette-item-group> <command-palette-item-group data-group-id="files" data-group-title="Files" data-group-hint="" data-group-limits="{}" data-default-priority="4" > </command-palette-item-group> <command-palette-item-group data-group-id="default" data-group-title="Default" data-group-hint="" data-group-limits="{"static_items_page":50}" data-default-priority="5" > </command-palette-item-group> <command-palette-item-group data-group-id="pages" data-group-title="Pages" data-group-hint="" data-group-limits="{"repository":10}" data-default-priority="6" > </command-palette-item-group> <command-palette-item-group data-group-id="access_policies" data-group-title="Access Policies" data-group-hint="" data-group-limits="{}" data-default-priority="7" > </command-palette-item-group> <command-palette-item-group data-group-id="organizations" data-group-title="Organizations" data-group-hint="" data-group-limits="{}" data-default-priority="8" > </command-palette-item-group> <command-palette-item-group data-group-id="repositories" data-group-title="Repositories" data-group-hint="" data-group-limits="{}" data-default-priority="9" > </command-palette-item-group> <command-palette-item-group data-group-id="references" data-group-title="Issues, pull requests, and discussions" data-group-hint="Type # to filter" data-group-limits="{}" data-default-priority="10" > </command-palette-item-group> <command-palette-item-group data-group-id="teams" data-group-title="Teams" data-group-hint="" data-group-limits="{}" data-default-priority="11" > </command-palette-item-group> <command-palette-item-group data-group-id="users" data-group-title="Users" data-group-hint="" data-group-limits="{}" data-default-priority="12" > </command-palette-item-group> <command-palette-item-group data-group-id="projects" data-group-title="Projects" data-group-hint="" data-group-limits="{}" data-default-priority="13" > </command-palette-item-group> <command-palette-item-group data-group-id="footer" data-group-title="Footer" data-group-hint="" data-group-limits="{}" data-default-priority="14" > </command-palette-item-group> <command-palette-item-group data-group-id="modes_help" data-group-title="Modes" data-group-hint="" data-group-limits="{}" data-default-priority="15" > </command-palette-item-group> <command-palette-item-group data-group-id="filters_help" data-group-title="Use filters in issues, pull requests, discussions, and projects" data-group-hint="" data-group-limits="{}" data-default-priority="16" > </command-palette-item-group> <command-palette-page data-page-title="chikitang" data-scope-id="U_kgDOBmIdJQ" data-scope-type="owner" data-targets="command-palette-page-stack.defaultPages" hidden > </command-palette-page> </div> <command-palette-page data-is-root> </command-palette-page> <command-palette-page data-page-title="chikitang" data-scope-id="U_kgDOBmIdJQ" data-scope-type="owner" > </command-palette-page> </command-palette-page-stack> <server-defined-provider data-type="search-links" data-targets="command-palette.serverDefinedProviderElements"></server-defined-provider> <server-defined-provider data-type="help" data-targets="command-palette.serverDefinedProviderElements"> <command-palette-help data-group="modes_help" data-prefix="#" data-scope-types="[""]" > <span data-target="command-palette-help.titleElement">Search for <strong>issues</strong> and <strong>pull requests</strong></span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd">#</kbd> </span> </command-palette-help> <command-palette-help data-group="modes_help" data-prefix="#" data-scope-types="["owner","repository"]" > <span data-target="command-palette-help.titleElement">Search for <strong>issues, pull requests, discussions,</strong> and <strong>projects</strong></span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd">#</kbd> </span> </command-palette-help> <command-palette-help data-group="modes_help" data-prefix="@" data-scope-types="[""]" > <span data-target="command-palette-help.titleElement">Search for <strong>organizations, repositories,</strong> and <strong>users</strong></span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd">@</kbd> </span> </command-palette-help> <command-palette-help data-group="modes_help" data-prefix="!" data-scope-types="["owner","repository"]" > <span data-target="command-palette-help.titleElement">Search for <strong>projects</strong></span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd">!</kbd> </span> </command-palette-help> <command-palette-help data-group="modes_help" data-prefix="/" data-scope-types="["repository"]" > <span data-target="command-palette-help.titleElement">Search for <strong>files</strong></span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd">/</kbd> </span> </command-palette-help> <command-palette-help data-group="modes_help" data-prefix=">" > <span data-target="command-palette-help.titleElement">Activate <strong>command mode</strong></span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd">></kbd> </span> </command-palette-help> <command-palette-help data-group="filters_help" data-prefix="# author:@me" > <span data-target="command-palette-help.titleElement">Search your issues, pull requests, and discussions</span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd"># author:@me</kbd> </span> </command-palette-help> <command-palette-help data-group="filters_help" data-prefix="# author:@me" > <span data-target="command-palette-help.titleElement">Search your issues, pull requests, and discussions</span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd"># author:@me</kbd> </span> </command-palette-help> <command-palette-help data-group="filters_help" data-prefix="# is:pr" > <span data-target="command-palette-help.titleElement">Filter to pull requests</span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd"># is:pr</kbd> </span> </command-palette-help> <command-palette-help data-group="filters_help" data-prefix="# is:issue" > <span data-target="command-palette-help.titleElement">Filter to issues</span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd"># is:issue</kbd> </span> </command-palette-help> <command-palette-help data-group="filters_help" data-prefix="# is:discussion" data-scope-types="["owner","repository"]" > <span data-target="command-palette-help.titleElement">Filter to discussions</span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd"># is:discussion</kbd> </span> </command-palette-help> <command-palette-help data-group="filters_help" data-prefix="# is:project" data-scope-types="["owner","repository"]" > <span data-target="command-palette-help.titleElement">Filter to projects</span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd"># is:project</kbd> </span> </command-palette-help> <command-palette-help data-group="filters_help" data-prefix="# is:open" > <span data-target="command-palette-help.titleElement">Filter to open issues, pull requests, and discussions</span> <span data-target="command-palette-help.hintElement"> <kbd class="hx_kbd"># is:open</kbd> </span> </command-palette-help> </server-defined-provider> <server-defined-provider data-type="commands" data-fetch-debounce="0" data-src="/command_palette/commands" data-supported-modes="[]" data-supports-commands data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="prefetched" data-fetch-debounce="0" data-src="/command_palette/jump_to_page_navigation" data-supported-modes="[""]" data-supported-scope-types="["","owner","repository"]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/issues" data-supported-modes="["#","#"]" data-supported-scope-types="["owner","repository",""]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/jump_to" data-supported-modes="["@","@"]" data-supported-scope-types="["","owner"]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/jump_to_members_only" data-supported-modes="["@","@","",""]" data-supported-scope-types="["","owner"]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="prefetched" data-fetch-debounce="0" data-src="/command_palette/jump_to_members_only_prefetched" data-supported-modes="["@","@","",""]" data-supported-scope-types="["","owner"]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="files" data-fetch-debounce="0" data-src="/command_palette/files" data-supported-modes="["/"]" data-supported-scope-types="["repository"]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/discussions" data-supported-modes="["#"]" data-supported-scope-types="["owner","repository"]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/projects" data-supported-modes="["#","!"]" data-supported-scope-types="["owner","repository"]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="prefetched" data-fetch-debounce="0" data-src="/command_palette/recent_issues" data-supported-modes="["#","#"]" data-supported-scope-types="["owner","repository",""]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/teams" data-supported-modes="["@",""]" data-supported-scope-types="["owner"]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> <server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/name_with_owner_repository" data-supported-modes="["@","@","",""]" data-supported-scope-types="["","owner"]" data-targets="command-palette.serverDefinedProviderElements" ></server-defined-provider> </command-palette> </details-dialog> </details> <div class="position-fixed bottom-0 left-0 ml-5 mb-5 js-command-palette-toasts" style="z-index: 1000"> <div hidden class="Toast Toast--loading"> <span class="Toast-icon"> <svg class="Toast--spinner" viewBox="0 0 32 32" width="18" height="18" aria-hidden="true"> <path fill="#959da5" d="M16 0 A16 16 0 0 0 16 32 A16 16 0 0 0 16 0 M16 4 A12 12 0 0 1 16 28 A12 12 0 0 1 16 4" /> <path fill="#ffffff" d="M16 0 A16 16 0 0 1 32 16 L28 16 A12 12 0 0 0 16 4z"></path> </svg> </span> <span class="Toast-content"></span> </div> <div hidden class="anim-fade-in fast Toast Toast--error"> <span class="Toast-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-stop"> <path fill-rule="evenodd" d="M4.47.22A.75.75 0 015 0h6a.75.75 0 01.53.22l4.25 4.25c.141.14.22.331.22.53v6a.75.75 0 01-.22.53l-4.25 4.25A.75.75 0 0111 16H5a.75.75 0 01-.53-.22L.22 11.53A.75.75 0 010 11V5a.75.75 0 01.22-.53L4.47.22zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5H5.31zM8 4a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 018 4zm0 8a1 1 0 100-2 1 1 0 000 2z"></path> </svg> </span> <span class="Toast-content"></span> </div> <div hidden class="anim-fade-in fast Toast Toast--warning"> <span class="Toast-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path> </svg> </span> <span class="Toast-content"></span> </div> <div hidden class="anim-fade-in fast Toast Toast--success"> <span class="Toast-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> </span> <span class="Toast-content"></span> </div> <div hidden class="anim-fade-in fast Toast"> <span class="Toast-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-info"> <path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"></path> </svg> </span> <span class="Toast-content"></span> </div> </div> <div class="application-main " data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled > <main id="js-pjax-container" data-pjax-container> <div class="mt-4 position-sticky top-0 d-none d-md-block color-bg-default width-full border-bottom color-border-muted" style="z-index:3;" > <div class="container-xl px-3 px-md-4 px-lg-5"> <div data-view-component="true" class="Layout Layout--flowRow-until-md Layout--sidebarPosition-start Layout--sidebarPosition-flowRow-start"> <div data-view-component="true" class="Layout-sidebar"> <div class="user-profile-sticky-bar"> <div class="user-profile-mini-vcard d-table"> <span class="user-profile-mini-avatar d-table-cell v-align-middle lh-condensed-ultra pr-2"> <img class="rounded-2 avatar-user" src="https://avatars.githubusercontent.com/u/107093285?s=64&v=4" width="32" height="32" alt="@chikitang" /> </span> <span class="d-table-cell v-align-middle lh-condensed"> <strong>chikitang</strong> </span> </div> </div> </div> <div data-view-component="true" class="Layout-main"> <div class="UnderlineNav width-full box-shadow-none js-responsive-underlinenav overflow-md-x-hidden"> <nav class="UnderlineNav-body width-full p-responsive" data-pjax aria-label="User profile"> <a class="UnderlineNav-item js-responsive-underlinenav-item" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"TAB_OVERVIEW","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="5d370149c21205ec5db1b16999e0832e303dc0e8216fdfcad467e4d739ba5bd2" data-tab-item="overview" href="/chikitang"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M0 1.75A.75.75 0 01.75 1h4.253c1.227 0 2.317.59 3 1.501A3.744 3.744 0 0111.006 1h4.245a.75.75 0 01.75.75v10.5a.75.75 0 01-.75.75h-4.507a2.25 2.25 0 00-1.591.659l-.622.621a.75.75 0 01-1.06 0l-.622-.621A2.25 2.25 0 005.258 13H.75a.75.75 0 01-.75-.75V1.75zm8.755 3a2.25 2.25 0 012.25-2.25H14.5v9h-3.757c-.71 0-1.4.201-1.992.572l.004-7.322zm-1.504 7.324l.004-5.073-.002-2.253A2.25 2.25 0 005.003 2.5H1.5v9h3.757a3.75 3.75 0 011.994.574z"></path> </svg> Overview </a> <a aria-current="page" class="UnderlineNav-item js-responsive-underlinenav-item selected" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"TAB_REPOSITORIES","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="2878152d02a2613d43b03e73899fd932cdc33dbf741606f59108073a3be3d53e" data-tab-item="repositories" href="/chikitang?tab=repositories"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> Repositories <span title="1" data-view-component="true" class="Counter">1</span> </a> <a class="UnderlineNav-item js-responsive-underlinenav-item" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"TAB_PROJECTS","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="998a9967a41db96a06d41fa60e83ae993072d339981cb58ccbd2a1e8c28b8173" data-tab-item="projects" href="/chikitang?tab=projects&type=beta"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v3.585a.746.746 0 010 .83v8.085A1.75 1.75 0 0114.25 16H6.309a.748.748 0 01-1.118 0H1.75A1.75 1.75 0 010 14.25V6.165a.746.746 0 010-.83V1.75zM1.5 6.5v7.75c0 .138.112.25.25.25H5v-8H1.5zM5 5H1.5V1.75a.25.25 0 01.25-.25H5V5zm1.5 1.5v8h7.75a.25.25 0 00.25-.25V6.5h-8zm8-1.5h-8V1.5h7.75a.25.25 0 01.25.25V5z"></path> </svg> Projects <span title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a> <a class="UnderlineNav-item js-responsive-underlinenav-item" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"TAB_PACKAGES","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="add7fd6f4f8f617c23b86cea0dd89fef5bd1ea5fe415b3492401e9a613d417be" data-tab-item="packages" href="/chikitang?tab=packages"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-package UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M8.878.392a1.75 1.75 0 00-1.756 0l-5.25 3.045A1.75 1.75 0 001 4.951v6.098c0 .624.332 1.2.872 1.514l5.25 3.045a1.75 1.75 0 001.756 0l5.25-3.045c.54-.313.872-.89.872-1.514V4.951c0-.624-.332-1.2-.872-1.514L8.878.392zM7.875 1.69a.25.25 0 01.25 0l4.63 2.685L8 7.133 3.245 4.375l4.63-2.685zM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432L2.5 5.677zm6.25 8.271l4.625-2.683a.25.25 0 00.125-.216V5.677L8.75 8.432v5.516z"></path> </svg> Packages <span title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a> <a class="UnderlineNav-item js-responsive-underlinenav-item" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"TAB_STARS","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="9b1d942d1e97482fca652be20f1a0bdf7aadf6379f10093c52d87921e2fc4d38" data-tab-item="stars" href="/chikitang?tab=stars"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path> </svg> Stars <span title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a> </nav> <div class="position-absolute pr-3 pr-md-4 pr-lg-5 right-0 js-responsive-underlinenav-overflow" style="visibility: hidden"> <details data-view-component="true" class="details-overlay details-reset position-relative"> <summary role="button" data-view-component="true"> <div class="UnderlineNav-item mr-0 border-0"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal"> <path d="M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path> </svg> <span class="sr-only">More</span> </div> </summary> <div data-view-component="true"> <details-menu role="menu" class="dropdown-menu dropdown-menu-sw"> <ul > <li data-menu-item="overview" hidden> <a role="menuitem" class="js-selected-navigation-item selected dropdown-item" aria-current="page" data-selected-links=" /chikitang" href="/chikitang">Overview</a> </li> <li data-menu-item="repositories" hidden> <a role="menuitem" class="js-selected-navigation-item selected dropdown-item" aria-current="page" data-selected-links=" /chikitang?tab=repositories" href="/chikitang?tab=repositories">Repositories</a> </li> <li data-menu-item="projects" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /chikitang?tab=projects&type=beta" href="/chikitang?tab=projects&type=beta">Projects</a> </li> <li data-menu-item="packages" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /chikitang?tab=packages" href="/chikitang?tab=packages">Packages</a> </li> <li data-menu-item="stars" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /chikitang?tab=stars" href="/chikitang?tab=stars">Stars</a> </li> </ul> </details-menu> </div> </details></div> </div> </div> </div> </div> </div> <div class="container-xl px-3 px-md-4 px-lg-5"> <div data-view-component="true" class="Layout Layout--flowRow-until-md Layout--sidebarPosition-start Layout--sidebarPosition-flowRow-start"> <div data-view-component="true" class="Layout-sidebar"> <div class="h-card mt-md-n5" data-acv-badge-hovercards-enabled itemscope itemtype="http://schema.org/Person" > <div class="user-profile-sticky-bar js-user-profile-sticky-bar d-none d-md-block"> <div class="user-profile-mini-vcard d-table"> <span class="user-profile-mini-avatar d-table-cell v-align-middle lh-condensed-ultra pr-2"> <img class="rounded-2 avatar-user" src="https://avatars.githubusercontent.com/u/107093285?s=64&v=4" width="32" height="32" alt="@chikitang" /> </span> <span class="d-table-cell v-align-middle lh-condensed"> <strong>chikitang</strong> </span> </div> </div> <div class="js-profile-editable-replace"> <div class="clearfix d-flex d-md-block flex-items-center mb-4 mb-md-0"> <div class="position-relative d-inline-block col-2 col-md-12 mr-3 mr-md-0 flex-shrink-0" style="z-index:4;" > <a class="tooltipped tooltipped-s d-block" aria-label="Change your avatar" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"EDIT_AVATAR","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="fe768eb126278f5ea2e2be2a694fd8f3a8db38717e25f9387d181f875bad4f31" href="https://github.com/account"><img style="height:auto;" alt="" width="260" height="260" class="avatar avatar-user width-full border color-bg-default" src="https://avatars.githubusercontent.com/u/107093285?v=4" /></a> <div class="user-status-container position-relative hide-sm hide-md"> <div class="f5 js-user-status-context user-status-circle-badge-container user-status-editable" data-url="/users/status?circle=1&compact=0&link_mentions=1&truncate=0" > <div class="js-user-status-container user-status-circle-badge d-inline-block lh-condensed-ultra p-2" data-team-hovercards-enabled> <details class="js-user-status-details details-reset details-overlay details-overlay-dark"> <summary class="btn-link btn-block Link--secondary no-underline js-toggle-user-status-edit toggle-user-status-edit" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"EDIT_USER_STATUS","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="797b66215ac5265bc63e61ea380b67a3995b5dd86fe8fab5deea9ee6fbb92bc9"> <div class="d-flex flex-items-center flex-items-stretch"> <div class="f6 lh-condensed user-status-header d-inline-flex user-status-emoji-only-header circle"> <div class="user-status-emoji-container flex-shrink-0 mr-2 d-flex flex-items-center flex-justify-center "> <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM5 8a1 1 0 100-2 1 1 0 000 2zm7-1a1 1 0 11-2 0 1 1 0 012 0zM5.32 9.636a.75.75 0 011.038.175l.007.009c.103.118.22.222.35.31.264.178.683.37 1.285.37.602 0 1.02-.192 1.285-.371.13-.088.247-.192.35-.31l.007-.008a.75.75 0 111.222.87l-.614-.431c.614.43.614.431.613.431v.001l-.001.002-.002.003-.005.007-.014.019a1.984 1.984 0 01-.184.213c-.16.166-.338.316-.53.445-.63.418-1.37.638-2.127.629-.946 0-1.652-.308-2.126-.63a3.32 3.32 0 01-.715-.657l-.014-.02-.005-.006-.002-.003v-.002h-.001l.613-.432-.614.43a.75.75 0 01.183-1.044h.001z"></path></svg> </div> </div> <div class=" ws-normal user-status-message-wrapper f6 min-width-0" > <div class="css-truncate css-truncate-target width-fit color-fg-default"> <span class="color-fg-muted">Set status</span> </div> </div> </div> </summary> <details-dialog class="rounded-2 anim-fade-in fast Box Box--overlay overflow-visible" role="dialog" aria-label="Edit status" tabindex="-1"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="position-relative flex-auto js-user-status-form" data-turbo="false" action="/users/status?circle=1&compact=0&link_mentions=1&truncate=0" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" autocomplete="off" /><input type="hidden" name="authenticity_token" value="TROZQ1psazHuv4SfB_6CRG81LOswktW22NJDqz2bjfsh_3WyNIJmw91nORchhJS4niNrCWbssHaAEqHwSouerQ" /> <div class="Box-header color-bg-subtle border-bottom p-3"> <button class="Box-btn-octicon js-toggle-user-status-edit btn-octicon float-right" type="reset" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg> </button> <h3 class="Box-title f5 text-bold color-fg-default">Edit status</h3> </div> <input type="hidden" name="emoji" class="js-user-status-emoji-field" value=""> <input type="hidden" name="organization_id" class="js-user-status-org-id-field" value=""> <div class="px-3 py-2 color-fg-default"> <div class="js-characters-remaining-container position-relative mt-2"> <div class="input-group d-table form-group my-0 js-user-status-form-group"> <span class="input-group-button d-table-cell v-align-middle" style="width: 1%"> <button aria-label="Choose an emoji" type="button" data-view-component="true" class="js-toggle-user-status-emoji-picker btn-outline btn p-0"> <span class="js-user-status-original-emoji" hidden></span> <span class="js-user-status-custom-emoji"></span> <span class="js-user-status-no-emoji-icon" > <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-smiley"> <path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM5 8a1 1 0 100-2 1 1 0 000 2zm7-1a1 1 0 11-2 0 1 1 0 012 0zM5.32 9.636a.75.75 0 011.038.175l.007.009c.103.118.22.222.35.31.264.178.683.37 1.285.37.602 0 1.02-.192 1.285-.371.13-.088.247-.192.35-.31l.007-.008a.75.75 0 111.222.87l-.614-.431c.614.43.614.431.613.431v.001l-.001.002-.002.003-.005.007-.014.019a1.984 1.984 0 01-.184.213c-.16.166-.338.316-.53.445-.63.418-1.37.638-2.127.629-.946 0-1.652-.308-2.126-.63a3.32 3.32 0 01-.715-.657l-.014-.02-.005-.006-.002-.003v-.002h-.001l.613-.432-.614.43a.75.75 0 01.183-1.044h.001z"></path> </svg> </span> </button> </span> <text-expander keys=": @" data-mention-url="/autocomplete/user-suggestions" data-emoji-url="/autocomplete/emoji"> <input type="text" autocomplete="off" data-no-org-url="/autocomplete/user-suggestions" data-org-url="/suggestions?mention_suggester=1" data-maxlength="80" class="d-table-cell width-full form-control js-user-status-message-field js-characters-remaining-field" placeholder="What's happening?" name="message" value="" aria-label="What is your current status?"> </text-expander> <div class="error">Could not update your status, please try again.</div> </div> <div style="margin-left: 53px" class="my-1 text-small label-characters-remaining js-characters-remaining" data-suffix="remaining" hidden> 80 remaining </div> </div> <include-fragment class="js-user-status-emoji-picker" data-url="/users/status/emoji"></include-fragment> <div class="overflow-auto ml-n3 mr-n3 px-3 border-bottom" style="max-height: 33vh"> <div class="user-status-suggestions js-user-status-suggestions collapsed overflow-hidden"> <h4 class="f6 text-normal my-3">Suggestions:</h4> <div class="mx-3 mt-2 clearfix"> <div class="float-left col-6"> <button type="button" value=":palm_tree:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link Link--secondary no-underline js-predefined-user-status mb-1"> <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji"> <g-emoji alias="palm_tree" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f334.png">🌴</g-emoji> </div> <div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent"> On vacation </div> </button> <button type="button" value=":face_with_thermometer:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link Link--secondary no-underline js-predefined-user-status mb-1"> <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji"> <g-emoji alias="face_with_thermometer" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f912.png">🤒</g-emoji> </div> <div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent"> Out sick </div> </button> </div> <div class="float-left col-6"> <button type="button" value=":house:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link Link--secondary no-underline js-predefined-user-status mb-1"> <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji"> <g-emoji alias="house" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3e0.png">🏠</g-emoji> </div> <div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent"> Working from home </div> </button> <button type="button" value=":dart:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link Link--secondary no-underline js-predefined-user-status mb-1"> <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji"> <g-emoji alias="dart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3af.png">🎯</g-emoji> </div> <div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent"> Focusing </div> </button> </div> </div> </div> <div class="user-status-limited-availability-container"> <div class="form-checkbox my-0"> <input type="checkbox" name="limited_availability" value="1" class="js-user-status-limited-availability-checkbox" data-default-message="I may be slow to respond." aria-describedby="limited-availability-help-text-truncate-false-compact-false" id="limited-availability-truncate-false-compact-false"> <label class="d-block f5 color-fg-default mb-1" for="limited-availability-truncate-false-compact-false"> Busy </label> <p class="note" id="limited-availability-help-text-truncate-false-compact-false"> When others mention you, assign you, or request your review, GitHub will let them know that you have limited availability. </p> </div> </div> </div> <div class="d-inline-block f5 mr-2 pt-3 pb-2" > <div class="d-inline-block mr-1"> Clear status </div> <details class="js-user-status-expire-drop-down f6 dropdown details-reset details-overlay d-inline-block mr-2"> <summary aria-haspopup="true" data-view-component="true" class="btn-sm btn v-align-baseline"> <div class="js-user-status-expiration-interval-selected d-inline-block v-align-baseline"> Never </div> <div class="dropdown-caret"></div> </summary> <ul class="dropdown-menu dropdown-menu-se pl-0 overflow-auto" style="width: 220px; max-height: 15.5em"> <li> <button type="button" class="btn-link dropdown-item js-user-status-expire-button ws-normal" title="Never"> <span class="d-inline-block text-bold mb-1">Never</span> <div class="f6 lh-condensed">Keep this status until you clear your status or edit your status.</div> </button> </li> <li class="dropdown-divider" role="none"></li> <li> <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 30 minutes" value="2022-06-07T21:44:33-07:00"> in 30 minutes </button> </li> <li> <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 1 hour" value="2022-06-07T22:14:33-07:00"> in 1 hour </button> </li> <li> <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 4 hours" value="2022-06-08T01:14:33-07:00"> in 4 hours </button> </li> <li> <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="today" value="2022-06-07T23:59:59-07:00"> today </button> </li> <li> <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="this week" value="2022-06-12T23:59:59-07:00"> this week </button> </li> </ul> </details> <input class="js-user-status-expiration-date-input" type="hidden" name="expires_at" value=""> </div> <include-fragment class="js-user-status-org-picker" data-url="/users/status/organizations"></include-fragment> </div> <div class="d-flex flex-items-center flex-justify-between p-3 border-top"> <button type="submit" disabled class="width-full btn btn-primary mr-2 js-user-status-submit"> Set status </button> <button type="button" disabled class="width-full js-clear-user-status-button btn ml-2 "> Clear status </button> </div> </form> </details-dialog> </details> </div> </div> </div> </div> <div class="vcard-names-container float-left js-profile-editable-names col-12 py-3 js-sticky js-user-profile-sticky-fields" > <h1 class="vcard-names "> <span class="p-name vcard-fullname d-block overflow-hidden" itemprop="name"> </span> <span class="p-nickname vcard-username d-block" itemprop="additionalName"> chikitang </span> </h1> </div> </div> <div class="mb-2 user-status-container d-md-none"> <div class="js-user-status-container rounded-2 px-2 py-1 mt-2 border" data-team-hovercards-enabled> <details class="js-user-status-details details-reset details-overlay details-overlay-dark"> <summary class="btn-link btn-block Link--secondary no-underline js-toggle-user-status-edit toggle-user-status-edit" role="menuitem" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"EDIT_USER_STATUS","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="797b66215ac5265bc63e61ea380b67a3995b5dd86fe8fab5deea9ee6fbb92bc9"> <div class="d-flex flex-items-center flex-items-stretch"> <div class="f6 lh-condensed user-status-header d-flex user-status-emoji-only-header circle"> <div class="user-status-emoji-container flex-shrink-0 mr-2 d-flex flex-items-center flex-justify-center lh-condensed-ultra v-align-bottom"> <svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM5 8a1 1 0 100-2 1 1 0 000 2zm7-1a1 1 0 11-2 0 1 1 0 012 0zM5.32 9.636a.75.75 0 011.038.175l.007.009c.103.118.22.222.35.31.264.178.683.37 1.285.37.602 0 1.02-.192 1.285-.371.13-.088.247-.192.35-.31l.007-.008a.75.75 0 111.222.87l-.614-.431c.614.43.614.431.613.431v.001l-.001.002-.002.003-.005.007-.014.019a1.984 1.984 0 01-.184.213c-.16.166-.338.316-.53.445-.63.418-1.37.638-2.127.629-.946 0-1.652-.308-2.126-.63a3.32 3.32 0 01-.715-.657l-.014-.02-.005-.006-.002-.003v-.002h-.001l.613-.432-.614.43a.75.75 0 01.183-1.044h.001z"></path></svg> </div> </div> <div class=" user-status-message-wrapper f6 min-width-0" style="line-height: 20px;" > <div class="css-truncate css-truncate-target width-fit color-fg-default text-left"> <span class="color-fg-muted">Set status</span> </div> </div> </div> </summary> <details-dialog class="rounded-2 anim-fade-in fast Box Box--overlay overflow-visible" role="dialog" aria-label="Edit status" tabindex="-1"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="position-relative flex-auto js-user-status-form" data-turbo="false" action="/users/status?circle=0&compact=1&link_mentions=1&truncate=0" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" autocomplete="off" /><input type="hidden" name="authenticity_token" value="SOdH-f-2peym7Q5DQYTnVoMgrDIwG-wMjYJooZiAkyQkC6sIkVioHpU1s8tn_vGqcjbr0GZliczVQor675CAcg" /> <div class="Box-header color-bg-subtle border-bottom p-3"> <button class="Box-btn-octicon js-toggle-user-status-edit btn-octicon float-right" type="reset" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg> </button> <h3 class="Box-title f5 text-bold color-fg-default">Edit status</h3> </div> <input type="hidden" name="emoji" class="js-user-status-emoji-field" value=""> <input type="hidden" name="organization_id" class="js-user-status-org-id-field" value=""> <div class="px-3 py-2 color-fg-default"> <div class="js-characters-remaining-container position-relative mt-2"> <div class="input-group d-table form-group my-0 js-user-status-form-group"> <span class="input-group-button d-table-cell v-align-middle" style="width: 1%"> <button aria-label="Choose an emoji" type="button" data-view-component="true" class="js-toggle-user-status-emoji-picker btn-outline btn p-0"> <span class="js-user-status-original-emoji" hidden></span> <span class="js-user-status-custom-emoji"></span> <span class="js-user-status-no-emoji-icon" > <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-smiley"> <path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM5 8a1 1 0 100-2 1 1 0 000 2zm7-1a1 1 0 11-2 0 1 1 0 012 0zM5.32 9.636a.75.75 0 011.038.175l.007.009c.103.118.22.222.35.31.264.178.683.37 1.285.37.602 0 1.02-.192 1.285-.371.13-.088.247-.192.35-.31l.007-.008a.75.75 0 111.222.87l-.614-.431c.614.43.614.431.613.431v.001l-.001.002-.002.003-.005.007-.014.019a1.984 1.984 0 01-.184.213c-.16.166-.338.316-.53.445-.63.418-1.37.638-2.127.629-.946 0-1.652-.308-2.126-.63a3.32 3.32 0 01-.715-.657l-.014-.02-.005-.006-.002-.003v-.002h-.001l.613-.432-.614.43a.75.75 0 01.183-1.044h.001z"></path> </svg> </span> </button> </span> <text-expander keys=": @" data-mention-url="/autocomplete/user-suggestions" data-emoji-url="/autocomplete/emoji"> <input type="text" autocomplete="off" data-no-org-url="/autocomplete/user-suggestions" data-org-url="/suggestions?mention_suggester=1" data-maxlength="80" class="d-table-cell width-full form-control js-user-status-message-field js-characters-remaining-field" placeholder="What's happening?" name="message" value="" aria-label="What is your current status?"> </text-expander> <div class="error">Could not update your status, please try again.</div> </div> <div style="margin-left: 53px" class="my-1 text-small label-characters-remaining js-characters-remaining" data-suffix="remaining" hidden> 80 remaining </div> </div> <include-fragment class="js-user-status-emoji-picker" data-url="/users/status/emoji"></include-fragment> <div class="overflow-auto ml-n3 mr-n3 px-3 border-bottom" style="max-height: 33vh"> <div class="user-status-suggestions js-user-status-suggestions collapsed overflow-hidden"> <h4 class="f6 text-normal my-3">Suggestions:</h4> <div class="mx-3 mt-2 clearfix"> <div class="float-left col-6"> <button type="button" value=":palm_tree:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link Link--secondary no-underline js-predefined-user-status mb-1"> <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji"> <g-emoji alias="palm_tree" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f334.png">🌴</g-emoji> </div> <div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent"> On vacation </div> </button> <button type="button" value=":face_with_thermometer:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link Link--secondary no-underline js-predefined-user-status mb-1"> <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji"> <g-emoji alias="face_with_thermometer" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f912.png">🤒</g-emoji> </div> <div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent"> Out sick </div> </button> </div> <div class="float-left col-6"> <button type="button" value=":house:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link Link--secondary no-underline js-predefined-user-status mb-1"> <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji"> <g-emoji alias="house" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3e0.png">🏠</g-emoji> </div> <div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent"> Working from home </div> </button> <button type="button" value=":dart:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link Link--secondary no-underline js-predefined-user-status mb-1"> <div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji"> <g-emoji alias="dart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3af.png">🎯</g-emoji> </div> <div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent"> Focusing </div> </button> </div> </div> </div> <div class="user-status-limited-availability-container"> <div class="form-checkbox my-0"> <input type="checkbox" name="limited_availability" value="1" class="js-user-status-limited-availability-checkbox" data-default-message="I may be slow to respond." aria-describedby="limited-availability-help-text-truncate-false-compact-true" id="limited-availability-truncate-false-compact-true"> <label class="d-block f5 color-fg-default mb-1" for="limited-availability-truncate-false-compact-true"> Busy </label> <p class="note" id="limited-availability-help-text-truncate-false-compact-true"> When others mention you, assign you, or request your review, GitHub will let them know that you have limited availability. </p> </div> </div> </div> <div class="d-inline-block f5 mr-2 pt-3 pb-2" > <div class="d-inline-block mr-1"> Clear status </div> <details class="js-user-status-expire-drop-down f6 dropdown details-reset details-overlay d-inline-block mr-2"> <summary aria-haspopup="true" data-view-component="true" class="btn-sm btn v-align-baseline"> <div class="js-user-status-expiration-interval-selected d-inline-block v-align-baseline"> Never </div> <div class="dropdown-caret"></div> </summary> <ul class="dropdown-menu dropdown-menu-se pl-0 overflow-auto" style="width: 220px; max-height: 15.5em"> <li> <button type="button" class="btn-link dropdown-item js-user-status-expire-button ws-normal" title="Never"> <span class="d-inline-block text-bold mb-1">Never</span> <div class="f6 lh-condensed">Keep this status until you clear your status or edit your status.</div> </button> </li> <li class="dropdown-divider" role="none"></li> <li> <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 30 minutes" value="2022-06-07T21:44:33-07:00"> in 30 minutes </button> </li> <li> <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 1 hour" value="2022-06-07T22:14:33-07:00"> in 1 hour </button> </li> <li> <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 4 hours" value="2022-06-08T01:14:33-07:00"> in 4 hours </button> </li> <li> <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="today" value="2022-06-07T23:59:59-07:00"> today </button> </li> <li> <button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="this week" value="2022-06-12T23:59:59-07:00"> this week </button> </li> </ul> </details> <input class="js-user-status-expiration-date-input" type="hidden" name="expires_at" value=""> </div> <include-fragment class="js-user-status-org-picker" data-url="/users/status/organizations"></include-fragment> </div> <div class="d-flex flex-items-center flex-justify-between p-3 border-top"> <button type="submit" disabled class="width-full btn btn-primary mr-2 js-user-status-submit"> Set status </button> <button type="button" disabled class="width-full js-clear-user-status-button btn ml-2 "> Clear status </button> </div> </form> </details-dialog> </details> </div> </div> <div class="d-flex flex-column"> <div class="flex-order-1 flex-md-order-none"> <div class="d-flex flex-lg-row flex-md-column"> </div> <!-- '"` --><!-- </textarea></xmp> --></option></form><form hidden="hidden" class="position-relative flex-auto js-profile-editable-form" data-turbo="false" action="/users/chikitang" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="put" autocomplete="off" /><input type="hidden" name="authenticity_token" value="iwkVToBnjXFFdNjInjG45Uav3_DZUvm96ztLPa7SIYzz2alJxKqJKkcLPLY81dLs-VRRaZXtdnzRx1yISU3dcQ" /> <div class="mb-1 mb-2"> <label for="user_profile_name" class="d-block mb-1">Name</label> <input class="width-full form-control" id="user_profile_name" placeholder="Name" aria-label="Name" name="user[profile_name]" value=""> </div> <div class="js-length-limited-input-container"> <label for="user_profile_bio" class="d-block mb-1">Bio</label> <text-expander keys=": @" data-emoji-url="/autocomplete/emoji" data-mention-url="/autocomplete/user-suggestions"> <textarea class="form-control js-length-limited-input mb-1 width-full js-user-profile-bio-edit" id="user_profile_bio" name="user[profile_bio]" placeholder="Add a bio" aria-label="Add a bio" rows="3" data-input-max-length="160" data-warning-text="{{remaining}} remaining"></textarea> <div class="d-none js-length-limited-input-warning user-profile-bio-message text-right m-0"></div> </text-expander> <p class="note"> You can <strong>@mention</strong> other users and organizations to link to them. </p> </div> <div class="color-fg-muted mt-2 d-flex flex-items-center"> <svg style="width: 16px;" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-organization"> <path fill-rule="evenodd" d="M1.5 14.25c0 .138.112.25.25.25H4v-1.25a.75.75 0 01.75-.75h2.5a.75.75 0 01.75.75v1.25h2.25a.25.25 0 00.25-.25V1.75a.25.25 0 00-.25-.25h-8.5a.25.25 0 00-.25.25v12.5zM1.75 16A1.75 1.75 0 010 14.25V1.75C0 .784.784 0 1.75 0h8.5C11.216 0 12 .784 12 1.75v12.5c0 .085-.006.168-.018.25h2.268a.25.25 0 00.25-.25V8.285a.25.25 0 00-.111-.208l-1.055-.703a.75.75 0 11.832-1.248l1.055.703c.487.325.779.871.779 1.456v5.965A1.75 1.75 0 0114.25 16h-3.5a.75.75 0 01-.197-.026c-.099.017-.2.026-.303.026h-3a.75.75 0 01-.75-.75V14h-1v1.25a.75.75 0 01-.75.75h-3zM3 3.75A.75.75 0 013.75 3h.5a.75.75 0 010 1.5h-.5A.75.75 0 013 3.75zM3.75 6a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM3 9.75A.75.75 0 013.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 013 9.75zM7.75 9a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM7 6.75A.75.75 0 017.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 017 6.75zM7.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5z"></path> </svg> <input class="ml-2 form-control flex-auto input-sm" placeholder="Company" aria-label="Company" name="user[profile_company]" value=""> </div> <div class="color-fg-muted mt-2 d-flex flex-items-center"> <svg style="width: 16px;" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-location"> <path fill-rule="evenodd" d="M11.536 3.464a5 5 0 010 7.072L8 14.07l-3.536-3.535a5 5 0 117.072-7.072v.001zm1.06 8.132a6.5 6.5 0 10-9.192 0l3.535 3.536a1.5 1.5 0 002.122 0l3.535-3.536zM8 9a2 2 0 100-4 2 2 0 000 4z"></path> </svg> <input class="ml-2 form-control flex-auto input-sm" placeholder="Location" aria-label="Location" name="user[profile_location]" value=""> </div> <div class="color-fg-muted mt-2 d-flex flex-items-center"> <svg style="width: 16px;" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link"> <path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path> </svg> <input class="ml-2 form-control flex-auto input-sm" placeholder="Website" aria-label="Website" name="user[profile_blog]" value=""> </div> <div class="color-fg-muted mt-2 d-flex flex-items-center" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 273.5 222.3" height="16" width="16"><title>Twitter</title><path d="M273.5 26.3a109.77 109.77 0 0 1-32.2 8.8 56.07 56.07 0 0 0 24.7-31 113.39 113.39 0 0 1-35.7 13.6 56.1 56.1 0 0 0-97 38.4 54 54 0 0 0 1.5 12.8A159.68 159.68 0 0 1 19.1 10.3a56.12 56.12 0 0 0 17.4 74.9 56.06 56.06 0 0 1-25.4-7v.7a56.11 56.11 0 0 0 45 55 55.65 55.65 0 0 1-14.8 2 62.39 62.39 0 0 1-10.6-1 56.24 56.24 0 0 0 52.4 39 112.87 112.87 0 0 1-69.7 24 119 119 0 0 1-13.4-.8 158.83 158.83 0 0 0 86 25.2c103.2 0 159.6-85.5 159.6-159.6 0-2.4-.1-4.9-.2-7.3a114.25 114.25 0 0 0 28.1-29.1" fill="currentColor"></path></svg> <input class="ml-2 form-control flex-auto input-sm" placeholder="Twitter username" aria-label="Twitter username" name="user[profile_twitter_username]" value="" > </div> <div class="my-3"> <div class="js-profile-editable-error color-fg-danger my-3"></div> <button type="submit" data-view-component="true" class="btn-primary btn-sm btn"> Save </button> <button type="reset" data-view-component="true" class="js-profile-editable-cancel btn-sm btn"> Cancel </button> </div> </form> </div> <div class="js-profile-editable-area d-flex flex-column d-md-block"> <div class="p-note user-profile-bio mb-3 js-user-profile-bio f4" data-bio-text="" hidden></div> <div class="mb-3"> <button name="button" type="button" class="btn btn-block js-profile-editable-edit-button" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"INLINE_EDIT_BUTTON","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="61c43523f3cefbffa175f42d94926965a2c009a1d69d82f4bd8aee8c11a19dc8">Edit profile</button> </div> <ul class="vcard-details"> <li title="Member since" class="vcard-detail pt-1 css-truncate css-truncate-target "><svg class="octicon octicon-clock" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.5 4.75a.75.75 0 00-1.5 0v3.5a.75.75 0 00.471.696l2.5 1a.75.75 0 00.557-1.392L8.5 7.742V4.75z"></path></svg> <span class="join-label">Joined </span> <relative-time datetime="2022-06-08T03:50:24Z" class="no-wrap">Jun 7, 2022</relative-time> </li> </ul> </div> </div> </div> </div> </div> <div data-view-component="true" class="Layout-main"> <div class="UnderlineNav user-profile-nav d-block d-md-none position-sticky top-0 pl-3 ml-n3 mr-n3 pr-3 color-bg-default" style="z-index:3;" > <nav class="UnderlineNav-body width-full p-responsive" data-pjax aria-label="User profile"> <a class="UnderlineNav-item js-responsive-underlinenav-item" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"TAB_OVERVIEW","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="5d370149c21205ec5db1b16999e0832e303dc0e8216fdfcad467e4d739ba5bd2" data-tab-item="overview" href="/chikitang"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M0 1.75A.75.75 0 01.75 1h4.253c1.227 0 2.317.59 3 1.501A3.744 3.744 0 0111.006 1h4.245a.75.75 0 01.75.75v10.5a.75.75 0 01-.75.75h-4.507a2.25 2.25 0 00-1.591.659l-.622.621a.75.75 0 01-1.06 0l-.622-.621A2.25 2.25 0 005.258 13H.75a.75.75 0 01-.75-.75V1.75zm8.755 3a2.25 2.25 0 012.25-2.25H14.5v9h-3.757c-.71 0-1.4.201-1.992.572l.004-7.322zm-1.504 7.324l.004-5.073-.002-2.253A2.25 2.25 0 005.003 2.5H1.5v9h3.757a3.75 3.75 0 011.994.574z"></path> </svg> Overview </a> <a aria-current="page" class="UnderlineNav-item js-responsive-underlinenav-item selected" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"TAB_REPOSITORIES","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="2878152d02a2613d43b03e73899fd932cdc33dbf741606f59108073a3be3d53e" data-tab-item="repositories" href="/chikitang?tab=repositories"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> Repositories <span title="1" data-view-component="true" class="Counter">1</span> </a> <a class="UnderlineNav-item js-responsive-underlinenav-item" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"TAB_PROJECTS","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="998a9967a41db96a06d41fa60e83ae993072d339981cb58ccbd2a1e8c28b8173" data-tab-item="projects" href="/chikitang?tab=projects&type=beta"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v3.585a.746.746 0 010 .83v8.085A1.75 1.75 0 0114.25 16H6.309a.748.748 0 01-1.118 0H1.75A1.75 1.75 0 010 14.25V6.165a.746.746 0 010-.83V1.75zM1.5 6.5v7.75c0 .138.112.25.25.25H5v-8H1.5zM5 5H1.5V1.75a.25.25 0 01.25-.25H5V5zm1.5 1.5v8h7.75a.25.25 0 00.25-.25V6.5h-8zm8-1.5h-8V1.5h7.75a.25.25 0 01.25.25V5z"></path> </svg> Projects <span title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a> <a class="UnderlineNav-item js-responsive-underlinenav-item" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"TAB_PACKAGES","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="add7fd6f4f8f617c23b86cea0dd89fef5bd1ea5fe415b3492401e9a613d417be" data-tab-item="packages" href="/chikitang?tab=packages"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-package UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M8.878.392a1.75 1.75 0 00-1.756 0l-5.25 3.045A1.75 1.75 0 001 4.951v6.098c0 .624.332 1.2.872 1.514l5.25 3.045a1.75 1.75 0 001.756 0l5.25-3.045c.54-.313.872-.89.872-1.514V4.951c0-.624-.332-1.2-.872-1.514L8.878.392zM7.875 1.69a.25.25 0 01.25 0l4.63 2.685L8 7.133 3.245 4.375l4.63-2.685zM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432L2.5 5.677zm6.25 8.271l4.625-2.683a.25.25 0 00.125-.216V5.677L8.75 8.432v5.516z"></path> </svg> Packages <span title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a> <a class="UnderlineNav-item js-responsive-underlinenav-item" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":107093285,"target":"TAB_STARS","user_id":107093285,"originating_url":"https://github.com/chikitang?tab=repositories"}}" data-hydro-click-hmac="9b1d942d1e97482fca652be20f1a0bdf7aadf6379f10093c52d87921e2fc4d38" data-tab-item="stars" href="/chikitang?tab=stars"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path> </svg> Stars <span title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a> </nav> <div class="position-absolute pr-3 pr-md-4 pr-lg-5 right-0 js-responsive-underlinenav-overflow" style="visibility: hidden"> <details data-view-component="true" class="details-overlay details-reset position-relative"> <summary role="button" data-view-component="true"> <div class="UnderlineNav-item mr-0 border-0"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal"> <path d="M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path> </svg> <span class="sr-only">More</span> </div> </summary> <div data-view-component="true"> <details-menu role="menu" class="dropdown-menu dropdown-menu-sw"> <ul > <li data-menu-item="overview" hidden> <a role="menuitem" class="js-selected-navigation-item selected dropdown-item" aria-current="page" data-selected-links=" /chikitang" href="/chikitang">Overview</a> </li> <li data-menu-item="repositories" hidden> <a role="menuitem" class="js-selected-navigation-item selected dropdown-item" aria-current="page" data-selected-links=" /chikitang?tab=repositories" href="/chikitang?tab=repositories">Repositories</a> </li> <li data-menu-item="projects" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /chikitang?tab=projects&type=beta" href="/chikitang?tab=projects&type=beta">Projects</a> </li> <li data-menu-item="packages" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /chikitang?tab=packages" href="/chikitang?tab=packages">Packages</a> </li> <li data-menu-item="stars" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /chikitang?tab=stars" href="/chikitang?tab=stars">Stars</a> </li> </ul> </details-menu> </div> </details></div> </div> <div> <div class="position-relative"> <div class="border-bottom color-border-muted py-3"> <a href="/new" class="d-md-none btn btn-primary d-flex flex-items-center flex-justify-center width-full mb-4"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo mr-1"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> New </a> <div class="d-flex flex-items-start"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="width-full" data-autosearch-results-container="user-repositories-list" aria-label="Repositories" role="search" data-turbo="false" action="/chikitang" accept-charset="UTF-8" method="get"> <div class="d-flex flex-column flex-lg-row flex-auto"> <div class="mb-1 mb-md-0 mr-md-3 flex-auto"> <input type="hidden" name="tab" value="repositories"> <input type="search" id="your-repos-filter" name="q" class="form-control width-full" placeholder="Find a repository…" autocomplete="off" aria-label="Find a repository…" value="" data-throttled-autosubmit> </div> <div class="d-flex flex-wrap"> <details class="details-reset details-overlay position-relative mt-1 mt-lg-0 mr-1" id="type-options"> <summary aria-haspopup="true" data-view-component="true" class="btn"> <span>Type</span> <span class="d-none" data-menu-button> All </span> <span class="dropdown-caret"></span> </summary> <details-menu class="SelectMenu right-lg-0"> <div class="SelectMenu-modal"> <header class="SelectMenu-header"> <span class="SelectMenu-title">Select type</span> <button class="SelectMenu-closeButton" type="button" data-toggle-for="type-options"><svg aria-label="Close menu" aria-hidden="false" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg></button> </header> <div class="SelectMenu-list"> <label class="SelectMenu-item" role="menuitemradio" aria-checked="true" tabindex="0"> <input type="radio" name="type" id="type_" value="" hidden="hidden" data-autosubmit="true" checked="checked" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>All</span> </label> <label class="SelectMenu-item" role="menuitemradio" aria-checked="false" tabindex="0"> <input type="radio" name="type" id="type_public" value="public" hidden="hidden" data-autosubmit="true" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>Public</span> </label> <label class="SelectMenu-item" role="menuitemradio" aria-checked="false" tabindex="0"> <input type="radio" name="type" id="type_private" value="private" hidden="hidden" data-autosubmit="true" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>Private</span> </label> <label class="SelectMenu-item" role="menuitemradio" aria-checked="false" tabindex="0"> <input type="radio" name="type" id="type_source" value="source" hidden="hidden" data-autosubmit="true" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>Sources</span> </label> <label class="SelectMenu-item" role="menuitemradio" aria-checked="false" tabindex="0"> <input type="radio" name="type" id="type_fork" value="fork" hidden="hidden" data-autosubmit="true" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>Forks</span> </label> <label class="SelectMenu-item" role="menuitemradio" aria-checked="false" tabindex="0"> <input type="radio" name="type" id="type_archived" value="archived" hidden="hidden" data-autosubmit="true" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>Archived</span> </label> <label class="SelectMenu-item" role="menuitemradio" aria-checked="false" tabindex="0"> <input type="radio" name="type" id="type_mirror" value="mirror" hidden="hidden" data-autosubmit="true" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>Mirrors</span> </label> <label class="SelectMenu-item" role="menuitemradio" aria-checked="false" tabindex="0"> <input type="radio" name="type" id="type_template" value="template" hidden="hidden" data-autosubmit="true" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>Templates</span> </label> </div> </div> </details-menu> </details> <details class="details-reset details-overlay position-relative mt-1 mt-lg-0" id="language-options"> <summary aria-haspopup="true" data-view-component="true" class="btn"> <span>Language</span> <span class="d-none" data-menu-button> All </span> <span class="dropdown-caret"></span> </summary> <details-menu class="SelectMenu mt-1 mt-lg-0 mr-md-2 ml-md-2 right-lg-0"> <div class="SelectMenu-modal"> <header class="SelectMenu-header"> <span class="SelectMenu-title">Select language</span> <button class="SelectMenu-closeButton" type="button" data-toggle-for="language-options"><svg aria-label="Close menu" aria-hidden="false" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg></button> </header> <div class="SelectMenu-list"> <label class="SelectMenu-item" role="menuitemradio" aria-checked="true" tabindex="0"> <input type="radio" name="language" id="language_" value="" hidden="hidden" data-autosubmit="true" checked="checked" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>All</span> </label> <label class="SelectMenu-item" role="menuitemradio" aria-checked="false" tabindex="0"> <input type="radio" name="language" id="language_html" value="html" hidden="hidden" data-autosubmit="true" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>HTML</span> </label> </div> </div> </details-menu> </details> <details class="details-reset details-overlay position-relative mt-1 mt-lg-0 ml-1" id="sort-options"> <summary aria-haspopup="true" data-view-component="true" class="btn"> <span>Sort</span> <span class="d-none" data-menu-button> Last updated </span> <span class="dropdown-caret"></span> </summary> <details-menu class="SelectMenu right-lg-0"> <div class="SelectMenu-modal"> <header class="SelectMenu-header"> <span class="SelectMenu-title">Select order</span> <button class="SelectMenu-closeButton" type="button" data-toggle-for="sort-options"><svg aria-label="Close menu" aria-hidden="false" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg></button> </header> <div class="SelectMenu-list"> <label class="SelectMenu-item" role="menuitemradio" aria-checked="true" tabindex="0"> <input type="radio" name="sort" id="sort_" value="" hidden="hidden" data-autosubmit="true" checked="checked" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>Last updated</span> </label> <label class="SelectMenu-item" role="menuitemradio" aria-checked="false" tabindex="0"> <input type="radio" name="sort" id="sort_name" value="name" hidden="hidden" data-autosubmit="true" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>Name</span> </label> <label class="SelectMenu-item" role="menuitemradio" aria-checked="false" tabindex="0"> <input type="radio" name="sort" id="sort_stargazers" value="stargazers" hidden="hidden" data-autosubmit="true" /> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> <span class="text-normal" data-menu-button-text>Stars</span> </label> </div> </div> </details-menu> </details> </div> </div> </form> <div class="d-none d-md-flex flex-md-items-center flex-md-justify-end"> <a href="/new" class="text-center btn btn-primary ml-3"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> New </a> </div> </div> </div> <div id="user-repositories-list"> <ul data-filterable-for="your-repos-filter" data-filterable-type="substring"> <li class="col-12 d-flex flex-justify-between width-full py-4 border-bottom color-border-muted public source" itemprop="owns" itemscope itemtype="http://schema.org/Code"> <div class="col-10 col-lg-9 d-inline-block"> <div class="d-inline-block mb-1"> <h3 class="wb-break-all"> <a href="/chikitang/github-pages" itemprop="name codeRepository" > github-pages</a> <span></span><span class="Label Label--secondary v-align-middle ml-1 mb-1">Public</span> </h3> </div> <div> <p class="col-9 d-inline-block color-fg-muted mb-2 pr-4" itemprop="description"> A robot powered training repository <g-emoji class="g-emoji" alias="robot" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f916.png">🤖</g-emoji> </p> </div> <div class="f6 color-fg-muted mt-2"> <span class="ml-0 mr-3"> <span class="repo-language-color" style="background-color: #e34c26"></span> <span itemprop="programmingLanguage">HTML</span> </span> <span class="mr-3"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-law mr-1"> <path fill-rule="evenodd" d="M8.75.75a.75.75 0 00-1.5 0V2h-.984c-.305 0-.604.08-.869.23l-1.288.737A.25.25 0 013.984 3H1.75a.75.75 0 000 1.5h.428L.066 9.192a.75.75 0 00.154.838l.53-.53-.53.53v.001l.002.002.002.002.006.006.016.015.045.04a3.514 3.514 0 00.686.45A4.492 4.492 0 003 11c.88 0 1.556-.22 2.023-.454a3.515 3.515 0 00.686-.45l.045-.04.016-.015.006-.006.002-.002.001-.002L5.25 9.5l.53.53a.75.75 0 00.154-.838L3.822 4.5h.162c.305 0 .604-.08.869-.23l1.289-.737a.25.25 0 01.124-.033h.984V13h-2.5a.75.75 0 000 1.5h6.5a.75.75 0 000-1.5h-2.5V3.5h.984a.25.25 0 01.124.033l1.29.736c.264.152.563.231.868.231h.162l-2.112 4.692a.75.75 0 00.154.838l.53-.53-.53.53v.001l.002.002.002.002.006.006.016.015.045.04a3.517 3.517 0 00.686.45A4.492 4.492 0 0013 11c.88 0 1.556-.22 2.023-.454a3.512 3.512 0 00.686-.45l.045-.04.01-.01.006-.005.006-.006.002-.002.001-.002-.529-.531.53.53a.75.75 0 00.154-.838L13.823 4.5h.427a.75.75 0 000-1.5h-2.234a.25.25 0 01-.124-.033l-1.29-.736A1.75 1.75 0 009.735 2H8.75V.75zM1.695 9.227c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327l-1.305 2.9zm10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327l-1.305 2.9z"></path> </svg>MIT License </span> Updated <relative-time datetime="2022-06-08T03:58:07Z" class="no-wrap">Jun 7, 2022</relative-time> </div> </div> <div class="col-2 d-flex flex-column flex-justify-around flex-items-end ml-3"> <template class="js-unstar-confirmation-dialog-template"> <div class="Box-header"> <h2 class="Box-title">Unstar this repository?</h2> </div> <div class="Box-body"> <p class="mb-3"> This will remove {{ repoNameWithOwner }} from the {{ listsWithCount }} that it's been added to. </p> <div class="form-actions"> <form class="js-social-confirmation-form" data-turbo="false" action="{{ confirmUrl }}" accept-charset="UTF-8" method="post"> <input type="hidden" name="authenticity_token" value="{{ confirmCsrfToken }}"> <input type="hidden" name="confirm" value="true"> <button data-close-dialog="true" type="submit" data-view-component="true" class="btn-danger btn width-full"> Unstar </button> </form> </div> </div> </template> <div data-view-component="true" class="js-toggler-container js-social-container starring-container BtnGroup d-flex"> <form class="starred js-social-form BtnGroup-parent flex-auto js-deferred-toggler-target" data-turbo="false" action="/chikitang/github-pages/unstar" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="P3ZaMuVNtLT4QUVj9SZ3_76QeVS-3FOc0gP3XVwVBgRcLVKXCTCdvdJ6obMwUrBCGfd2XQVN_W7IuZa7njBcNA" autocomplete="off" /> <input type="hidden" value="KnKZMI3CU5RojoPkAik3DUoD4aqrgGVadUrVgfAoCJRJKZGVYb96nUK1ZzTHXfCw7WTuoxARy6hv8LRnMg1SpA" data-csrf="true" class="js-confirm-csrf-token" /> <input type="hidden" name="context" value="other"> <button data-hydro-click="{"event_type":"repository.click","payload":{"target":"UNSTAR_BUTTON","repository_id":501093064,"originating_url":"https://github.com/chikitang?tab=repositories","user_id":107093285}}" data-hydro-click-hmac="f34c8205d1678d4ae0e77c4839fbb14d3a9fd63160652b28998f8827c527e5a2" data-ga-click="Repository, click unstar button, action:profiles/repositories#index; text:Unstar" aria-label="Unstar this repository" type="submit" data-view-component="true" class="rounded-left-2 border-right-0 btn-sm btn BtnGroup-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star-fill starred-button-icon d-inline-block mr-2"> <path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25z"></path> </svg><span data-view-component="true" class="d-inline"> Starred </span> </button></form> <form class="unstarred js-social-form BtnGroup-parent flex-auto" data-turbo="false" action="/chikitang/github-pages/star" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="VdD5gHR0SaNWuuE-4Huf1LFVNH_kIFLksg8psuv1LDDU6Ha53YRem4Yp2ZrIpb7eKSa1cf-yR9oZDpa0b5XdgA" autocomplete="off" /> <input type="hidden" name="context" value="other"> <button data-hydro-click="{"event_type":"repository.click","payload":{"target":"STAR_BUTTON","repository_id":501093064,"originating_url":"https://github.com/chikitang?tab=repositories","user_id":107093285}}" data-hydro-click-hmac="5cd067574b17d3257d89fbe1c8c675a553eb8e3ad7cea5efb3cf0e75d36f0801" data-ga-click="Repository, click star button, action:profiles/repositories#index; text:Star" aria-label="Star this repository" type="submit" data-view-component="true" class="js-toggler-target rounded-left-2 btn-sm btn BtnGroup-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star d-inline-block mr-2"> <path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> </button></form> <details id="details-user-list-501093064" data-view-component="true" class="details-reset details-overlay BtnGroup-parent js-user-list-menu d-inline-block position-relative"> <summary aria-label="Add this repository to a list" data-view-component="true" class="btn-sm btn BtnGroup-item px-2 float-none"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down"> <path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path> </svg> </summary> <details-menu class="SelectMenu right-0" src="/chikitang/github-pages/lists" role="menu" > <div class="SelectMenu-modal"> <button class="SelectMenu-closeButton position-absolute right-0 m-2" type="button" aria-label="Close menu" data-toggle-for="details-91edb5"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg> </button> <div id="filter-menu-91edb5" class="d-flex flex-column flex-1 overflow-hidden" > <div class="SelectMenu-list" > <include-fragment class="SelectMenu-loading" aria-label="Loading"> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" width="32" height="32" viewBox="0 0 16 16" fill="none" data-view-component="true" class="anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke" /> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" /> </svg> </include-fragment> </div> </div> </div> </details-menu> </details> </div> <div class="text-right hide-lg hide-md hide-sm hide-xs flex-self-end "> <poll-include-fragment src="/chikitang/github-pages/graphs/participation?h=28&type=sparkline&w=155"> </poll-include-fragment> </div> </div> </li> </ul> <div class="paginate-container"> </div> </div> </div> </div> </div> </div></div> </main> </div> <footer class="footer width-full container-xl p-responsive" role="contentinfo"> <div class="position-relative d-flex flex-items-center pb-2 f6 color-fg-muted border-top color-border-muted flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap mt-6 pt-6"> <ul class="list-style-none d-flex flex-wrap col-0 col-lg-2 flex-justify-start flex-lg-justify-between mb-2 mb-lg-0"> <li class="mt-2 mt-lg-0 d-flex flex-items-center"> <a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://github.com"> <svg aria-hidden="true" height="24" viewBox="0 0 16 16" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github"> <path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path> </svg> </a> <span> © 2022 GitHub, Inc. </span> </li> </ul> <ul class="list-style-none d-flex flex-wrap col-12 col-lg-8 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0"> <li class="mr-3 mr-lg-0"><a href="https://docs.github.com/en/github/site-policy/github-terms-of-service" data-analytics-event="{"category":"Footer","action":"go to terms","label":"text:terms"}">Terms</a></li> <li class="mr-3 mr-lg-0"><a href="https://docs.github.com/en/github/site-policy/github-privacy-statement" data-analytics-event="{"category":"Footer","action":"go to privacy","label":"text:privacy"}">Privacy</a></li> <li class="mr-3 mr-lg-0"><a data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="https://github.com/security">Security</a></li> <li class="mr-3 mr-lg-0"><a href="https://www.githubstatus.com/" data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}">Status</a></li> <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to help, text:Docs" href="https://docs.github.com">Docs</a></li> <li class="mr-3 mr-lg-0"><a href="https://support.github.com?tags=dotcom-footer" data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}">Contact GitHub</a></li> <li class="mr-3 mr-lg-0"><a href="https://github.com/pricing" data-analytics-event="{"category":"Footer","action":"go to Pricing","label":"text:Pricing"}">Pricing</a></li> <li class="mr-3 mr-lg-0"><a href="https://docs.github.com" data-analytics-event="{"category":"Footer","action":"go to api","label":"text:api"}">API</a></li> <li class="mr-3 mr-lg-0"><a href="https://services.github.com" data-analytics-event="{"category":"Footer","action":"go to training","label":"text:training"}">Training</a></li> <li class="mr-3 mr-lg-0"><a href="https://github.blog" data-analytics-event="{"category":"Footer","action":"go to blog","label":"text:blog"}">Blog</a></li> <li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li> </ul> </div> <div class="d-flex flex-justify-center pb-6"> <span class="f6 color-fg-muted"></span> </div> </footer> <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path> </svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg> </button> You can’t perform that action at this time. </div> <div class="js-stale-session-flash flash flash-warn flash-banner" hidden > <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path> </svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span> </div> <template id="site-details-dialog"> <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open> <summary role="button" aria-label="Close dialog"></summary> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> <template id="snippet-clipboard-copy-button"> <div class="zeroclipboard-container position-absolute right-0 top-0"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2"> <path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> </clipboard-copy> </div> </template> <style> .user-mention[href$="/chikitang"] { color: var(--color-user-mention-fg); background-color: var(--color-user-mention-bg); border-radius: 2px; margin-left: -2px; margin-right: -2px; padding: 0 2px; } </style> </body> </html>
NhaPhatHanh
<!DOCTYPE html> <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"> <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://github.githubassets.com"> <link rel="dns-prefetch" href="https://avatars.githubusercontent.com"> <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> <link crossorigin="anonymous" media="all" integrity="sha512-7KjiGvJiLLy6LJPGf3m67ejAdgQsgDdnxZYoaI6+Agd0ZxHKTCjoKZgaf3PgUjURCcVceAwySJJJWgitRskDiA==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-eca8e21af2622cbcba2c93c67f79baed.css" /> <link crossorigin="anonymous" media="all" integrity="sha512-ZS0ILXChK0v6MFarr5VP2Qq916nqPSByfcud8IEvgXav8xbAAafFHX22IuZOi5/ZkKbLgOmqFkezGZVyANnFrQ==" rel="stylesheet" href="https://github.githubassets.com/assets/behaviors-652d082d70a12b4bfa3056abaf954fd9.css" /> <link crossorigin="anonymous" media="all" integrity="sha512-ec37dkdwRxMnZ+C8WVJL5fX0MDw39MbZDqmjBB3JFemYXHZrq3E3F25pcbYUEmuB29eH0L5f+KOgO+FQNEFTgw==" rel="stylesheet" href="https://github.githubassets.com/assets/github-79cdfb76477047132767e0bc59524be5.css" /> <script crossorigin="anonymous" defer="defer" integrity="sha512-CzeY4A6TiG4fGZSWZU8FxmzFFmcQFoPpArF0hkH0/J/S7UL4eed/LKEXMQXfTwiG5yEJBI+9BdKG8KQJNbhcIQ==" type="application/javascript" src="https://github.githubassets.com/assets/environment-0b3798e0.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-ahOZvzpz/+SYFONmTAqBCwF04p4zvYweAHl7o69sVAwf0oxqMEyVZa//FnA859IbgU9lzj55LagjePKStkjwpw==" type="application/javascript" src="https://github.githubassets.com/assets/chunk-frameworks-6a1399bf.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-+1BN8W3XvQeL2HiktoDjb/NDm2W8tp9hDUb+NL4vabH/tvhdLZIdE9tYL3xRh6HDsc7JpvlTmu2m7CllRB+QYA==" type="application/javascript" src="https://github.githubassets.com/assets/chunk-vendor-fb504df1.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-ujoCDv+gZj/v2aljXWMjKWNPoZ/QeENSASFGNBTO7smC7I/GC8hPqneWuaD2coIvzq6i7mLCLbg/SG39CdT1qA==" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-ba3a020e.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-tjuNQcwhEIXGvVIG4XM/Aj4z+Od+NBRkbgWNwEMjGL3nsnAmdoBdbzsn/WTvl3hk+TPt1D0BvBLHLBPgiwvT2w==" type="application/javascript" data-module-id="./chunk-animate-on-scroll.js" data-src="https://github.githubassets.com/assets/chunk-animate-on-scroll-b63b8d41.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-+BKEtK9JkmJ52jKSoX6+SBrGV6kJxB8J/iAPkFQ/oeq8YekNcz7IZlJgM5Tddyx1RrkL3+sdG0tAy3YuFbYqfA==" type="application/javascript" data-module-id="./chunk-codemirror.js" data-src="https://github.githubassets.com/assets/chunk-codemirror-f81284b4.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-EKOvqJ9uTatAt87WxU+OSS4mi7gMUszFbGo4aPErQkjpWLXnrPSeZvK5ngU8OYoIoiVOq+v8dA3C6MF/z2d/kA==" type="application/javascript" data-module-id="./chunk-color-modes.js" data-src="https://github.githubassets.com/assets/chunk-color-modes-10a3afa8.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-zkYZSjUFqSifB+Lt76jclFMrfqpcPqevT801RZcoBNCZHRTBKcFrW9OyJoPOzKFv+fZVDRnqdqGsuIv5KOIgZg==" type="application/javascript" data-module-id="./chunk-contributions-spider-graph.js" data-src="https://github.githubassets.com/assets/chunk-contributions-spider-graph-ce46194a.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-6j/oSF+kbW+yetNPvI684VzAu9pzug6Vj2h+3u1LdCuRhR4jnuiHZfeQKls3nxcT/S3H+oIt7FtigE/aeoj+gg==" type="application/javascript" data-module-id="./chunk-drag-drop.js" data-src="https://github.githubassets.com/assets/chunk-drag-drop-ea3fe848.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-N+ziqJjVMfWiqeVHdayDHpNRlG5HsF+cgV+pFnMDoTJuvBzgw+ndsepe4NcKAxIS3WMvzMaQcYmd2vrIaoAJVg==" type="application/javascript" data-module-id="./chunk-edit.js" data-src="https://github.githubassets.com/assets/chunk-edit-37ece2a8.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-aiqMIGGZGo8AQMjcoImKPMTsZVVRl6htCSY7BpRmpGPG/AF+Wq+P/Oj/dthWQOIk9cCNMPEas7O2zAR6oqn0tA==" type="application/javascript" data-module-id="./chunk-emoji-picker-element.js" data-src="https://github.githubassets.com/assets/chunk-emoji-picker-element-6a2a8c20.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-G3/1Wo8nza2llJz848q++KJXUpeUuHcSDvXLcJzqQZDBLXm/PaOchsesQlyxX/3bXdasUpOE217R8Ln6vTqMHA==" type="application/javascript" data-module-id="./chunk-filter-input.js" data-src="https://github.githubassets.com/assets/chunk-filter-input-1b7ff55a.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-XwuQdORq1W9Z+a/i72pH+NfR1rhwlGdxIlaIBbTciscGc/+McxMNLixGBp8e6Td4W1zzHvQ1Jyryl5gUfEr76g==" type="application/javascript" data-module-id="./chunk-insights-graph.js" data-src="https://github.githubassets.com/assets/chunk-insights-graph-5f0b9074.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-cdGVmQXhZYV6/Qj5QsArM/LjCG6qatgnsAE6W5y9UOHI+J2NdRU7l3IPlxh1zKNwgt5FWXnvrpyEIL7pc3aihg==" type="application/javascript" data-module-id="./chunk-jump-to.js" data-src="https://github.githubassets.com/assets/chunk-jump-to-71d19599.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-supZkxo+OPYLNtLXxI+e1dkCqVySu4FOWX1fiVVFs2ZggygppNsEz4F9wVp4YtH2TjFsZW8r/75uDUhPneO2sA==" type="application/javascript" data-module-id="./chunk-notification-list-focus.js" data-src="https://github.githubassets.com/assets/chunk-notification-list-focus-b2ea5993.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-ma0OOy3nj0c1cqBx0BkcmIFsLqcSZ+MIukQxyEFM/OWTzZpG+QMgOoWPAHZz43M6fyjAUG1jH6c/6LPiiKPCyw==" type="application/javascript" data-module-id="./chunk-profile-pins-element.js" data-src="https://github.githubassets.com/assets/chunk-profile-pins-element-99ad0e3b.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-zh+tYYvd4W00us1O4PkhmKsl/CzInIyrdoMqV2xqC7XPu06UEHfEMJfOiwidJ5f80SwrdGWogWFuJzLHwRbRgA==" type="application/javascript" data-module-id="./chunk-ref-selector.js" data-src="https://github.githubassets.com/assets/chunk-ref-selector-ce1fad61.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-Zii9oRdZ6q2QDNjL5A+me7jwJjMLvs1NiQNHmajUZnn4t9shcBDb4F8l/PQZW26eYfe5065oM7lIOSmbMinA7Q==" type="application/javascript" data-module-id="./chunk-responsive-underlinenav.js" data-src="https://github.githubassets.com/assets/chunk-responsive-underlinenav-6628bda1.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-9WNXtB07IyWypiPmkuucspwog4mme9q5GKGMSgd7FI0DPimmg/pEw+aaAofFV1vuWMt9I8H5QpsVtlbHGg1YBA==" type="application/javascript" data-module-id="./chunk-runner-groups.js" data-src="https://github.githubassets.com/assets/chunk-runner-groups-f56357b4.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-fIq9Mn7jY/bHQXnsmh+VejpDnaO+d/FDxsp+4CuZtdNLrLuO+dQCjh+m6Yd8GCYD2Cy6DWbCEyM+mH2dkB2H9A==" type="application/javascript" data-module-id="./chunk-sortable-behavior.js" data-src="https://github.githubassets.com/assets/chunk-sortable-behavior-7c8abd32.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-WK8VXw3lfUQ/VRW0zlgKPhcMUqH0uTnB/KzePUPdZhCm/HpxfXXHKTGvj5C0Oex7+zbIM2ECzULbtTCT4ug3yg==" type="application/javascript" data-module-id="./chunk-toast.js" data-src="https://github.githubassets.com/assets/chunk-toast-58af155f.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-vgHJEmEJxNmHucGbVY8bEUoOYo5/ZwpQ69rU8Dld89daWJ54uad9lNptxq32F8pnbHhdngw9lohNEbMbjmj5AQ==" type="application/javascript" data-module-id="./chunk-tweetsodium.js" data-src="https://github.githubassets.com/assets/chunk-tweetsodium-be01c912.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-aSxfTHAZj9wv7n08DxgAKkNg7jhiTo4yKKbDqLGxcDxUk/al571Y2ZSsOmLJ0Vh8cuAL8tW+JgX1t0JeKfyfaA==" type="application/javascript" data-module-id="./chunk-user-status-submit.js" data-src="https://github.githubassets.com/assets/chunk-user-status-submit-692c5f4c.js"></script> <script crossorigin="anonymous" defer="defer" integrity="sha512-FTzn67VUikEWGXoKpUjZgeuNXoI9NQXyuzSfVmtG0gFTy7QZykAwRn4RSvGXc/CPyWYkdiDNlbc0vtP9jfG61w==" type="application/javascript" src="https://github.githubassets.com/assets/dashboard-153ce7eb.js"></script> <meta name="viewport" content="width=device-width"> <title>GitHub</title> <meta name="description" content="GitHub is where people build software. More than 56 million people use GitHub to discover, fork, and contribute to over 100 million projects."> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub"> <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta name="apple-itunes-app" content="app-id=1477376905" /> <meta property="og:url" content="https://github.com"> <meta property="og:site_name" content="GitHub"> <meta property="og:title" content="Build software better, together"> <meta property="og:description" content="GitHub is where people build software. More than 56 million people use GitHub to discover, fork, and contribute to over 100 million projects."> <meta property="og:image" content="https://github.githubassets.com/images/modules/open_graph/github-logo.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1200"> <meta property="og:image" content="https://github.githubassets.com/images/modules/open_graph/github-mark.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="620"> <meta property="og:image" content="https://github.githubassets.com/images/modules/open_graph/github-octocat.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="620"> <meta property="twitter:site" content="github"> <meta property="twitter:site:id" content="13334762"> <meta property="twitter:creator" content="github"> <meta property="twitter:creator:id" content="13334762"> <meta property="twitter:card" content="summary_large_image"> <meta property="twitter:title" content="GitHub"> <meta property="twitter:description" content="GitHub is where people build software. More than 56 million people use GitHub to discover, fork, and contribute to over 100 million projects."> <meta property="twitter:image:src" content="https://github.githubassets.com/images/modules/open_graph/github-logo.png"> <meta property="twitter:image:width" content="1200"> <meta property="twitter:image:height" content="1200"> <link rel="assets" href="https://github.githubassets.com/"> <link rel="shared-web-socket" href="wss://alive.github.com/_sockets/u/83227313/ws?session=eyJ2IjoiVjMiLCJ1Ijo4MzIyNzMxMywicyI6Njg3OTQzNzU5LCJjIjoxNzgwMjY2MzEwLCJ0IjoxNjE5NTk4OTc0fQ==--c3828368f62e5243e4f48fa946e4cfc901339ea447cd91fb7d9c84f1f918ba2d" data-refresh-url="/_alive" data-session-id="434d9062d48df3ef96d852e9530bffcd43b5ef7fc95d10b99f9259a01724d4ae"> <link rel="shared-web-socket-src" href="/socket-worker-3f088aa2.js"> <link rel="sudo-modal" href="/sessions/sudo_modal"> <meta name="request-id" content="869E:5293:1271A18:13DD4CF:60891E7B" data-pjax-transient="true" /><meta name="html-safe-nonce" content="8fff3e2bd7a4e7ef7b124494a7aecd900fa18b89ccc8e744b383b54609c6385b" data-pjax-transient="true" /><meta name="visitor-payload" content="eyJyZWZlcnJlciI6Imh0dHBzOi8vZ2l0aHViLmNvbS9nYW12aXA4OGNsdWIvc3VtdmlwLmNsdWIvYnJhbmNoZXMiLCJyZXF1ZXN0X2lkIjoiODY5RTo1MjkzOjEyNzFBMTg6MTNERDRDRjo2MDg5MUU3QiIsInZpc2l0b3JfaWQiOiIxMDc0Nzc4MDMzNzI0Mzk4MDMxIiwicmVnaW9uX2VkZ2UiOiJzZWEiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=" data-pjax-transient="true" /><meta name="visitor-hmac" content="e9d28d753ba777482b0c264851595223f43c098f7f8ab654c5d73430fc20f3e7" data-pjax-transient="true" /> <meta name="page-subject" content="GitHub"> <meta name="github-keyboard-shortcuts" content="dashboards" data-pjax-transient="true" /> <meta name="selected-link" value="/" data-pjax-transient> <meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY"> <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU"> <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA"> <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc"> <meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-actor-id" content="83227313" /><meta name="octolytics-actor-login" content="NhaPhatHanh" /><meta name="octolytics-actor-hash" content="9b8cad704be56bcd058f36fbc9c7a3cfe249ef30c8807472fa126f9d85300648" /> <meta name="analytics-location" content="/dashboard" data-pjax-transient="true" /> <meta name="hostname" content="github.com"> <meta name="user-login" content="NhaPhatHanh"> <meta name="expected-hostname" content="github.com"> <meta name="js-proxy-site-detection-payload" content="NGM1ZjljNzQ5NGM3ODA0NzZmNGNhMTRjODZmZDliNTNmYmJjZGI1NDJmODI3NmNiNDVkZjQyYzQ4YTk1NmNjNHx7InJlbW90ZV9hZGRyZXNzIjoiMTEzLjE3Ni42OS4xNDIiLCJyZXF1ZXN0X2lkIjoiODY5RTo1MjkzOjEyNzFBMTg6MTNERDRDRjo2MDg5MUU3QiIsInRpbWVzdGFtcCI6MTYxOTU5ODk3NCwiaG9zdCI6ImdpdGh1Yi5jb20ifQ=="> <meta name="enabled-features" content="MARKETPLACE_PENDING_INSTALLATIONS,AUTOCOMPLETE_EMOJIS_IN_MARKDOWN_EDITOR,GITHUB_TOKEN_PERMISSION,ACTIONS_CONCURRENCY_UI"> <meta http-equiv="x-pjax-version" content="48692bebf52b02afe08f94676411ebf21e58818307dcc45d253ded05ea2eb555"> <link rel="alternate" type="application/atom+xml" title="ATOM" href="/NhaPhatHanh.private.atom?token=AT27FMIJVILZOGSH5R3CXU56ST7X4" /> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <meta name="browser-optimizely-client-errors-url" content="https://api.github.com/_private/browser/optimizely_client/errors"> <link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000"> <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png"> <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg"> <meta name="theme-color" content="#1e2327"> <meta name="color-scheme" content="light dark" /> <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials"> </head> <body class="logged-in env-production page-responsive full-width" style="word-wrap: break-word;"> <div class="position-relative js-header-wrapper "> <a href="#start-of-content" class="p-3 color-bg-info-inverse color-text-white show-on-focus js-skip-to-content">Skip to content</a> <span class="progress-pjax-loader width-full js-pjax-loader-bar Progress position-fixed"> <span style="background-color: #79b8ff;width: 0%;" class="Progress-item progress-pjax-loader-bar "></span> </span> <header class="Header js-details-container Details px-3 px-md-4 px-lg-5 flex-wrap flex-md-nowrap" role="banner" > <div class="Header-item mt-n1 mb-n1 d-none d-md-flex"> <a class="Header-link " href="https://github.com/" data-hotkey="g d" aria-label="Homepage " data-ga-click="Header, go to dashboard, icon:logo"> <svg class="octicon octicon-mark-github v-align-middle" height="32" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg> </a> </div> <div class="Header-item d-md-none"> <button class="Header-link btn-link js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false"> <svg height="24" class="octicon octicon-three-bars" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"></path></svg> </button> </div> <div class="Header-item Header-item--full flex-column flex-md-row width-full flex-order-2 flex-md-order-none mr-0 mr-md-3 mt-3 mt-md-0 Details-content--hidden-not-important d-md-flex"> <div class="header-search flex-auto js-site-search position-relative flex-self-stretch flex-md-self-auto mb-3 mb-md-0 mr-0 mr-md-3 js-jump-to" role="combobox" aria-owns="jump-to-results" aria-label="Search or jump to" aria-haspopup="listbox" aria-expanded="false" > <div class="position-relative"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-unscoped-search-url="/search" action="/search" accept-charset="UTF-8" method="get"> <label class="form-control input-sm header-search-wrapper p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"> <input type="text" class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus " data-hotkey="s,/" name="q" value="" placeholder="Search or jump to…" data-unscoped-placeholder="Search or jump to…" data-scoped-placeholder="Search or jump to…" autocapitalize="off" aria-autocomplete="list" aria-controls="jump-to-results" aria-label="Search or jump to…" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" spellcheck="false" autocomplete="off" > <input type="hidden" value="ZEYYtxq4/KKxJUDZsVrWLnrgLICx4DuMq0fmn3loykZHloZgOOlXukgdMLSgVgWdeBUU/LvldTl4X8jTtfzA8Q==" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf" /> <input type="hidden" class="js-site-search-type-field" name="type" > <img src="https://github.githubassets.com/images/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash"> <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container"> <ul class="d-none js-jump-to-suggestions-template-container"> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="suggestion"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg> <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub"> Search </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> </ul> <ul class="d-none js-jump-to-no-results-template-container"> <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2"> <span class="color-text-secondary">No suggested jump to results</span> </li> </ul> <ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container"> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="scoped_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg> <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub"> Search </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-owner-scoped-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="owner_scoped_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg> <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub"> Search </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="global_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg> <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub"> Search </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> <li class="d-flex flex-justify-center flex-items-center p-0 f5 js-jump-to-suggestion"> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" viewBox="0 0 16 16" fill="none" width="32" height="32" class="m-3 anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke" /> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" /> </svg> </li> </ul> </div> </label> </form> </div> </div> <nav class="d-flex flex-column flex-md-row flex-self-stretch flex-md-self-auto" aria-label="Global"> <a class="Header-link py-md-3 d-block d-md-none py-2 border-top border-md-top-0 border-white-fade-15" data-ga-click="Header, click, Nav menu - item:dashboard:user" aria-label="Dashboard" href="/dashboard"> Dashboard </a> <a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade-15" data-hotkey="g p" data-ga-click="Header, click, Nav menu - item:pulls context:user" aria-label="Pull requests you created" data-selected-links="/pulls /pulls/assigned /pulls/mentioned /pulls" href="/pulls"> Pull<span class="d-inline d-md-none d-lg-inline"> request</span>s </a> <a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade-15" data-hotkey="g i" data-ga-click="Header, click, Nav menu - item:issues context:user" aria-label="Issues you created" data-selected-links="/issues /issues/assigned /issues/mentioned /issues" href="/issues"> Issues </a> <div class="d-flex position-relative"> <a class="js-selected-navigation-item Header-link flex-auto mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade-15" data-ga-click="Header, click, Nav menu - item:marketplace context:user" data-octo-click="marketplace_click" data-octo-dimensions="location:nav_bar" data-selected-links=" /marketplace" href="/marketplace"> Marketplace </a> </div> <a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade-15" data-ga-click="Header, click, Nav menu - item:explore" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore" href="/explore"> Explore </a> <a class="js-selected-navigation-item Header-link d-block d-md-none py-2 py-md-3 border-top border-md-top-0 border-white-fade-15" data-ga-click="Header, click, Nav menu - item:workspaces context:user" data-selected-links="/codespaces /codespaces" href="/codespaces"> Codespaces </a> <a class="js-selected-navigation-item Header-link d-block d-md-none py-2 py-md-3 border-top border-md-top-0 border-white-fade-15" data-ga-click="Header, click, Nav menu - item:Sponsors" data-hydro-click="{"event_type":"sponsors.button_click","payload":{"button":"HEADER_SPONSORS_DASHBOARD","sponsorable_login":"NhaPhatHanh","originating_url":"https://github.com/","user_id":83227313}}" data-hydro-click-hmac="e59a001759ac502766a9a79710990f560ffbc26ec341d36fba1e1674a4ab880a" data-selected-links=" /sponsors/accounts" href="/sponsors/accounts">Sponsors</a> <a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade-15" href="/settings/profile"> Settings </a> <a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade-15" href="/NhaPhatHanh"> <img class="avatar avatar-user" src="https://avatars.githubusercontent.com/u/83227313?s=40&v=4" width="20" height="20" alt="@NhaPhatHanh" /> NhaPhatHanh </a> <!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/logout" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="/bvHCE5uPa671HZX0lHcfO5NQCGW65I5RiPW/FN+4TZY3UGvvrD3Ul2OVB9nrTCoXNAaoY0jT2eK9JRWIQ8zng==" /> <button type="submit" class="Header-link mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade-15 d-md-none btn-link d-block width-full text-left" data-ga-click="Header, sign out, icon:logout" style="padding-left: 2px;"> <svg class="octicon octicon-sign-out v-align-middle" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 2.75C2 1.784 2.784 1 3.75 1h2.5a.75.75 0 010 1.5h-2.5a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h2.5a.75.75 0 010 1.5h-2.5A1.75 1.75 0 012 13.25V2.75zm10.44 4.5H6.75a.75.75 0 000 1.5h5.69l-1.97 1.97a.75.75 0 101.06 1.06l3.25-3.25a.75.75 0 000-1.06l-3.25-3.25a.75.75 0 10-1.06 1.06l1.97 1.97z"></path></svg> Sign out </button> </form></nav> </div> <div class="Header-item Header-item--full flex-justify-center d-md-none position-relative"> <a class="Header-link " href="https://github.com/" data-hotkey="g d" aria-label="Homepage " data-ga-click="Header, go to dashboard, icon:logo"> <svg class="octicon octicon-mark-github v-align-middle" height="32" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg> </a> </div> <div class="Header-item mr-0 mr-md-3 flex-order-1 flex-md-order-none"> <notification-indicator class="js-socket-channel" data-test-selector="notifications-indicator" data-channel="eyJjIjoibm90aWZpY2F0aW9uLWNoYW5nZWQ6ODMyMjczMTMiLCJ0IjoxNjE5NTk4OTc0fQ==--730e096ffe8d6c47126ebde7dcc46b346629b78d85c402370d95a91d6b54e5f8"> <a href="/notifications" class="Header-link notification-indicator position-relative tooltipped tooltipped-sw" aria-label="You have no unread notifications" data-hotkey="g n" data-ga-click="Header, go to notifications, icon:read" data-target="notification-indicator.link"> <span class="mail-status " data-target="notification-indicator.modifier"></span> <svg class="octicon octicon-bell" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path></svg> </a> </notification-indicator> </div> <div class="Header-item position-relative d-none d-md-flex"> <details class="details-overlay details-reset js-header-promo-toggle"> <summary class="Header-link" aria-label="Create new…" data-ga-click="Header, create new, icon:add"> <svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg> <span class="dropdown-caret"></span> </summary> <details-menu class="dropdown-menu dropdown-menu-sw"> <a role="menuitem" class="dropdown-item" href="/new" data-ga-click="Header, create new repository"> New repository </a> <a role="menuitem" class="dropdown-item" href="/new/import" data-ga-click="Header, import a repository"> Import repository </a> <a role="menuitem" class="dropdown-item" href="https://gist.github.com/" data-ga-click="Header, create new gist"> New gist </a> <a role="menuitem" class="dropdown-item" href="/organizations/new" data-ga-click="Header, create new organization"> New organization </a> <a role="menuitem" class="dropdown-item" href="/new/project" data-ga-click="Header, create new project"> New project </a> </details-menu> </details> </div> <div class="Header-item position-relative mr-0 d-none d-md-flex"> <details class="details-overlay details-reset js-header-promo-toggle js-feature-preview-indicator-container" data-feature-preview-indicator-src="/users/NhaPhatHanh/feature_preview/indicator_check"> <summary class="Header-link" aria-label="View profile and more" data-ga-click="Header, show menu, icon:avatar"> <img src="https://avatars.githubusercontent.com/u/83227313?s=60&v=4" alt="@NhaPhatHanh" size="20" height="20" width="20" class="avatar-user avatar avatar-small "></img> <span class="feature-preview-indicator js-feature-preview-indicator" style="top: 1px;" hidden></span> <span class="dropdown-caret"></span> </summary> <details-menu class="dropdown-menu dropdown-menu-sw" style="width: 180px" src="/users/83227313/menu" preload> <include-fragment> <p class="text-center mt-3" data-hide-on-error> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" viewBox="0 0 16 16" fill="none" width="32" height="32" class="anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke" /> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" /> </svg> </p> <p class="ml-1 mb-2 mt-2 color-text-primary" data-show-on-error> <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg> Sorry, something went wrong. </p> </include-fragment> </details-menu> </details> </div> </header> </div> <div id="start-of-content" class="show-on-focus"></div> <div data-pjax-replace id="js-flash-container"> <template class="js-flash-template"> <div class="flash flash-full {{ className }}"> <div class="container-lg px-2" > <button class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg> </button> <div>{{ message }}</div> </div> </div> </template> </div> <include-fragment class="js-notification-shelf-include-fragment" data-base-src="https://github.com/notifications/beta/shelf"></include-fragment> <div class="application-main " data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled > <aside class="hide-xl hide-lg width-full color-bg-primary border-bottom py-3 p-responsive" aria-label="Account context"> <details class="details-reset details-overlay d-inline-block" id="details-59141b"> <summary class="no-underline btn-link color-text-primary text-bold width-full" title="Switch account context" data-ga-click="Dashboard, click, Opened account context switcher - context:user"> <img src="https://avatars.githubusercontent.com/u/83227313?s=60&v=4" alt="@NhaPhatHanh" size="20" height="20" width="20" class="avatar-user avatar avatar-small "></img> <span class="css-truncate css-truncate-target ml-1">NhaPhatHanh</span> <span class="dropdown-caret"></span> </summary> <details-menu class="SelectMenu" role="menu" aria-label="Switch dashboard context" > <div class="SelectMenu-modal"> <header class="SelectMenu-header"> <div class="SelectMenu-title">Switch dashboard context</div> <button class="SelectMenu-closeButton" type="button" aria-label="Close menu" data-toggle-for="details-59141b"> <svg class="octicon octicon-x" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg> </button> </header> <div id="filter-menu-59141b" class="d-flex flex-column flex-1 overflow-hidden" > <div class="SelectMenu-list" > <a class="SelectMenu-item" href="/" role="menuitemradio" aria-checked="true" data-ga-click="Dashboard, switch context, Switch dashboard context from:user to:user"> <svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg> <img class="avatar avatar-small mr-2 avatar-user" src="https://avatars.githubusercontent.com/u/83227313?s=40&v=4" width="20" height="20" alt="@NhaPhatHanh" /> <span class="flex-1 css-truncate css-truncate-overflow">NhaPhatHanh</span> </a> <a class="SelectMenu-item" href="/orgs/gamvip88club/dashboard" role="menuitemradio" aria-checked="false" data-ga-click="Dashboard, switch context, Switch dashboard context from:user to:organization"> <svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg> <img class="avatar avatar-small mr-2" src="https://avatars.githubusercontent.com/u/83322843?s=40&v=4" width="20" height="20" alt="@gamvip88club" /> <span class="flex-1 css-truncate css-truncate-overflow">gamvip88club</span> </a> </div> <div class="border-top color-border-secondary position-relative"> <a class="SelectMenu-item" href="/account/organizations" role="menuitem" data-ga-click="Dashboard, click, Manage orgs link in context switcher - context:user"> <svg class="octicon octicon-organization SelectMenu-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 14.25c0 .138.112.25.25.25H4v-1.25a.75.75 0 01.75-.75h2.5a.75.75 0 01.75.75v1.25h2.25a.25.25 0 00.25-.25V1.75a.25.25 0 00-.25-.25h-8.5a.25.25 0 00-.25.25v12.5zM1.75 16A1.75 1.75 0 010 14.25V1.75C0 .784.784 0 1.75 0h8.5C11.216 0 12 .784 12 1.75v12.5c0 .085-.006.168-.018.25h2.268a.25.25 0 00.25-.25V8.285a.25.25 0 00-.111-.208l-1.055-.703a.75.75 0 11.832-1.248l1.055.703c.487.325.779.871.779 1.456v5.965A1.75 1.75 0 0114.25 16h-3.5a.75.75 0 01-.197-.026c-.099.017-.2.026-.303.026h-3a.75.75 0 01-.75-.75V14h-1v1.25a.75.75 0 01-.75.75h-3zM3 3.75A.75.75 0 013.75 3h.5a.75.75 0 010 1.5h-.5A.75.75 0 013 3.75zM3.75 6a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM3 9.75A.75.75 0 013.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 013 9.75zM7.75 9a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM7 6.75A.75.75 0 017.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 017 6.75zM7.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5z"></path></svg> Manage organizations </a> <a class="SelectMenu-item" href="/account/organizations/new" role="menuitem" data-ga-click="Dashboard, click, Create org link in context switcher - context:user"> <svg class="octicon octicon-plus SelectMenu-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg> Create organization </a> </div> </div> </div> </details-menu> </details> </aside> <div class="d-flex flex-wrap color-bg-canvas-inset" style="min-height: 100vh;"> <aside class="team-left-column col-12 col-md-4 col-lg-3 color-bg-primary border-right color-border-secondary border-bottom hide-md hide-sm" aria-label="Account"> <div class="dashboard-sidebar js-sticky top-0 px-3 px-md-4 px-lg-5 overflow-auto"> <div class="border-bottom color-border-secondary py-3 mt-3 mb-4"> <details class="details-reset details-overlay d-inline-block" id="details-e5dc02"> <summary class="no-underline btn-link color-text-primary text-bold width-full" title="Switch account context" data-ga-click="Dashboard, click, Opened account context switcher - context:user"> <img src="https://avatars.githubusercontent.com/u/83227313?s=60&v=4" alt="@NhaPhatHanh" size="20" height="20" width="20" class="avatar-user avatar avatar-small "></img> <span class="css-truncate css-truncate-target ml-1">NhaPhatHanh</span> <span class="dropdown-caret"></span> </summary> <details-menu class="SelectMenu" role="menu" aria-label="Switch dashboard context" > <div class="SelectMenu-modal"> <header class="SelectMenu-header"> <div class="SelectMenu-title">Switch dashboard context</div> <button class="SelectMenu-closeButton" type="button" aria-label="Close menu" data-toggle-for="details-e5dc02"> <svg class="octicon octicon-x" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg> </button> </header> <div id="filter-menu-e5dc02" class="d-flex flex-column flex-1 overflow-hidden" > <div class="SelectMenu-list" > <a class="SelectMenu-item" href="/" role="menuitemradio" aria-checked="true" data-ga-click="Dashboard, switch context, Switch dashboard context from:user to:user"> <svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg> <img class="avatar avatar-small mr-2 avatar-user" src="https://avatars.githubusercontent.com/u/83227313?s=40&v=4" width="20" height="20" alt="@NhaPhatHanh" /> <span class="flex-1 css-truncate css-truncate-overflow">NhaPhatHanh</span> </a> <a class="SelectMenu-item" href="/orgs/gamvip88club/dashboard" role="menuitemradio" aria-checked="false" data-ga-click="Dashboard, switch context, Switch dashboard context from:user to:organization"> <svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg> <img class="avatar avatar-small mr-2" src="https://avatars.githubusercontent.com/u/83322843?s=40&v=4" width="20" height="20" alt="@gamvip88club" /> <span class="flex-1 css-truncate css-truncate-overflow">gamvip88club</span> </a> </div> <div class="border-top color-border-secondary position-relative"> <a class="SelectMenu-item" href="/account/organizations" role="menuitem" data-ga-click="Dashboard, click, Manage orgs link in context switcher - context:user"> <svg class="octicon octicon-organization SelectMenu-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 14.25c0 .138.112.25.25.25H4v-1.25a.75.75 0 01.75-.75h2.5a.75.75 0 01.75.75v1.25h2.25a.25.25 0 00.25-.25V1.75a.25.25 0 00-.25-.25h-8.5a.25.25 0 00-.25.25v12.5zM1.75 16A1.75 1.75 0 010 14.25V1.75C0 .784.784 0 1.75 0h8.5C11.216 0 12 .784 12 1.75v12.5c0 .085-.006.168-.018.25h2.268a.25.25 0 00.25-.25V8.285a.25.25 0 00-.111-.208l-1.055-.703a.75.75 0 11.832-1.248l1.055.703c.487.325.779.871.779 1.456v5.965A1.75 1.75 0 0114.25 16h-3.5a.75.75 0 01-.197-.026c-.099.017-.2.026-.303.026h-3a.75.75 0 01-.75-.75V14h-1v1.25a.75.75 0 01-.75.75h-3zM3 3.75A.75.75 0 013.75 3h.5a.75.75 0 010 1.5h-.5A.75.75 0 013 3.75zM3.75 6a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM3 9.75A.75.75 0 013.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 013 9.75zM7.75 9a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM7 6.75A.75.75 0 017.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 017 6.75zM7.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5z"></path></svg> Manage organizations </a> <a class="SelectMenu-item" href="/account/organizations/new" role="menuitem" data-ga-click="Dashboard, click, Create org link in context switcher - context:user"> <svg class="octicon octicon-plus SelectMenu-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg> Create organization </a> </div> </div> </div> </details-menu> </details> </div> <div class="mb-3 Details js-repos-container " data-repository-hovercards-enabled id="dashboard-repos-container" data-pjax-container role="navigation" aria-label="Repositories"> <div class="js-repos-container" id="repos-container" data-pjax-container> <h2 class="f4 hide-sm hide-md mb-1 f5 d-flex flex-justify-between flex-items-center"> Repositories <a class="btn btn-sm btn-primary color-text-white" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"NEW_REPOSITORY_BUTTON","dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="269f96c8b7925798dca252ba25ee3a5820270ba3fdf7d20d20e789a0179be9aa" data-ga-click="Dashboard, click, Sidebar header new repo button - context:user" href="/new"> <svg class="octicon octicon-repo" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> New </a> </h2> <div class="mt-2 mb-3" role="search" aria-label="Repositories"> <input type="text" class="form-control input-contrast input-block mb-3 js-filterable-field js-your-repositories-search" id="dashboard-repos-filter-left" placeholder="Find a repository…" aria-label="Find a repository…" data-url="/" data-query-name="q" value="" autocomplete="off"> </div> <ul class="list-style-none" data-filterable-for="dashboard-repos-filter-left" data-filterable-type="substring"> <li class="private source "> <div class="width-full text-bold"> <a href="/NhaPhatHanh/sumvip" class="d-inline-flex flex-items-baseline flex-wrap f5 mb-2 dashboard-underlined-link width-fit" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"REPOSITORY","record_id":361792290,"dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="3d884f457d0af2613e33ebf290824eeee38a2e5ae64f76821d5f549c3bf1d827" data-ga-click="Dashboard, click, Repo list item click - context:user visibility:private fork:false" data-hovercard-type="repository" data-hovercard-url="/NhaPhatHanh/sumvip/hovercard"> <div class="color-text-tertiary mr-2"> <svg class="octicon octicon-lock repo-private-icon flex-shrink-0" aria-label="Repository" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M4 4v2h-.25A1.75 1.75 0 002 7.75v5.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-5.5A1.75 1.75 0 0012.25 6H12V4a4 4 0 10-8 0zm6.5 2V4a2.5 2.5 0 00-5 0v2h5zM12 7.5h.25a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-5.5a.25.25 0 01.25-.25H12z"></path></svg> </div> <span class="flex-shrink-0 css-truncate css-truncate-target" title="NhaPhatHanh">NhaPhatHanh</span>/<span class="css-truncate css-truncate-target" style="max-width: 260px" title="sumvip">sumvip</span> </a> </div> </li> <li class="public source no-description"> <div class="width-full text-bold"> <a href="/NhaPhatHanh/sumvip.club" class="d-inline-flex flex-items-baseline flex-wrap f5 mb-2 dashboard-underlined-link width-fit" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"REPOSITORY","record_id":361782773,"dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="849667ca9bc191f13352a27f1a9589b81b3f666f2de9d5d2abffb7f540b04524" data-ga-click="Dashboard, click, Repo list item click - context:user visibility:public fork:false" data-hovercard-type="repository" data-hovercard-url="/NhaPhatHanh/sumvip.club/hovercard"> <div class="color-text-tertiary mr-2"> <svg aria-label="Repository" class="octicon octicon-repo flex-shrink-0" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> </div> <span class="flex-shrink-0 css-truncate css-truncate-target" title="NhaPhatHanh">NhaPhatHanh</span>/<span class="css-truncate css-truncate-target" style="max-width: 260px" title="sumvip.club">sumvip.club</span> </a> </div> </li> <li class="public source "> <div class="width-full text-bold"> <a href="/NhaPhatHanh/88vin.link" class="d-inline-flex flex-items-baseline flex-wrap f5 mb-2 dashboard-underlined-link width-fit" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"REPOSITORY","record_id":361774252,"dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="0c2927cd368417c1f71936d5894d97c11ad6ad6ba13aad8bb18cb0ae786df73f" data-ga-click="Dashboard, click, Repo list item click - context:user visibility:public fork:false" data-hovercard-type="repository" data-hovercard-url="/NhaPhatHanh/88vin.link/hovercard"> <div class="color-text-tertiary mr-2"> <svg aria-label="Repository" class="octicon octicon-repo flex-shrink-0" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> </div> <span class="flex-shrink-0 css-truncate css-truncate-target" title="NhaPhatHanh">NhaPhatHanh</span>/<span class="css-truncate css-truncate-target" style="max-width: 260px" title="88vin.link">88vin.link</span> </a> </div> </li> <li class="public source no-description"> <div class="width-full text-bold"> <a href="/NhaPhatHanh/github-docs" class="d-inline-flex flex-items-baseline flex-wrap f5 mb-2 dashboard-underlined-link width-fit" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"REPOSITORY","record_id":362337089,"dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="0aa510bbf6362778733e1189b98877ea5eaed33d40c226753ae619d7d44a1f0b" data-ga-click="Dashboard, click, Repo list item click - context:user visibility:public fork:false" data-hovercard-type="repository" data-hovercard-url="/NhaPhatHanh/github-docs/hovercard"> <div class="color-text-tertiary mr-2"> <svg aria-label="Repository" class="octicon octicon-repo flex-shrink-0" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> </div> <span class="flex-shrink-0 css-truncate css-truncate-target" title="NhaPhatHanh">NhaPhatHanh</span>/<span class="css-truncate css-truncate-target" style="max-width: 260px" title="github-docs">github-docs</span> </a> </div> </li> <li class="public source "> <div class="width-full text-bold"> <a href="/NhaPhatHanh/NhaPhatHanh" class="d-inline-flex flex-items-baseline flex-wrap f5 mb-2 dashboard-underlined-link width-fit" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"REPOSITORY","record_id":362176831,"dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="faf207959d3f49dc5283bee49d28f8b67362a5a4d7f6de8f592c4797b96b04d9" data-ga-click="Dashboard, click, Repo list item click - context:user visibility:public fork:false" data-hovercard-type="repository" data-hovercard-url="/NhaPhatHanh/NhaPhatHanh/hovercard"> <div class="color-text-tertiary mr-2"> <svg aria-label="Repository" class="octicon octicon-repo flex-shrink-0" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> </div> <span class="flex-shrink-0 css-truncate css-truncate-target" title="NhaPhatHanh">NhaPhatHanh</span>/<span class="css-truncate css-truncate-target" style="max-width: 260px" title="NhaPhatHanh">NhaPhatHanh</span> </a> </div> </li> </ul> </div> </div> <div class="js-repos-container user-repos mb-3" id="dashboard-user-teams" data-pjax-container> <div class="Details js-repos-container" data-team-hovercards-enabled> <h2 class="hide-sm hide-md f5 mb-1 border-top color-border-secondary pt-3">Your teams</h2> <p class="notice"> You don’t belong to any teams yet! </p> </div> </div> </div> </aside> <div class="col-12 col-md-8 col-lg-6 mt-3 px-3 px-lg-5 border-bottom d-flex flex-auto"> <div class="mx-auto d-flex flex-auto flex-column" style="max-width: 1400px"> <main class="flex-auto"> <div class="border rounded-1 shelf intro-shelf js-notice"> <div class="width-full container"> <div class="width-full mx-auto p-5 shelf-content"> <h2 class="shelf-title">Learn Git and GitHub without any code!</h2> <p class="shelf-lead"> Using the Hello World guide, you’ll create a repository, start a branch, write comments, and open a pull request. </p> <a class="btn btn-primary shelf-cta mx-2 mb-3" target="_blank" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"NEW_USER_BANNER","dashboard_context":"user","dashboard_version":2,"target":"READ_GUIDE","user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="065b53dff8bb900c054c67deccb1d8e25644d77c04a9235dfb06aae8f0845b35" data-ga-click="Hello World, click, Clicked Let's get started button" href="https://guides.github.com/activities/hello-world/">Read the guide</a> <a class="btn shelf-cta mx-2 mb-3" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"NEW_USER_BANNER","dashboard_context":"user","dashboard_version":2,"target":"START_PROJECT","user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="e462943bb31bd3003c3636fdf2bd5d45ab45893d5d6e0e806ec4407a59fe0134" data-ga-click="Hello World, click, Clicked new repository button - context:user" href="/new">Start a project</a> </div> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="shelf-dismiss js-notice-dismiss" action="/dashboard/dismiss_bootcamp" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="6CEBLJmBkvqLVwFWOHZm+HjVZVyJJeRKsnJpyHd3MuLzYZKDs9LaEeGErnWlxSpK46d2HozAfEX09hbhXIBjOg==" /> <button name="button" type="submit" class="mr-1 close-button tooltipped tooltipped-w" aria-label="Hide this notice forever" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"NEW_USER_BANNER","dashboard_context":"user","dashboard_version":2,"target":"DISMISS_BANNER","user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="02ff51f0c07535492d3dc33173db83c1ec1293c047f42e1f920c5285055a6db3" data-ga-click="Hello World, click, Dismissed Hello World" data-ga-load="Hello World, linkview, Viewed Hello World"> <svg aria-label="Hide this notice forever" class="octicon octicon-x v-align-text-top" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg> </button></form> </div> </div> <div data-issue-and-pr-hovercards-enabled> <div id="dashboard" class="dashboard"> <h1 class="sr-only">Dashboard</h1> <div class="news"> <div class="js-dashboard-deferred" data-src="/dashboard/recent-activity" data-priority="1" > <div class="Box text-center p-3 mb-4 d-none js-loader"> <div class="loading-message"> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" viewBox="0 0 16 16" fill="none" width="32" height="32" class="anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke" /> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" /> </svg> <p class="color-text-secondary my-2 mb-0">Loading recent activity...</p> </div> </div> </div> <div class="d-block d-md-none"> <div class="mt-2 mb-4 Details js-repos-container" id="dashboard-repositories-box" data-pjax-container role="navigation"> <h2 class="f4 mb-1 text-normal d-flex flex-justify-between flex-items-center">Repositories</h2> <div class="Box px-2 py-1"> <div class="js-repos-container" id="repos-container" data-pjax-container> <h2 class="f4 hide-sm hide-md mb-1 f5 d-flex flex-justify-between flex-items-center"> Repositories <a class="btn btn-sm btn-primary color-text-white" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"NEW_REPOSITORY_BUTTON","dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="269f96c8b7925798dca252ba25ee3a5820270ba3fdf7d20d20e789a0179be9aa" data-ga-click="Dashboard, click, Sidebar header new repo button - context:user" href="/new"> <svg class="octicon octicon-repo" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> New </a> </h2> <div class="mt-2 mb-3" role="search" aria-label="Repositories"> <input type="text" class="form-control input-contrast input-block mb-3 js-filterable-field js-your-repositories-search" id="dashboard-repos-filter-center" placeholder="Find a repository…" aria-label="Find a repository…" data-url="/" data-query-name="q" value="" autocomplete="off"> </div> <ul class="list-style-none" data-filterable-for="dashboard-repos-filter-center" data-filterable-type="substring"> <li class="private source "> <div class="width-full text-bold"> <a href="/NhaPhatHanh/sumvip" class="d-inline-flex flex-items-baseline flex-wrap f5 mb-2 dashboard-underlined-link width-fit" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"REPOSITORY","record_id":361792290,"dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="3d884f457d0af2613e33ebf290824eeee38a2e5ae64f76821d5f549c3bf1d827" data-ga-click="Dashboard, click, Repo list item click - context:user visibility:private fork:false" data-hovercard-type="repository" data-hovercard-url="/NhaPhatHanh/sumvip/hovercard"> <div class="color-text-tertiary mr-2"> <svg class="octicon octicon-lock repo-private-icon flex-shrink-0" aria-label="Repository" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M4 4v2h-.25A1.75 1.75 0 002 7.75v5.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-5.5A1.75 1.75 0 0012.25 6H12V4a4 4 0 10-8 0zm6.5 2V4a2.5 2.5 0 00-5 0v2h5zM12 7.5h.25a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-5.5a.25.25 0 01.25-.25H12z"></path></svg> </div> <span class="flex-shrink-0 css-truncate css-truncate-target" title="NhaPhatHanh">NhaPhatHanh</span>/<span class="css-truncate css-truncate-target" style="max-width: 260px" title="sumvip">sumvip</span> </a> </div> </li> <li class="public source no-description"> <div class="width-full text-bold"> <a href="/NhaPhatHanh/sumvip.club" class="d-inline-flex flex-items-baseline flex-wrap f5 mb-2 dashboard-underlined-link width-fit" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"REPOSITORY","record_id":361782773,"dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="849667ca9bc191f13352a27f1a9589b81b3f666f2de9d5d2abffb7f540b04524" data-ga-click="Dashboard, click, Repo list item click - context:user visibility:public fork:false" data-hovercard-type="repository" data-hovercard-url="/NhaPhatHanh/sumvip.club/hovercard"> <div class="color-text-tertiary mr-2"> <svg aria-label="Repository" class="octicon octicon-repo flex-shrink-0" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> </div> <span class="flex-shrink-0 css-truncate css-truncate-target" title="NhaPhatHanh">NhaPhatHanh</span>/<span class="css-truncate css-truncate-target" style="max-width: 260px" title="sumvip.club">sumvip.club</span> </a> </div> </li> <li class="public source "> <div class="width-full text-bold"> <a href="/NhaPhatHanh/88vin.link" class="d-inline-flex flex-items-baseline flex-wrap f5 mb-2 dashboard-underlined-link width-fit" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"REPOSITORY","record_id":361774252,"dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="0c2927cd368417c1f71936d5894d97c11ad6ad6ba13aad8bb18cb0ae786df73f" data-ga-click="Dashboard, click, Repo list item click - context:user visibility:public fork:false" data-hovercard-type="repository" data-hovercard-url="/NhaPhatHanh/88vin.link/hovercard"> <div class="color-text-tertiary mr-2"> <svg aria-label="Repository" class="octicon octicon-repo flex-shrink-0" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> </div> <span class="flex-shrink-0 css-truncate css-truncate-target" title="NhaPhatHanh">NhaPhatHanh</span>/<span class="css-truncate css-truncate-target" style="max-width: 260px" title="88vin.link">88vin.link</span> </a> </div> </li> <li class="public source no-description"> <div class="width-full text-bold"> <a href="/NhaPhatHanh/github-docs" class="d-inline-flex flex-items-baseline flex-wrap f5 mb-2 dashboard-underlined-link width-fit" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"REPOSITORY","record_id":362337089,"dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="0aa510bbf6362778733e1189b98877ea5eaed33d40c226753ae619d7d44a1f0b" data-ga-click="Dashboard, click, Repo list item click - context:user visibility:public fork:false" data-hovercard-type="repository" data-hovercard-url="/NhaPhatHanh/github-docs/hovercard"> <div class="color-text-tertiary mr-2"> <svg aria-label="Repository" class="octicon octicon-repo flex-shrink-0" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> </div> <span class="flex-shrink-0 css-truncate css-truncate-target" title="NhaPhatHanh">NhaPhatHanh</span>/<span class="css-truncate css-truncate-target" style="max-width: 260px" title="github-docs">github-docs</span> </a> </div> </li> <li class="public source "> <div class="width-full text-bold"> <a href="/NhaPhatHanh/NhaPhatHanh" class="d-inline-flex flex-items-baseline flex-wrap f5 mb-2 dashboard-underlined-link width-fit" data-hydro-click="{"event_type":"dashboard.click","payload":{"event_context":"REPOSITORIES","target":"REPOSITORY","record_id":362176831,"dashboard_context":"user","dashboard_version":2,"user_id":83227313,"originating_url":"https://github.com/"}}" data-hydro-click-hmac="faf207959d3f49dc5283bee49d28f8b67362a5a4d7f6de8f592c4797b96b04d9" data-ga-click="Dashboard, click, Repo list item click - context:user visibility:public fork:false" data-hovercard-type="repository" data-hovercard-url="/NhaPhatHanh/NhaPhatHanh/hovercard"> <div class="color-text-tertiary mr-2"> <svg aria-label="Repository" class="octicon octicon-repo flex-shrink-0" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> </div> <span class="flex-shrink-0 css-truncate css-truncate-target" title="NhaPhatHanh">NhaPhatHanh</span>/<span class="css-truncate css-truncate-target" style="max-width: 260px" title="NhaPhatHanh">NhaPhatHanh</span> </a> </div> </li> </ul> </div> </div> </div> <div class="mb-4 js-repos-container user-repos" id="dashboard-user-teams-repos" data-pjax-container> <h2 class="f4 text-normal mb-1">Your teams</h2> <div class="Box px-2 py-1"> <div class="Details js-repos-container" data-team-hovercards-enabled> <h2 class="hide-sm hide-md f5 mb-1 border-top color-border-secondary pt-3">Your teams</h2> <p class="notice"> You don’t belong to any teams yet! </p> </div> </div> </div> </div> <h2 class="f4 text-normal d-none js-all-activity-header">All activity</h2> <div class="js-dashboard-deferred" data-src="/dashboard-feed" data-priority="0"> <div class="Box text-center p-3 mb-4 mt-2 js-loader"> <div class="loading-message"> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" viewBox="0 0 16 16" fill="none" width="32" height="32" class="anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke" /> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" /> </svg> <p class="color-text-secondary my-2 mb-0">Loading activity...</p> </div> <div class="error-message"> <p class="color-text-secondary my-2 mb-2">There was an error in loading the activity feed. <a href="/" aria-label="Reload this page">Reload this page</a>.</p> </div> </div> </div> <div class="f6 color-text-secondary mt-4"> <svg class="octicon octicon-light-bulb color-text-secondary" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.695 8.695 0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.75.75 0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75zM6 15.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5h-2.5a.75.75 0 01-.75-.75zM5.75 12a.75.75 0 000 1.5h4.5a.75.75 0 000-1.5h-4.5z"></path></svg> <strong>ProTip!</strong> The feed shows you events from people you <a href="/NhaPhatHanh?tab=following">follow</a> and repositories you <a href="/watching">watch</a>. <br> <a class="f6 Link--secondary mb-2 mt-2 d-inline-block" href="/NhaPhatHanh.private.atom?token=AT27FMIJVILZOGSH5R3CXU56ST7X4" data-ga-click="Dashboard, click, News feed atom/RSSlink- context:user"><svg class="octicon octicon-rss mr-1" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.002 2.725a.75.75 0 01.797-.699C8.79 2.42 13.58 7.21 13.974 13.201a.75.75 0 11-1.497.098 10.502 10.502 0 00-9.776-9.776.75.75 0 01-.7-.798zM2 13a1 1 0 112 0 1 1 0 01-2 0zm.84-5.95a.75.75 0 00-.179 1.489c2.509.3 4.5 2.291 4.8 4.8a.75.75 0 101.49-.178A7.003 7.003 0 002.838 7.05z"></path></svg>Subscribe to your news feed</a> </div> </div> </div> </div> </main> <div class="d-flex flex-items-between footer container-lg my-5 px-0" role="contentinfo"> <div class="col-lg-4 list-style-none mr-lg-5"> <a title="Home page" class="d-none d-lg-flex footer-octicon footer-octicon no-underline" href="https://github.com"> <div> <svg height="24" class="octicon octicon-mark-github d-block mr-2 float-left" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg> </div> <div> <span class="f6 color-text-tertiary"> © 2021 GitHub, Inc. </span> </div> </a> </div> <div class="d-flex flex-justify-start flex-row flex-auto"> <ul class="col-4 col-sm-4 col-lg-4 col-xl-3 list-style-none f6 color-text-secondary pl-lg-4"> <li class="mb-1"><a class="Link--secondary" href="https://github.blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li> <li class="mb-1"><a class="Link--secondary" data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li> <li class="mb-1"><a class="Link--secondary" href="https://shop.github.com" data-ga-click="Footer, go to shop, text:shop">Shop</a></li> <li class="mb-1"><a href="https://support.github.com" data-ga-click="Footer, go to contact, text:contact" class="Link--secondary">Contact GitHub</a></li> <li class="mb-1"><a href="/pricing" data-ga-click="Footer, go to Pricing, text:Pricing" class="Link--secondary">Pricing</a></li> </ul> <ul class="col-4 col-sm-4 col-lg-4 col-xl-3 list-style-none f6 color-text-secondary pl-lg-4"> <li class="mb-1"><a class="Link--secondary" href="https://docs.github.com" data-ga-click="Footer, go to api, text:api">API</a></li> <li class="mb-1"><a class="Link--secondary" href="https://services.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li> <li class="mb-1"> <a class="Link--secondary" href="https://www.githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a> </li> <li class="mb-1"> <a class="Link--secondary" href="https://docs.github.com/articles/github-security/" data-ga-click="Footer, go to security, text:security">Security</a> </li> </ul> <ul class="col-4 col-sm-4 col-lg-4 col-xl-3 list-style-none f6 color-text-secondary pl-lg-4"> <li class="mb-1"> <a class="Link--secondary" href="https://docs.github.com/en/github/site-policy/github-terms-of-service" data-ga-click="Footer, go to terms, text:terms">Terms</a> </li> <li class="mb-1"> <a class="Link--secondary" href="https://docs.github.com/en/github/site-policy/github-privacy-statement" data-ga-click="Footer, go to privacy, text:privacy">Privacy</a> </li> <li class="mb-1"> <a class="Link--secondary" data-ga-click="Footer, go to help, text:Docs" href="https://docs.github.com">Docs</a> </li> </ul> </div> </div> </div> </div> </div> </div> <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden> <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg> </button> You can’t perform that action at this time. </div> <div class="js-stale-session-flash flash flash-warn flash-banner" hidden > <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span> </div> <template id="site-details-dialog"> <details class="details-reset details-overlay details-overlay-dark lh-default color-text-primary hx_rsm" open> <summary role="button" aria-label="Close dialog"></summary> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog> <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> </body> </html>
mourner
A test that shows the benefit of loading large amounts of data directly in a worker instead of a page.
Renien
:file_folder: Extract, Transform, Load (ETL) :construction_worker: refers to a process in database usage and especially in data warehousing. This repository contains a starter kit featuring ETL related work.
mhowerton91
<!DOCTYPE html> <!-- Copyright 2016 Google Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta charset="utf-8"> <title>Chrome Platform Status</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0"> <link rel="manifest" href="/static/manifest.json"> <meta name="theme-color" content="#366597"> <link rel="icon" sizes="192x192" href="/static/img/crstatus_192.png"> <!-- iOS: run in full-screen mode and display upper status bar as translucent --> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <link rel="apple-touch-icon" href="/static/img/crstatus_128.png"> <link rel="apple-touch-icon-precomposed" href="/static/img/crstatus_128.png"> <link rel="shortcut icon" href="/static/img/crstatus_128.png"> <link rel="preconnect" href="https://www.google-analytics.com" crossorigin> <!-- <link rel="dns-prefetch" href="https://fonts.googleapis.com"> --> <!-- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> --> <!-- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400" media="none" onload="this.media='all'"> --> <!-- <link rel="stylesheet" href="/static/css/main.css"> --> <style>html,body{margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,pre,a,abbr,acronym,address,code,del,dfn,em,img,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,caption,tbody,tfoot,thead,tr{margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}blockquote,q{margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;quotes:"" ""}blockquote:before,q:before,blockquote:after,q:after{content:""}th,td,caption{margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;text-align:left;font-weight:normal;vertical-align:middle}table{margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;border-collapse:separate;border-spacing:0;vertical-align:middle}a img{border:none}*{box-sizing:border-box}*{-webkit-tap-highlight-color:transparent}h1,h2,h3,h4{font-weight:300}h1{font-size:30px}h2,h3,h4{color:#444}h2{font-size:25px}h3{font-size:20px}a{text-decoration:none;color:#4580c0}a:hover{text-decoration:underline;color:#366597}b{font-weight:600}input:not([type="submit"]),textarea{border:1px solid #D4D4D4}input:not([type="submit"])[disabled],textarea[disabled]{opacity:0.5}button,.button{display:inline-block;background:linear-gradient(#F9F9F9 40%, #E3E3E3 70%);border:1px solid #a9a9a9;border-radius:3px;padding:5px 8px;outline:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;text-shadow:1px 1px #fff;font-size:10pt}button:not(:disabled):hover{border-color:#515151}button:not(:disabled):active{background:linear-gradient(#E3E3E3 40%, #F9F9F9 70%)}.comma::after{content:',\00a0'}html,body{height:100%}body{color:#666;font:14px "Roboto", sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;background-color:#eee}body.loading #spinner{display:flex}body.loading chromedash-toast{visibility:hidden}#spinner{display:none;align-items:center;justify-content:center;position:fixed;height:calc(100% - 54px - $header-height);max-width:768px;width:100%}#site-banner{display:none;background:#4580c0;color:#fff;position:fixed;z-index:1;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;text-transform:capitalize;text-align:center;transform:rotate(35deg);right:-40px;top:20px;padding:10px 40px 8px 60px;box-shadow:inset 0px 5px 6px -3px rgba(0,0,0,0.4)}#site-banner iron-icon{margin-right:4px;height:20px;width:20px}#site-banner a{color:currentcolor;text-decoration:none}app-drawer{font-size:14px}app-drawer .drawer-content-wrapper{height:100%;overflow:auto;padding:16px}app-drawer paper-listbox{background-color:inherit !important}app-drawer paper-listbox paper-item{font-size:inherit !important}app-drawer h3{margin-bottom:16px;text-transform:uppercase;font-weight:500;font-size:14px;color:inherit}app-header{background-color:#eee;right:0;top:0;left:0;z-index:1}app-header[fixed]{position:fixed}.main-toolbar{display:flex;position:relative;padding:0 16px}header,footer{display:flex;align-items:center;text-shadow:0 1px 0 white}header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}header a{text-decoration:none !important}header nav{display:flex;align-items:center;margin-left:16px}header nav a{background-color:#FAFAFA;background:linear-gradient(to bottom, white, #F2F2F2);padding:0.75em 1em;box-shadow:1px 1px 4px rgba(0,0,0,0.065);cursor:pointer;font-size:16px;text-align:center;border-radius:3px;border-bottom:1px solid #D4D4D4;border-right:1px solid #D4D4D4;white-space:nowrap}header nav a:active{position:relative;top:1px;left:1px;box-shadow:3px 3px 4px rgba(0,0,0,0.065)}header nav a.disabled{opacity:0.5;pointer-events:none}header nav paper-menu-button{margin:0 !important;padding:0 !important;line-height:1}header nav paper-menu-button .dropdown-content{display:flex;flex-direction:column;contain:content}header aside{background-color:#FAFAFA;background:linear-gradient(to bottom, white, #F2F2F2);padding:0.75em 1em;box-shadow:1px 1px 4px rgba(0,0,0,0.065);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-bottom:1px solid #D4D4D4;border-right:1px solid #D4D4D4;background:url(/static/img/chrome_logo.svg) no-repeat 16px 50%;background-size:48px;background-color:#fafafa;padding-left:72px}header aside hgroup a{color:currentcolor}header aside h1{line-height:1}header aside img{height:45px;width:45px;margin-right:7px}footer{background-color:#FAFAFA;background:linear-gradient(to bottom, white, #F2F2F2);padding:0.75em 1em;box-shadow:1px 1px 4px rgba(0,0,0,0.065);font-size:12px;box-shadow:0 -2px 5px rgba(0,0,0,0.065);display:flex;flex-direction:column;justify-content:center;text-align:center;position:fixed;bottom:0;left:0;right:0;z-index:3}footer div{margin-top:4px}.description{line-height:1.4}#subheader,.subheader{display:flex;align-items:center;margin:16px 0;max-width:768px}#subheader .num-features,.subheader .num-features{font-weight:400}#subheader div.search input,.subheader div.search input{width:200px;outline:none;padding:10px 7px}#subheader div.actionlinks,.subheader div.actionlinks{display:flex;justify-content:flex-end;flex:1 0 auto;margin-left:16px}#subheader div.actionlinks .blue-button,.subheader div.actionlinks .blue-button{background:#366597;color:#fff;display:inline-flex;align-items:center;justify-content:center;max-height:35px;min-width:5.14em;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent;text-transform:uppercase;text-decoration:none;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;padding:0.7em 0.57em}#subheader div.actionlinks .blue-button iron-icon,.subheader div.actionlinks .blue-button iron-icon{margin-right:8px;height:24px;width:24px}#subheader div.actionlinks .legend,.subheader div.actionlinks .legend{font-size:18px;cursor:pointer;text-decoration:none}#container{display:flex;flex-direction:column;height:100%;width:100%}#content{margin:16px;position:relative;height:100%}#panels{display:flex;width:100%;overflow:hidden}@media only screen and (min-width: 701px){.main-toolbar .toolbar-content{max-width:768px}app-header{padding-left:200px;left:0 !important}}@media only screen and (max-width: 700px){h1{font-size:24px}h2{font-size:20px}h3{font-size:15px}app-header .main-toolbar{padding:0;display:block}app-header .main-toolbar iron-icon{width:24px}app-drawer{z-index:2}#content{margin-left:0;margin-right:0}header{margin:0;display:block}header aside{display:flex;padding:8px;border-radius:0;background-size:24px;background-position:48px 50%}header aside hgroup{padding-left:48px}header aside hgroup span{display:none}header nav{margin:0;justify-content:center;flex-wrap:wrap}header nav a{padding:5px 10px;margin:0;border-radius:0;flex:1 0 auto}#panels{display:block}#panels nav{display:none}.subheader .description{margin:0 16px}#subheader div:not(.search){display:none}#subheader div.search{text-align:center;flex:1 0 0;margin:0}chromedash-toast{width:100%;left:0;margin:0}}@media only screen and (min-width: 1100px){#site-banner{display:block}}body.loading chromedash-legend{display:none}body.loading chromedash-featurelist{visibility:hidden}body.loading .main-toolbar .dropdown-content{display:none} </style> <!-- <link rel="stylesheet" href="/static/css/metrics/metrics.css"> --> <style>#content h3{margin-bottom:16px}.data-panel{max-width:768px}.data-panel .description{margin-bottom:1em}.metric-nav{list-style-type:none}.metric-nav h3:not(:first-of-type){margin-top:32px}.metric-nav li{text-align:center;border-top-left-radius:3px;border-top-right-radius:3px;background:linear-gradient(to bottom, white, #F2F2F2);box-shadow:1px 1px 4px rgba(0,0,0,0.065);padding:0.5em;margin-bottom:10px}@media only screen and (max-width: 700px){#subheader{margin:16px 0;text-align:center}.data-panel{margin:0 10px}} </style> <script> window.Polymer = window.Polymer || { dom: 'shadow', // Use native shadow dom. lazyRegister: 'max', useNativeCSSProperties: true, suppressTemplateNotifications: true, // Don't fire dom-change on dom-if, dom-bind, etc. suppressBindingNotifications: true // disableUpgradeEnabled: true // Works with `disable-upgrade` attr. When removed, upgrades element. }; var $ = function(selector) { return document.querySelector(selector); }; var $$ = function(selector) { return document.querySelectorAll(selector); }; </script> <style is="custom-style"> app-drawer { --app-drawer-width: 200px; --app-drawer-content-container: { background: #eee; }; } paper-item { --paper-item: { cursor: pointer; }; } </style> <link rel="import" href="/static/elements/metrics-imports.vulcanize.html"> </head> <body class="loading"> <!--<div id="site-banner"> <a href="https://www.youtube.com/watch?v=Rd0plknSPYU" target="_blank"> <iron-icon icon="chromestatus:ondemand-video"></iron-icon> How we built it</a> </div>--> <app-drawer-layout fullbleed> <app-drawer swipe-open> <div class="drawer-content-wrapper"> <ul class="metric-nav"> <h3>All properties</h3> <li><a href="/metrics/css/popularity">Stack rank</a></li> <li><a href="/metrics/css/timeline/popularity">Timeline</a></li> <h3>Animated properties</h3> <li><a href="/metrics/css/animated">Stack rank</a></li> <li><a href="/metrics/css/timeline/animated">Timeline</a></li> </ul> </div> </app-drawer> <app-header-layout> <app-header reveals fixed effects="waterfall"> <div class="main-toolbar"> <div class="toolbar-content"> <header> <aside> <iron-icon icon="chromestatus:menu" drawer-toggle></iron-icon> <hgroup> <a href="/features" target="_top"><h1>Chrome Platform Status</h1></a> <span>feature support & usage metrics</span> </hgroup> </aside> <nav> <a href="/features">Features</a> <a href="/samples" class="features">Samples</a> <paper-menu-button vertical-align="top" horizontal-align="right"> <a href="javascript:void(0)" class="dropdown-trigger">Usage Metrics</a> <div class="dropdown-content" hidden> <!-- hidden removed by lazy load code. --> <a href="/metrics/css/popularity" class="metrics">CSS</a> <a href="/metrics/feature/popularity" class="metrics">JS/HTML</a> </div> </paper-menu-button> </nav> </header> <div id="subheader"> <h2>CSS usage metrics > animated properties > timeline</h2> </div> </div> </div> </app-header> <div id="content"> <div id="spinner"><img src="/static/img/ring.svg"></div> <div class="data-panel"> <p class="description">Percentages are the number of times (as the fraction of all animated properties) this property is animated.</p> <chromedash-feature-timeline type="css" view="animated" title="Percentage of times (as the fraction of all animated properties) this property is animated." ></chromedash-feature-timeline> </div> </div> </app-header-layout> <footer> <p>Except as otherwise noted, the content of this page under <a href="https://creativecommons.org/licenses/by/2.5/">CC Attribution 2.5</a> license. Code examples are <a href="https://github.com/GoogleChrome/samples/blob/gh-pages/LICENSE">Apache-2.0</a>.</p> <div><a href="https://groups.google.com/a/chromium.org/forum/#!newtopic/blink-dev">File content issue</a> | <a href="https://docs.google.com/a/chromium.org/forms/d/1djZD0COt4NgRwDYesNLkYAb_O8YL39eEvF78vk06R9c/viewform">Request "edit" access</a> | <a href="https://github.com/GoogleChrome/chromium-dashboard/issues">File site bug</a> | <a href="https://docs.google.com/document/d/1jrSlM4Yhae7XCJ8BuasWx71CvDEMMbSKbXwx7hoh1Co/edit?pli=1" target="_blank">About</a> | <a href="https://www.google.com/accounts/ServiceLogin?service=ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%3Fcontinue%3Dhttps://www.chromestatus.com/metrics/css/timeline/animated">Login</a> </div> </footer> </app-drawer-layout> <chromedash-toast msg="Welcome to chromestatus.com!"></chromedash-toast> <script> /*! (c) 2017 Copyright (c) 2016 The Google Inc. All rights reserved. (Apache2) */ "use strict";function _classCallCheck(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function e(e,r){for(var n=0;n<r.length;n++){var t=r[n];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(r,n,t){return n&&e(r.prototype,n),t&&e(r,t),r}}(),Metric=function(){function e(r){if(_classCallCheck(this,e),!r)throw Error("Please provide a metric name");if(!e.supportsPerfMark&&(console.warn("Timeline won't be marked for \""+r+'".'),!e.supportsPerfNow))throw Error("This library cannot be used in this browser.");this.name=r}return _createClass(e,[{key:"duration",get:function(){var r=this._end-this._start;if(e.supportsPerfMark){var n=performance.getEntriesByName(this.name)[0];n&&"measure"!==n.entryType&&(r=n.duration)}return r||-1}}],[{key:"supportsPerfNow",get:function(){return performance&&performance.now}},{key:"supportsPerfMark",get:function(){return performance&&performance.mark}}]),_createClass(e,[{key:"log",value:function(){return console.info(this.name,this.duration,"ms"),this}},{key:"logAll",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.name;if(e.supportsPerfNow)for(var n=window.performance.getEntriesByName(r),t=0;t<n.length;++t){var a=n[t];console.info(r,a.duration,"ms")}return this}},{key:"start",value:function(){return this._start?(console.warn("Recording already started."),this):(this._start=performance.now(),e.supportsPerfMark&&performance.mark("mark_"+this.name+"_start"),this)}},{key:"end",value:function(){if(this._end)return console.warn("Recording already stopped."),this;if(this._end=performance.now(),e.supportsPerfMark){var r="mark_"+this.name+"_start",n="mark_"+this.name+"_end";performance.mark(n),performance.measure(this.name,r,n)}return this}},{key:"sendToAnalytics",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.name,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.duration;return window.ga?n>=0&&ga("send","timing",e,r,n):console.warn("Google Analytics has not been loaded"),this}}]),e}(); </script> <script> document.addEventListener('WebComponentsReady', function(e) { var timeline = $('chromedash-feature-timeline'); timeline.props = [[469,"alias-epub-caption-side"],[470,"alias-epub-text-combine"],[471,"alias-epub-text-emphasis"],[472,"alias-epub-text-emphasis-color"],[473,"alias-epub-text-emphasis-style"],[474,"alias-epub-text-orientation"],[475,"alias-epub-text-transform"],[476,"alias-epub-word-break"],[477,"alias-epub-writing-mode"],[478,"alias-webkit-align-content"],[479,"alias-webkit-align-items"],[480,"alias-webkit-align-self"],[166,"alias-webkit-animation"],[167,"alias-webkit-animation-delay"],[169,"alias-webkit-animation-duration"],[170,"alias-webkit-animation-fill-mode"],[171,"alias-webkit-animation-iteration-count"],[172,"alias-webkit-animation-name"],[173,"alias-webkit-animation-play-state"],[174,"alias-webkit-animation-timing-function"],[177,"alias-webkit-backface-visibility"],[181,"alias-webkit-background-size"],[481,"alias-webkit-border-bottom-left-radius"],[482,"alias-webkit-border-bottom-right-radius"],[197,"alias-webkit-border-radius"],[483,"alias-webkit-border-top-left-radius"],[484,"alias-webkit-border-top-right-radius"],[212,"alias-webkit-box-shadow"],[485,"alias-webkit-box-sizing"],[218,"alias-webkit-column-count"],[219,"alias-webkit-column-gap"],[221,"alias-webkit-column-rule"],[222,"alias-webkit-column-rule-color"],[223,"alias-webkit-column-rule-style"],[224,"alias-webkit-column-rule-width"],[225,"alias-webkit-column-span"],[226,"alias-webkit-column-width"],[227,"alias-webkit-columns"],[486,"alias-webkit-flex"],[487,"alias-webkit-flex-basis"],[488,"alias-webkit-flex-direction"],[489,"alias-webkit-flex-flow"],[490,"alias-webkit-flex-grow"],[491,"alias-webkit-flex-shrink"],[492,"alias-webkit-flex-wrap"],[493,"alias-webkit-justify-content"],[494,"alias-webkit-opacity"],[495,"alias-webkit-order"],[308,"alias-webkit-perspective"],[309,"alias-webkit-perspective-origin"],[496,"alias-webkit-shape-image-threshold"],[497,"alias-webkit-shape-margin"],[498,"alias-webkit-shape-outside"],[537,"alias-webkit-text-size-adjust"],[326,"alias-webkit-transform"],[327,"alias-webkit-transform-origin"],[331,"alias-webkit-transform-style"],[332,"alias-webkit-transition"],[333,"alias-webkit-transition-delay"],[334,"alias-webkit-transition-duration"],[335,"alias-webkit-transition-property"],[336,"alias-webkit-transition-timing-function"],[230,"align-content"],[231,"align-items"],[232,"align-self"],[386,"alignment-baseline"],[454,"all"],[424,"animation"],[425,"animation-delay"],[426,"animation-direction"],[427,"animation-duration"],[428,"animation-fill-mode"],[429,"animation-iteration-count"],[430,"animation-name"],[431,"animation-play-state"],[432,"animation-timing-function"],[532,"apply-at-rule"],[508,"backdrop-filter"],[451,"backface-visibility"],[21,"background"],[22,"background-attachment"],[419,"background-blend-mode"],[23,"background-clip"],[24,"background-color"],[25,"background-image"],[26,"background-origin"],[27,"background-position"],[28,"background-position-x"],[29,"background-position-y"],[30,"background-repeat"],[31,"background-repeat-x"],[32,"background-repeat-y"],[33,"background-size"],[387,"baseline-shift"],[551,"block-size"],[34,"border"],[35,"border-bottom"],[36,"border-bottom-color"],[37,"border-bottom-left-radius"],[38,"border-bottom-right-radius"],[39,"border-bottom-style"],[40,"border-bottom-width"],[41,"border-collapse"],[42,"border-color"],[43,"border-image"],[44,"border-image-outset"],[45,"border-image-repeat"],[46,"border-image-slice"],[47,"border-image-source"],[48,"border-image-width"],[49,"border-left"],[50,"border-left-color"],[51,"border-left-style"],[52,"border-left-width"],[53,"border-radius"],[54,"border-right"],[55,"border-right-color"],[56,"border-right-style"],[57,"border-right-width"],[58,"border-spacing"],[59,"border-style"],[60,"border-top"],[61,"border-top-color"],[62,"border-top-left-radius"],[63,"border-top-right-radius"],[64,"border-top-style"],[65,"border-top-width"],[66,"border-width"],[67,"bottom"],[68,"box-shadow"],[69,"box-sizing"],[520,"break-after"],[521,"break-before"],[522,"break-inside"],[416,"buffered-rendering"],[70,"caption-side"],[547,"caret-color"],[71,"clear"],[72,"clip"],[355,"clip-path"],[356,"clip-rule"],[2,"color"],[365,"color-interpolation"],[366,"color-interpolation-filters"],[367,"color-profile"],[368,"color-rendering"],[523,"column-count"],[440,"column-fill"],[524,"column-gap"],[525,"column-rule"],[526,"column-rule-color"],[527,"column-rule-style"],[528,"column-rule-width"],[529,"column-span"],[530,"column-width"],[531,"columns"],[517,"contain"],[74,"content"],[75,"counter-increment"],[76,"counter-reset"],[77,"cursor"],[466,"cx"],[467,"cy"],[518,"d"],[3,"direction"],[4,"display"],[388,"dominant-baseline"],[78,"empty-cells"],[358,"enable-background"],[369,"fill"],[370,"fill-opacity"],[371,"fill-rule"],[359,"filter"],[233,"flex"],[234,"flex-basis"],[235,"flex-direction"],[236,"flex-flow"],[237,"flex-grow"],[238,"flex-shrink"],[239,"flex-wrap"],[79,"float"],[360,"flood-color"],[361,"flood-opacity"],[5,"font"],[516,"font-display"],[6,"font-family"],[514,"font-feature-settings"],[13,"font-kerning"],[7,"font-size"],[465,"font-size-adjust"],[80,"font-stretch"],[8,"font-style"],[9,"font-variant"],[533,"font-variant-caps"],[15,"font-variant-ligatures"],[535,"font-variant-numeric"],[549,"font-variation-settings"],[10,"font-weight"],[389,"glyph-orientation-horizontal"],[390,"glyph-orientation-vertical"],[453,"grid"],[422,"grid-area"],[418,"grid-auto-columns"],[250,"grid-auto-flow"],[417,"grid-auto-rows"],[248,"grid-column"],[245,"grid-column-end"],[511,"grid-column-gap"],[244,"grid-column-start"],[513,"grid-gap"],[249,"grid-row"],[247,"grid-row-end"],[512,"grid-row-gap"],[246,"grid-row-start"],[452,"grid-template"],[423,"grid-template-areas"],[242,"grid-template-columns"],[243,"grid-template-rows"],[81,"height"],[534,"hyphens"],[397,"image-orientation"],[507,"image-orientation"],[82,"image-rendering"],[398,"image-resolution"],[550,"inline-size"],[438,"internal-callback"],[436,"isolation"],[240,"justify-content"],[455,"justify-items"],[443,"justify-self"],[391,"kerning"],[83,"left"],[84,"letter-spacing"],[362,"lighting-color"],[556,"line-break"],[20,"line-height"],[85,"list-style"],[86,"list-style-image"],[87,"list-style-position"],[88,"list-style-type"],[89,"margin"],[90,"margin-bottom"],[91,"margin-left"],[92,"margin-right"],[93,"margin-top"],[372,"marker"],[373,"marker-end"],[374,"marker-mid"],[375,"marker-start"],[357,"mask"],[435,"mask-source-type"],[376,"mask-type"],[555,"max-block-size"],[94,"max-height"],[554,"max-inline-size"],[95,"max-width"],[406,"max-zoom"],[553,"min-block-size"],[96,"min-height"],[552,"min-inline-size"],[97,"min-width"],[407,"min-zoom"],[420,"mix-blend-mode"],[460,"motion"],[458,"motion-offset"],[457,"motion-path"],[459,"motion-rotation"],[433,"object-fit"],[437,"object-position"],[543,"offset"],[544,"offset-anchor"],[540,"offset-distance"],[541,"offset-path"],[545,"offset-position"],[548,"offset-rotate"],[542,"offset-rotation"],[98,"opacity"],[303,"order"],[408,"orientation"],[99,"orphans"],[100,"outline"],[101,"outline-color"],[102,"outline-offset"],[103,"outline-style"],[104,"outline-width"],[105,"overflow"],[538,"overflow-anchor"],[106,"overflow-wrap"],[107,"overflow-x"],[108,"overflow-y"],[109,"padding"],[110,"padding-bottom"],[111,"padding-left"],[112,"padding-right"],[113,"padding-top"],[114,"page"],[115,"page-break-after"],[116,"page-break-before"],[117,"page-break-inside"],[434,"paint-order"],[449,"perspective"],[450,"perspective-origin"],[557,"place-content"],[558,"place-items"],[118,"pointer-events"],[119,"position"],[120,"quotes"],[468,"r"],[121,"resize"],[122,"right"],[505,"rotate"],[463,"rx"],[464,"ry"],[506,"scale"],[444,"scroll-behavior"],[456,"scroll-blocks-on"],[502,"scroll-snap-coordinate"],[503,"scroll-snap-destination"],[500,"scroll-snap-points-x"],[501,"scroll-snap-points-y"],[499,"scroll-snap-type"],[439,"shape-image-threshold"],[346,"shape-inside"],[348,"shape-margin"],[347,"shape-outside"],[349,"shape-padding"],[377,"shape-rendering"],[123,"size"],[519,"snap-height"],[125,"speak"],[124,"src"],[363,"stop-color"],[364,"stop-opacity"],[378,"stroke"],[379,"stroke-dasharray"],[380,"stroke-dashoffset"],[381,"stroke-linecap"],[382,"stroke-linejoin"],[383,"stroke-miterlimit"],[384,"stroke-opacity"],[385,"stroke-width"],[127,"tab-size"],[126,"table-layout"],[128,"text-align"],[404,"text-align-last"],[392,"text-anchor"],[509,"text-combine-upright"],[129,"text-decoration"],[403,"text-decoration-color"],[401,"text-decoration-line"],[546,"text-decoration-skip"],[402,"text-decoration-style"],[130,"text-indent"],[441,"text-justify"],[131,"text-line-through"],[132,"text-line-through-color"],[133,"text-line-through-mode"],[134,"text-line-through-style"],[135,"text-line-through-width"],[510,"text-orientation"],[136,"text-overflow"],[137,"text-overline"],[138,"text-overline-color"],[139,"text-overline-mode"],[140,"text-overline-style"],[141,"text-overline-width"],[11,"text-rendering"],[142,"text-shadow"],[536,"text-size-adjust"],[143,"text-transform"],[144,"text-underline"],[145,"text-underline-color"],[146,"text-underline-mode"],[405,"text-underline-position"],[147,"text-underline-style"],[148,"text-underline-width"],[149,"top"],[421,"touch-action"],[442,"touch-action-delay"],[446,"transform"],[559,"transform-box"],[447,"transform-origin"],[448,"transform-style"],[150,"transition"],[151,"transition-delay"],[152,"transition-duration"],[153,"transition-property"],[154,"transition-timing-function"],[504,"translate"],[155,"unicode-bidi"],[156,"unicode-range"],[539,"user-select"],[409,"user-zoom"],[515,"variable"],[393,"vector-effect"],[157,"vertical-align"],[158,"visibility"],[168,"webkit-animation-direction"],[354,"webkit-app-region"],[412,"webkit-app-region"],[175,"webkit-appearance"],[176,"webkit-aspect-ratio"],[400,"webkit-background-blend-mode"],[178,"webkit-background-clip"],[179,"webkit-background-composite"],[180,"webkit-background-origin"],[399,"webkit-blend-mode"],[182,"webkit-border-after"],[183,"webkit-border-after-color"],[184,"webkit-border-after-style"],[185,"webkit-border-after-width"],[186,"webkit-border-before"],[187,"webkit-border-before-color"],[188,"webkit-border-before-style"],[189,"webkit-border-before-width"],[190,"webkit-border-end"],[191,"webkit-border-end-color"],[192,"webkit-border-end-style"],[193,"webkit-border-end-width"],[194,"webkit-border-fit"],[195,"webkit-border-horizontal-spacing"],[196,"webkit-border-image"],[198,"webkit-border-start"],[199,"webkit-border-start-color"],[200,"webkit-border-start-style"],[201,"webkit-border-start-width"],[202,"webkit-border-vertical-spacing"],[203,"webkit-box-align"],[228,"webkit-box-decoration-break"],[414,"webkit-box-decoration-break"],[204,"webkit-box-direction"],[205,"webkit-box-flex"],[206,"webkit-box-flex-group"],[207,"webkit-box-lines"],[208,"webkit-box-ordinal-group"],[209,"webkit-box-orient"],[210,"webkit-box-pack"],[211,"webkit-box-reflect"],[73,"webkit-clip-path"],[213,"webkit-color-correction"],[214,"webkit-column-axis"],[215,"webkit-column-break-after"],[216,"webkit-column-break-before"],[217,"webkit-column-break-inside"],[220,"webkit-column-progression"],[396,"webkit-cursor-visibility"],[410,"webkit-dashboard-region"],[229,"webkit-filter"],[413,"webkit-filter"],[341,"webkit-flow-from"],[340,"webkit-flow-into"],[12,"webkit-font-feature-settings"],[241,"webkit-font-size-delta"],[14,"webkit-font-smoothing"],[251,"webkit-highlight"],[252,"webkit-hyphenate-character"],[253,"webkit-hyphenate-limit-after"],[254,"webkit-hyphenate-limit-before"],[255,"webkit-hyphenate-limit-lines"],[256,"webkit-hyphens"],[258,"webkit-line-align"],[257,"webkit-line-box-contain"],[259,"webkit-line-break"],[260,"webkit-line-clamp"],[261,"webkit-line-grid"],[262,"webkit-line-snap"],[16,"webkit-locale"],[264,"webkit-logical-height"],[263,"webkit-logical-width"],[270,"webkit-margin-after"],[265,"webkit-margin-after-collapse"],[271,"webkit-margin-before"],[266,"webkit-margin-before-collapse"],[267,"webkit-margin-bottom-collapse"],[269,"webkit-margin-collapse"],[272,"webkit-margin-end"],[273,"webkit-margin-start"],[268,"webkit-margin-top-collapse"],[274,"webkit-marquee"],[275,"webkit-marquee-direction"],[276,"webkit-marquee-increment"],[277,"webkit-marquee-repetition"],[278,"webkit-marquee-speed"],[279,"webkit-marquee-style"],[280,"webkit-mask"],[281,"webkit-mask-box-image"],[282,"webkit-mask-box-image-outset"],[283,"webkit-mask-box-image-repeat"],[284,"webkit-mask-box-image-slice"],[285,"webkit-mask-box-image-source"],[286,"webkit-mask-box-image-width"],[287,"webkit-mask-clip"],[288,"webkit-mask-composite"],[289,"webkit-mask-image"],[290,"webkit-mask-origin"],[291,"webkit-mask-position"],[292,"webkit-mask-position-x"],[293,"webkit-mask-position-y"],[294,"webkit-mask-repeat"],[295,"webkit-mask-repeat-x"],[296,"webkit-mask-repeat-y"],[297,"webkit-mask-size"],[299,"webkit-max-logical-height"],[298,"webkit-max-logical-width"],[301,"webkit-min-logical-height"],[300,"webkit-min-logical-width"],[302,"webkit-nbsp-mode"],[411,"webkit-overflow-scrolling"],[304,"webkit-padding-after"],[305,"webkit-padding-before"],[306,"webkit-padding-end"],[307,"webkit-padding-start"],[310,"webkit-perspective-origin-x"],[311,"webkit-perspective-origin-y"],[312,"webkit-print-color-adjust"],[343,"webkit-region-break-after"],[344,"webkit-region-break-before"],[345,"webkit-region-break-inside"],[342,"webkit-region-fragment"],[313,"webkit-rtl-ordering"],[314,"webkit-ruby-position"],[395,"webkit-svg-shadow"],[353,"webkit-tap-highlight-color"],[415,"webkit-tap-highlight-color"],[315,"webkit-text-combine"],[316,"webkit-text-decorations-in-effect"],[317,"webkit-text-emphasis"],[318,"webkit-text-emphasis-color"],[319,"webkit-text-emphasis-position"],[320,"webkit-text-emphasis-style"],[321,"webkit-text-fill-color"],[17,"webkit-text-orientation"],[322,"webkit-text-security"],[323,"webkit-text-stroke"],[324,"webkit-text-stroke-color"],[325,"webkit-text-stroke-width"],[328,"webkit-transform-origin-x"],[329,"webkit-transform-origin-y"],[330,"webkit-transform-origin-z"],[337,"webkit-user-drag"],[338,"webkit-user-modify"],[339,"webkit-user-select"],[352,"webkit-wrap"],[350,"webkit-wrap-flow"],[351,"webkit-wrap-through"],[18,"webkit-writing-mode"],[159,"white-space"],[160,"widows"],[161,"width"],[445,"will-change"],[162,"word-break"],[163,"word-spacing"],[164,"word-wrap"],[394,"writing-mode"],[461,"x"],[462,"y"],[165,"z-index"],[19,"zoom"]]; document.body.classList.remove('loading'); window.addEventListener('popstate', function(e) { if (e.state) { timeline.selectedBucketId = e.state.id; } }); }); </script> <script> /*! (c) 2017 Copyright (c) 2016 The Google Inc. All rights reserved. (Apache2) */ "use strict";!function(e){function r(){return caches.keys().then(function(e){var r=0;return Promise.all(e.map(function(e){if(e.includes("sw-precache"))return caches.open(e).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){return e.match(n).then(function(e){return e.arrayBuffer()}).then(function(e){r+=e.byteLength})}))})})})).then(function(){return r})["catch"](function(){})})}function n(){"serviceWorker"in navigator&&navigator.serviceWorker.register("/service-worker.js").then(function(e){e.onupdatefound=function(){var n=e.installing;n.onstatechange=function(){switch(n.state){case"installed":t&&!navigator.serviceWorker.controller&&o.then(r().then(function(e){var r=Math.round(e/1e3);console.info("[ServiceWorker] precached",r,"KB");var n=new Metric("sw_precache");n.sendToAnalytics("service worker","precache size",e),t.showMessage("This site is cached ("+r+"KB). Ready to use offline!")}));break;case"redundant":throw Error("The installing service worker became redundant.")}}}})["catch"](function(e){console.error("Error during service worker registration:",e)})}var t=document.querySelector("chromedash-toast"),o=new Promise(function(e,r){return window.asyncImportsLoadPromise?window.asyncImportsLoadPromise.then(e,r):void e()});window.asyncImportsLoadPromise||n(),navigator.serviceWorker&&navigator.serviceWorker.controller&&(navigator.serviceWorker.controller.onstatechange=function(e){if("redundant"===e.target.state){var r=function(){window.location.reload()};t?o.then(function(){t.showMessage("A new version of this app is available.","Refresh",r,-1)}):r()}}),e.registerServiceWorker=n}(window); // https://gist.github.com/ebidel/1d5ede1e35b6f426a2a7 function lazyLoadWCPolyfillsIfNecessary() { function onload() { // For native Imports, manually fire WCR so user code // can use the same code path for native and polyfill'd imports. if (!('HTMLImports' in window)) { document.body.dispatchEvent( new CustomEvent('WebComponentsReady', {bubbles: true})); } } var webComponentsSupported = ('registerElement' in document && 'import' in document.createElement('link') && 'content' in document.createElement('template')); if (!webComponentsSupported) { var script = document.createElement('script'); script.async = true; script.src = '/static/bower_components/webcomponentsjs/webcomponents-lite.min.js'; script.onload = onload; document.head.appendChild(script); } else { onload(); } } var button = document.querySelector('app-header paper-menu-button'); button.addEventListener('click', function lazyHandler(e) { this.removeEventListener('click', lazyHandler); var url = '/static/elements/paper-menu-button.vulcanize.html'; Polymer.Base.importHref(url, function() { button.contentElement.hidden = false; button.open(); }, null, true); }); // Google Analytics (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-39048143-1', 'auto'); ga('send', 'pageview'); // End Google Analytics lazyLoadWCPolyfillsIfNecessary(); </script> </body> </html>
11:36:00 PM: Build ready to start 11:36:02 PM: build-image version: 72a309a113b53ef075815b129953617827965e48 (focal) 11:36:02 PM: build-image tag: v4.8.2 11:36:02 PM: buildbot version: 72ebfe61ef7a5152002962d9129cc52f5b1bb560 11:36:02 PM: Fetching cached dependencies 11:36:02 PM: Failed to fetch cache, continuing with build 11:36:02 PM: Starting to prepare the repo for build 11:36:02 PM: No cached dependencies found. Cloning fresh repo 11:36:02 PM: git clone https://github.com/netlify-templates/gatsby-ecommerce-theme 11:36:03 PM: Preparing Git Reference refs/heads/main 11:36:04 PM: Parsing package.json dependencies 11:36:05 PM: Starting build script 11:36:05 PM: Installing dependencies 11:36:05 PM: Python version set to 2.7 11:36:06 PM: v16.15.1 is already installed. 11:36:06 PM: Now using node v16.15.1 (npm v8.11.0) 11:36:06 PM: Started restoring cached build plugins 11:36:06 PM: Finished restoring cached build plugins 11:36:06 PM: Attempting ruby version 2.7.2, read from environment 11:36:08 PM: Using ruby version 2.7.2 11:36:08 PM: Using PHP version 8.0 11:36:08 PM: No npm workspaces detected 11:36:08 PM: Started restoring cached node modules 11:36:08 PM: Finished restoring cached node modules 11:36:09 PM: Installing NPM modules using NPM version 8.11.0 11:36:09 PM: npm WARN config tmp This setting is no longer used. npm stores temporary files in a special 11:36:09 PM: npm WARN config location in the cache, and they are managed by 11:36:09 PM: npm WARN config [`cacache`](http://npm.im/cacache). 11:36:09 PM: npm WARN config tmp This setting is no longer used. npm stores temporary files in a special 11:36:09 PM: npm WARN config location in the cache, and they are managed by 11:36:09 PM: npm WARN config [`cacache`](http://npm.im/cacache). 11:36:24 PM: npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated 11:36:25 PM: npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated 11:36:26 PM: npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. 11:36:28 PM: npm WARN deprecated querystring@0.2.1: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. 11:36:33 PM: npm WARN deprecated subscriptions-transport-ws@0.9.19: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md 11:36:36 PM: npm WARN deprecated async-cache@1.1.0: No longer maintained. Use [lru-cache](http://npm.im/lru-cache) version 7.6 or higher, and provide an asynchronous `fetchMethod` option. 11:36:37 PM: npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. 11:36:41 PM: npm WARN deprecated devcert@1.2.0: critical regex denial of service bug fixed in 1.2.1 patch 11:36:42 PM: npm WARN deprecated debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) 11:36:45 PM: npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated 11:36:45 PM: npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated 11:36:53 PM: npm WARN deprecated puppeteer@7.1.0: Version no longer supported. Upgrade to @latest 11:37:30 PM: added 2044 packages, and audited 2045 packages in 1m 11:37:30 PM: 208 packages are looking for funding 11:37:30 PM: run `npm fund` for details 11:37:30 PM: 41 vulnerabilities (13 moderate, 25 high, 3 critical) 11:37:30 PM: To address issues that do not require attention, run: 11:37:30 PM: npm audit fix 11:37:30 PM: To address all issues possible (including breaking changes), run: 11:37:30 PM: npm audit fix --force 11:37:30 PM: Some issues need review, and may require choosing 11:37:30 PM: a different dependency. 11:37:30 PM: Run `npm audit` for details. 11:37:30 PM: NPM modules installed 11:37:31 PM: npm WARN config tmp This setting is no longer used. npm stores temporary files in a special 11:37:31 PM: npm WARN config location in the cache, and they are managed by 11:37:31 PM: npm WARN config [`cacache`](http://npm.im/cacache). 11:37:31 PM: Started restoring cached go cache 11:37:31 PM: Finished restoring cached go cache 11:37:31 PM: Installing Go version 1.17 (requested 1.17) 11:37:36 PM: unset GOOS; 11:37:36 PM: unset GOARCH; 11:37:36 PM: export GOROOT='/opt/buildhome/.gimme/versions/go1.17.linux.amd64'; 11:37:36 PM: export PATH="/opt/buildhome/.gimme/versions/go1.17.linux.amd64/bin:${PATH}"; 11:37:36 PM: go version >&2; 11:37:36 PM: export GIMME_ENV="/opt/buildhome/.gimme/env/go1.17.linux.amd64.env" 11:37:37 PM: go version go1.17 linux/amd64 11:37:37 PM: Installing missing commands 11:37:37 PM: Verify run directory 11:37:38 PM: 11:37:38 PM: ──────────────────────────────────────────────────────────────── 11:37:38 PM: Netlify Build 11:37:38 PM: ──────────────────────────────────────────────────────────────── 11:37:38 PM: 11:37:38 PM: ❯ Version 11:37:38 PM: @netlify/build 27.3.0 11:37:38 PM: 11:37:38 PM: ❯ Flags 11:37:38 PM: baseRelDir: true 11:37:38 PM: buildId: 62b9ce60232d3454599e9b1c 11:37:38 PM: deployId: 62b9ce60232d3454599e9b1e 11:37:38 PM: 11:37:38 PM: ❯ Current directory 11:37:38 PM: /opt/build/repo 11:37:38 PM: 11:37:38 PM: ❯ Config file 11:37:38 PM: /opt/build/repo/netlify.toml 11:37:38 PM: 11:37:38 PM: ❯ Context 11:37:38 PM: production 11:37:38 PM: 11:37:38 PM: ❯ Loading plugins 11:37:38 PM: - @netlify/plugin-gatsby@3.2.4 from netlify.toml and package.json 11:37:38 PM: - netlify-plugin-cypress@2.2.0 from netlify.toml and package.json 11:37:40 PM: 11:37:40 PM: ──────────────────────────────────────────────────────────────── 11:37:40 PM: 1. @netlify/plugin-gatsby (onPreBuild event) 11:37:40 PM: ──────────────────────────────────────────────────────────────── 11:37:40 PM: 11:37:40 PM: No Gatsby cache found. Building fresh. 11:37:40 PM: 11:37:40 PM: (@netlify/plugin-gatsby onPreBuild completed in 17ms) 11:37:40 PM: 11:37:40 PM: ──────────────────────────────────────────────────────────────── 11:37:40 PM: 2. netlify-plugin-cypress (onPreBuild event) 11:37:40 PM: ──────────────────────────────────────────────────────────────── 11:37:40 PM: 11:37:41 PM: [STARTED] Task without title. 11:37:44 PM: [SUCCESS] Task without title. 11:37:46 PM: [2266:0627/153746.716704:ERROR:zygote_host_impl_linux.cc(263)] Failed to adjust OOM score of renderer with pid 2420: Permission denied (13) 11:37:46 PM: [2420:0627/153746.749095:ERROR:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process. 11:37:46 PM: [2420:0627/153746.764711:ERROR:gpu_memory_buffer_support_x11.cc(44)] dri3 extension not supported. 11:37:46 PM: Displaying Cypress info... 11:37:46 PM: Detected no known browsers installed 11:37:46 PM: Proxy Settings: none detected 11:37:46 PM: Environment Variables: 11:37:46 PM: CYPRESS_CACHE_FOLDER: ./node_modules/.cache/CypressBinary 11:37:46 PM: Application Data: /opt/buildhome/.config/cypress/cy/development 11:37:46 PM: Browser Profiles: /opt/buildhome/.config/cypress/cy/development/browsers 11:37:46 PM: Binary Caches: /opt/build/repo/node_modules/.cache/CypressBinary 11:37:46 PM: Cypress Version: 10.2.0 (stable) 11:37:46 PM: System Platform: linux (Ubuntu - 20.04) 11:37:46 PM: System Memory: 32.8 GB free 27.9 GB 11:37:47 PM: 11:37:47 PM: (netlify-plugin-cypress onPreBuild completed in 6.2s) 11:37:47 PM: 11:37:47 PM: ──────────────────────────────────────────────────────────────── 11:37:47 PM: 3. build.command from netlify.toml 11:37:47 PM: ──────────────────────────────────────────────────────────────── 11:37:47 PM: 11:37:47 PM: $ gatsby build 11:37:49 PM: success open and validate gatsby-configs, load plugins - 0.298s 11:37:49 PM: success onPreInit - 0.003s 11:37:49 PM: success initialize cache - 0.107s 11:37:49 PM: success copy gatsby files - 0.044s 11:37:49 PM: success Compiling Gatsby Functions - 0.251s 11:37:49 PM: success onPreBootstrap - 0.259s 11:37:50 PM: success createSchemaCustomization - 0.000s 11:37:50 PM: success Checking for changed pages - 0.000s 11:37:50 PM: success source and transform nodes - 0.154s 11:37:50 PM: info Writing GraphQL type definitions to /opt/build/repo/.cache/schema.gql 11:37:50 PM: success building schema - 0.402s 11:37:50 PM: success createPages - 0.000s 11:37:50 PM: success createPagesStatefully - 0.312s 11:37:50 PM: info Total nodes: 49, SitePage nodes: 26 (use --verbose for breakdown) 11:37:50 PM: success Checking for changed pages - 0.000s 11:37:50 PM: success onPreExtractQueries - 0.000s 11:37:54 PM: success extract queries from components - 3.614s 11:37:54 PM: success write out redirect data - 0.006s 11:37:54 PM: success Build manifest and related icons - 0.468s 11:37:54 PM: success onPostBootstrap - 0.469s 11:37:54 PM: info bootstrap finished - 7.967s 11:37:54 PM: success write out requires - 0.009s 11:38:19 PM: success Building production JavaScript and CSS bundles - 24.472s 11:38:38 PM: <w> [webpack.cache.PackFileCacheStrategy] Skipped not serializable cache item 'mini-css-extract-plugin /opt/build/repo/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[10].oneOf[0].use[1]!/opt/build/repo/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[10].oneOf[0].use[2]!/opt/build/repo/src/components/Footer/Footer.module.css|0|Compilation/modules|/opt/build/repo/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[10].oneOf[0].use[1]!/opt/build/repo/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[10].oneOf[0].use[2]!/opt/build/repo/src/components/Footer/Footer.module.css': No serializer registered for Warning 11:38:38 PM: <w> while serializing webpack/lib/cache/PackFileCacheStrategy.PackContentItems -> webpack/lib/NormalModule -> Array { 1 items } -> webpack/lib/ModuleWarning -> Warning 11:38:38 PM: <w> [webpack.cache.PackFileCacheStrategy] Skipped not serializable cache item 'mini-css-extract-plugin /opt/build/repo/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[10].oneOf[0].use[1]!/opt/build/repo/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[10].oneOf[0].use[2]!/opt/build/repo/src/components/Header/Header.module.css|0|Compilation/modules|/opt/build/repo/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[10].oneOf[0].use[1]!/opt/build/repo/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[10].oneOf[0].use[2]!/opt/build/repo/src/components/Header/Header.module.css': No serializer registered for Warning 11:38:38 PM: <w> while serializing webpack/lib/cache/PackFileCacheStrategy.PackContentItems -> webpack/lib/NormalModule -> Array { 1 items } -> webpack/lib/ModuleWarning -> Warning 11:38:39 PM: <w> [webpack.cache.PackFileCacheStrategy] Skipped not serializable cache item 'Compilation/modules|/opt/build/repo/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[9].oneOf[0].use[0]!/opt/build/repo/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[9].oneOf[0].use[1]!/opt/build/repo/src/components/Footer/Footer.module.css': No serializer registered for Warning 11:38:39 PM: <w> while serializing webpack/lib/cache/PackFileCacheStrategy.PackContentItems -> webpack/lib/NormalModule -> Array { 1 items } -> webpack/lib/ModuleWarning -> Warning 11:38:39 PM: <w> [webpack.cache.PackFileCacheStrategy] Skipped not serializable cache item 'Compilation/modules|/opt/build/repo/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[9].oneOf[0].use[0]!/opt/build/repo/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[9].oneOf[0].use[1]!/opt/build/repo/src/components/Header/Header.module.css': No serializer registered for Warning 11:38:39 PM: <w> while serializing webpack/lib/cache/PackFileCacheStrategy.PackContentItems -> webpack/lib/NormalModule -> Array { 1 items } -> webpack/lib/ModuleWarning -> Warning 11:38:41 PM: success Building HTML renderer - 21.648s 11:38:41 PM: success Execute page configs - 0.024s 11:38:41 PM: success Caching Webpack compilations - 0.000s 11:38:41 PM: success run queries in workers - 0.042s - 26/26 621.26/s 11:38:41 PM: success Merge worker state - 0.001s 11:38:41 PM: success Rewriting compilation hashes - 0.001s 11:38:41 PM: success Writing page-data.json files to public directory - 0.014s - 26/26 1818.92/s 11:38:45 PM: success Building static HTML for pages - 4.353s - 26/26 5.97/s 11:38:45 PM: info [gatsby-plugin-netlify] Creating SSR/DSG redirects... 11:38:45 PM: info [gatsby-plugin-netlify] Created 0 SSR/DSG redirects... 11:38:45 PM: success onPostBuild - 0.011s 11:38:45 PM: 11:38:45 PM: Pages 11:38:45 PM: ┌ src/pages/404.js 11:38:45 PM: │ ├ /404/ 11:38:45 PM: │ └ /404.html 11:38:45 PM: ├ src/pages/about.js 11:38:45 PM: │ └ /about/ 11:38:45 PM: ├ src/pages/accountSuccess.js 11:38:45 PM: │ └ /accountSuccess/ 11:38:45 PM: ├ src/pages/cart.js 11:38:45 PM: │ └ /cart/ 11:38:45 PM: ├ src/pages/faq.js 11:38:45 PM: │ └ /faq/ 11:38:45 PM: ├ src/pages/forgot.js 11:38:45 PM: │ └ /forgot/ 11:38:45 PM: ├ src/pages/how-to-use.js 11:38:45 PM: │ └ /how-to-use/ 11:38:45 PM: ├ src/pages/index.js 11:38:45 PM: │ └ / 11:38:45 PM: ├ src/pages/login.js 11:38:45 PM: │ └ /login/ 11:38:45 PM: ├ src/pages/orderConfirm.js 11:38:45 PM: │ └ /orderConfirm/ 11:38:45 PM: ├ src/pages/search.js 11:38:45 PM: │ └ /search/ 11:38:45 PM: ├ src/pages/shop.js 11:38:45 PM: │ └ /shop/ 11:38:45 PM: ├ src/pages/shopV2.js 11:38:45 PM: │ └ /shopV2/ 11:38:45 PM: ├ src/pages/signup.js 11:38:45 PM: │ └ /signup/ 11:38:45 PM: ├ src/pages/styling.js 11:38:45 PM: │ └ /styling/ 11:38:45 PM: ├ src/pages/support.js 11:38:45 PM: │ └ /support/ 11:38:45 PM: ├ src/pages/account/address.js 11:38:45 PM: │ └ /account/address/ 11:38:45 PM: ├ src/pages/account/favorites.js 11:38:45 PM: │ └ /account/favorites/ 11:38:45 PM: ├ src/pages/account/index.js 11:38:45 PM: │ └ /account/ 11:38:45 PM: ├ src/pages/account/orders.js 11:38:45 PM: │ └ /account/orders/ 11:38:45 PM: ├ src/pages/account/settings.js 11:38:45 PM: │ └ /account/settings/ 11:38:45 PM: ├ src/pages/account/viewed.js 11:38:45 PM: │ └ /account/viewed/ 11:38:45 PM: ├ src/pages/blog/index.js 11:38:45 PM: │ └ /blog/ 11:38:45 PM: ├ src/pages/blog/sample.js 11:38:45 PM: │ └ /blog/sample/ 11:38:45 PM: └ src/pages/product/sample.js 11:38:45 PM: └ /product/sample/ 11:38:45 PM: ╭────────────────────────────────────────────────────────────────────╮ 11:38:45 PM: │ │ 11:38:45 PM: │ (SSG) Generated at build time │ 11:38:45 PM: │ D (DSG) Deferred static generation - page generated at runtime │ 11:38:45 PM: │ ∞ (SSR) Server-side renders at runtime (uses getServerData) │ 11:38:45 PM: │ λ (Function) Gatsby function │ 11:38:45 PM: │ │ 11:38:45 PM: ╰────────────────────────────────────────────────────────────────────╯ 11:38:45 PM: info Done building in 58.825944508 sec 11:38:46 PM: 11:38:46 PM: (build.command completed in 59s) 11:38:46 PM: 11:38:46 PM: ──────────────────────────────────────────────────────────────── 11:38:46 PM: 4. @netlify/plugin-gatsby (onBuild event) 11:38:46 PM: ──────────────────────────────────────────────────────────────── 11:38:46 PM: 11:38:46 PM: Skipping Gatsby Functions and SSR/DSG support 11:38:46 PM: 11:38:46 PM: (@netlify/plugin-gatsby onBuild completed in 9ms) 11:38:46 PM: 11:38:46 PM: ──────────────────────────────────────────────────────────────── 11:38:46 PM: 5. Functions bundling 11:38:46 PM: ──────────────────────────────────────────────────────────────── 11:38:46 PM: 11:38:46 PM: The Netlify Functions setting targets a non-existing directory: netlify/functions 11:38:46 PM: 11:38:46 PM: (Functions bundling completed in 3ms) 11:38:46 PM: 11:38:46 PM: ──────────────────────────────────────────────────────────────── 11:38:46 PM: 6. @netlify/plugin-gatsby (onPostBuild event) 11:38:46 PM: ──────────────────────────────────────────────────────────────── 11:38:46 PM: 11:38:47 PM: Skipping Gatsby Functions and SSR/DSG support 11:38:47 PM: 11:38:47 PM: (@netlify/plugin-gatsby onPostBuild completed in 1.4s) 11:38:47 PM: 11:38:47 PM: ──────────────────────────────────────────────────────────────── 11:38:47 PM: 7. netlify-plugin-cypress (onPostBuild event) 11:38:47 PM: ──────────────────────────────────────────────────────────────── 11:38:47 PM: 11:38:49 PM: [2557:0627/153849.751277:ERROR:zygote_host_impl_linux.cc(263)] Failed to adjust OOM score of renderer with pid 2711: Permission denied (13) 11:38:49 PM: [2711:0627/153849.770005:ERROR:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process. 11:38:49 PM: [2711:0627/153849.773016:ERROR:gpu_memory_buffer_support_x11.cc(44)] dri3 extension not supported. 11:38:52 PM: Couldn't find tsconfig.json. tsconfig-paths will be skipped 11:38:52 PM: tput: No value for $TERM and no -T specified 11:38:52 PM: ==================================================================================================== 11:38:52 PM: (Run Starting) 11:38:52 PM: ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ 11:38:52 PM: │ Cypress: 10.2.0 │ 11:38:52 PM: │ Browser: Custom Chromium 90 (headless) │ 11:38:52 PM: │ Node Version: v16.15.1 (/opt/buildhome/.nvm/versions/node/v16.15.1/bin/node) │ 11:38:52 PM: │ Specs: 1 found (basic.cy.js) │ 11:38:52 PM: │ Searched: cypress/e2e/**/*.cy.{js,jsx,ts,tsx} │ 11:38:52 PM: └────────────────────────────────────────────────────────────────────────────────────────────────┘ 11:38:52 PM: ──────────────────────────────────────────────────────────────────────────────────────────────────── 11:38:52 PM: Running: basic.cy.js (1 of 1) 11:38:56 PM: 11:38:56 PM: sample render test 11:38:58 PM: ✓ displays the title text (2517ms) 11:38:58 PM: 1 passing (3s) 11:39:00 PM: (Results) 11:39:00 PM: ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ 11:39:00 PM: │ Tests: 1 │ 11:39:00 PM: │ Passing: 1 │ 11:39:00 PM: │ Failing: 0 │ 11:39:00 PM: │ Pending: 0 │ 11:39:00 PM: │ Skipped: 0 │ 11:39:00 PM: │ Screenshots: 0 │ 11:39:00 PM: │ Video: true │ 11:39:00 PM: │ Duration: 2 seconds │ 11:39:00 PM: │ Spec Ran: basic.cy.js │ 11:39:00 PM: └────────────────────────────────────────────────────────────────────────────────────────────────┘ 11:39:00 PM: (Video) 11:39:00 PM: - Started processing: Compressing to 32 CRF 11:39:01 PM: - Finished processing: /opt/build/repo/cypress/videos/basic.cy.js.mp4 (1 second) 11:39:01 PM: tput: No value for $TERM and no -T specified 11:39:01 PM: ==================================================================================================== 11:39:01 PM: (Run Finished) 11:39:01 PM: Spec Tests Passing Failing Pending Skipped 11:39:01 PM: ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ 11:39:01 PM: Creating deploy upload records 11:39:01 PM: │ ✔ basic.cy.js 00:02 1 1 - - - │ 11:39:01 PM: └────────────────────────────────────────────────────────────────────────────────────────────────┘ 11:39:01 PM: ✔ All specs passed! 00:02 1 1 - - - 11:39:01 PM: 11:39:01 PM: (netlify-plugin-cypress onPostBuild completed in 14s) 11:39:01 PM: 11:39:01 PM: ──────────────────────────────────────────────────────────────── 11:39:01 PM: 8. Deploy site 11:39:01 PM: ──────────────────────────────────────────────────────────────── 11:39:01 PM: 11:39:01 PM: Starting to deploy site from 'public' 11:39:01 PM: Creating deploy tree 11:39:01 PM: 0 new files to upload 11:39:01 PM: 0 new functions to upload 11:39:02 PM: Starting post processing 11:39:02 PM: Incorrect TOML configuration format: Key inputs is already used as table key 11:39:02 PM: Post processing - HTML 11:39:02 PM: Incorrect TOML configuration format: Key inputs is already used as table key 11:39:03 PM: Incorrect TOML configuration format: Key inputs is already used as table key 11:39:03 PM: Post processing - header rules 11:39:03 PM: Incorrect TOML configuration format: Key inputs is already used as table key 11:39:03 PM: Post processing - redirect rules 11:39:03 PM: Incorrect TOML configuration format: Key inputs is already used as table key 11:39:03 PM: Post processing done 11:39:07 PM: Site is live ✨ 11:39:07 PM: Finished waiting for live deploy in 6.137803722s 11:39:07 PM: Site deploy was successfully initiated 11:39:07 PM: 11:39:07 PM: (Deploy site completed in 6.4s) 11:39:07 PM: 11:39:07 PM: ──────────────────────────────────────────────────────────────── 11:39:07 PM: 9. @netlify/plugin-gatsby (onSuccess event) 11:39:07 PM: ──────────────────────────────────────────────────────────────── 11:39:07 PM: 11:39:07 PM: 11:39:07 PM: (@netlify/plugin-gatsby onSuccess completed in 5ms) 11:39:07 PM: 11:39:07 PM: ──────────────────────────────────────────────────────────────── 11:39:07 PM: 10. netlify-plugin-cypress (onSuccess event) 11:39:07 PM: ──────────────────────────────────────────────────────────────── 11:39:07 PM: 11:39:07 PM: 11:39:07 PM: (netlify-plugin-cypress onSuccess completed in 6ms) 11:39:08 PM: 11:39:08 PM: ──────────────────────────────────────────────────────────────── 11:39:08 PM: Netlify Build Complete 11:39:08 PM: ──────────────────────────────────────────────────────────────── 11:39:08 PM: 11:39:08 PM: (Netlify Build completed in 1m 29.4s) 11:39:08 PM: Caching artifacts 11:39:08 PM: Started saving node modules 11:39:08 PM: Finished saving node modules 11:39:08 PM: Started saving build plugins 11:39:08 PM: Finished saving build plugins 11:39:08 PM: Started saving pip cache 11:39:08 PM: Finished saving pip cache 11:39:08 PM: Started saving emacs cask dependencies 11:39:08 PM: Finished saving emacs cask dependencies 11:39:08 PM: Started saving maven dependencies 11:39:08 PM: Finished saving maven dependencies 11:39:08 PM: Started saving boot dependencies 11:39:08 PM: Finished saving boot dependencies 11:39:08 PM: Started saving rust rustup cache 11:39:08 PM: Finished saving rust rustup cache 11:39:08 PM: Started saving go dependencies 11:39:08 PM: Finished saving go dependencies 11:39:10 PM: Build script success 11:39:10 PM: Pushing to repository git@github.com:Lhagawajaw/hymd-baraa 11:40:32 PM: Finished processing build request in 4m30.278982258s
v9l9
[21Sep2020 05:55:44.354] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--username, V9l9, --version, 1.16.3-forge-34.0.9, --gameDir, C:\Users\Lenovo\AppData\Roaming\.minecraft, --assetsDir, C:\Users\Lenovo\AppData\Roaming\.minecraft\assets, --assetIndex, 1.16, --uuid, 1165d438a45a4585ac728e78d6848fbb, --accessToken, ????????, --userType, mojang, --versionType, release, --launchTarget, fmlclient, --fml.forgeVersion, 34.0.9, --fml.mcVersion, 1.16.3, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20200911.084530] [21Sep2020 05:55:44.359] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 7.0.1+78+master.e9771d8 starting: java version 1.8.0_51 by Oracle Corporation [21Sep2020 05:55:44.378] [main/DEBUG] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Found launch services [minecraft,testharness,fmlclient,fmlserver] [21Sep2020 05:55:44.394] [main/DEBUG] [cpw.mods.modlauncher.NameMappingServiceHandler/MODLAUNCHER]: Found naming services : [] [21Sep2020 05:55:44.475] [main/DEBUG] [cpw.mods.modlauncher.LaunchPluginHandler/MODLAUNCHER]: Found launch plugins: [mixin,eventbus,object_holder_definalize,runtime_enum_extender,accesstransformer,capability_inject_definalize,runtimedistcleaner] [21Sep2020 05:55:44.491] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Discovering transformation services [21Sep2020 05:55:44.515] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Found additional transformation services from discovery services: [] [21Sep2020 05:55:44.604] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Found transformer services : [mixin,fml] [21Sep2020 05:55:44.605] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Transformation services loading [21Sep2020 05:55:44.606] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Loading service mixin [21Sep2020 05:55:44.606] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Loaded service mixin [21Sep2020 05:55:44.606] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Loading service fml [21Sep2020 05:55:44.606] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/]: Injecting tracing printstreams for STDOUT/STDERR. [21Sep2020 05:55:44.610] [main/DEBUG] [net.minecraftforge.fml.loading.LauncherVersion/CORE]: Found FMLLauncher version 34.0 [21Sep2020 05:55:44.610] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML 34.0 loading [21Sep2020 05:55:44.610] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML found ModLauncher version : 7.0.1+78+master.e9771d8 [21Sep2020 05:55:44.611] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Initializing modjar URL handler [21Sep2020 05:55:44.611] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML found AccessTransformer version : 2.2.0+57+master.16c1bdb [21Sep2020 05:55:44.612] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML found EventBus version : 3.0.3+63+master.b6b4769 [21Sep2020 05:55:44.612] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Found Runtime Dist Cleaner [21Sep2020 05:55:44.617] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML found CoreMod version : 3.0.0+9+master.3817658 [21Sep2020 05:55:44.618] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Found ForgeSPI package implementation version 3.1.1+12+master.3ce14ad [21Sep2020 05:55:44.618] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Found ForgeSPI package specification 3 [21Sep2020 05:55:45.372] [main/INFO] [net.minecraftforge.fml.loading.FixSSL/CORE]: Added Lets Encrypt root certificates as additional trust [21Sep2020 05:55:45.372] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Loaded service fml [21Sep2020 05:55:45.375] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Configuring option handling for services [21Sep2020 05:55:45.386] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Transformation services initializing [21Sep2020 05:55:45.386] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initializing transformation service mixin [21Sep2020 05:55:45.389] [main/DEBUG] [mixin/]: Mixin bootstrap service org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapperBootstrap is not available: LaunchWrapper is not available [21Sep2020 05:55:45.396] [main/DEBUG] [mixin/]: MixinService [ModLauncher] was successfully booted in sun.misc.Launcher$AppClassLoader@4554617c [21Sep2020 05:55:45.429] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.1 Source=file:/C:/Users/Lenovo/AppData/Roaming/.minecraft/libraries/org/spongepowered/mixin/0.8.1/mixin-0.8.1.jar Service=ModLauncher Env=CLIENT [21Sep2020 05:55:45.431] [main/DEBUG] [mixin/]: Initialising Mixin Platform Manager [21Sep2020 05:55:45.432] [main/DEBUG] [mixin/]: Adding mixin platform agents for container ModLauncher Root Container(4f56a0a2) [21Sep2020 05:55:45.433] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentMinecraftForge for ModLauncher Root Container(4f56a0a2) [21Sep2020 05:55:45.433] [main/DEBUG] [mixin/]: MixinPlatformAgentMinecraftForge rejected container ModLauncher Root Container(4f56a0a2) [21Sep2020 05:55:45.434] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentDefault for ModLauncher Root Container(4f56a0a2) [21Sep2020 05:55:45.434] [main/DEBUG] [mixin/]: MixinPlatformAgentDefault accepted container ModLauncher Root Container(4f56a0a2) [21Sep2020 05:55:45.437] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initialized transformation service mixin [21Sep2020 05:55:45.437] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initializing transformation service fml [21Sep2020 05:55:45.437] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Setting up basic FML game directories [21Sep2020 05:55:45.439] [main/DEBUG] [net.minecraftforge.fml.loading.FileUtils/CORE]: Found existing GAMEDIR directory : C:\Users\Lenovo\AppData\Roaming\.minecraft [21Sep2020 05:55:45.439] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path GAMEDIR is C:\Users\Lenovo\AppData\Roaming\.minecraft [21Sep2020 05:55:45.440] [main/DEBUG] [net.minecraftforge.fml.loading.FileUtils/CORE]: Found existing MODSDIR directory : C:\Users\Lenovo\AppData\Roaming\.minecraft\mods [21Sep2020 05:55:45.440] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path MODSDIR is C:\Users\Lenovo\AppData\Roaming\.minecraft\mods [21Sep2020 05:55:45.441] [main/DEBUG] [net.minecraftforge.fml.loading.FileUtils/CORE]: Found existing CONFIGDIR directory : C:\Users\Lenovo\AppData\Roaming\.minecraft\config [21Sep2020 05:55:45.441] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path CONFIGDIR is C:\Users\Lenovo\AppData\Roaming\.minecraft\config [21Sep2020 05:55:45.441] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path FMLCONFIG is C:\Users\Lenovo\AppData\Roaming\.minecraft\config\fml.toml [21Sep2020 05:55:45.441] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Loading configuration [21Sep2020 05:55:45.491] [main/DEBUG] [net.minecraftforge.fml.loading.FileUtils/CORE]: Found existing default config directory directory : C:\Users\Lenovo\AppData\Roaming\.minecraft\defaultconfigs [21Sep2020 05:55:45.491] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Preparing ModFile [21Sep2020 05:55:45.495] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Preparing launch handler [21Sep2020 05:55:45.495] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Using fmlclient as launch service [21Sep2020 05:55:46.483] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: Received command line version data : MC Version: '1.16.3' MCP Version: '20200911.084530' Forge Version: '34.0.9' Forge group: 'net.minecraftforge' [21Sep2020 05:55:46.485] [main/DEBUG] [net.minecraftforge.fml.loading.LibraryFinder/CORE]: Found JAR asm at path C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\7.2\asm-7.2.jar [21Sep2020 05:55:46.485] [main/DEBUG] [net.minecraftforge.fml.loading.LibraryFinder/CORE]: Found probable library path C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries [21Sep2020 05:55:46.486] [main/DEBUG] [net.minecraftforge.fml.loading.LibraryFinder/CORE]: Found forge path C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar is present [21Sep2020 05:55:46.487] [main/DEBUG] [net.minecraftforge.fml.loading.LibraryFinder/CORE]: SRG MC at C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.16.3-20200911.084530\client-1.16.3-20200911.084530-srg.jar is present [21Sep2020 05:55:46.487] [main/DEBUG] [net.minecraftforge.fml.loading.LibraryFinder/CORE]: MC Extras at C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.16.3-20200911.084530\client-1.16.3-20200911.084530-extra.jar is present [21Sep2020 05:55:46.488] [main/DEBUG] [net.minecraftforge.fml.loading.LibraryFinder/CORE]: Forge patches at C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-client.jar is present [21Sep2020 05:55:46.494] [main/DEBUG] [net.minecraftforge.fml.loading.LanguageLoadingProvider/CORE]: Found 0 language providers [21Sep2020 05:55:46.495] [main/DEBUG] [net.minecraftforge.fml.loading.LanguageLoadingProvider/CORE]: Adding forge as a language from C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar [21Sep2020 05:55:46.498] [main/DEBUG] [net.minecraftforge.fml.loading.LanguageLoadingProvider/CORE]: Adding file:/C:/Users/Lenovo/AppData/Roaming/.minecraft/libraries/net/minecraftforge/forge/1.16.3-34.0.9/forge-1.16.3-34.0.9-universal.jar to languageloader classloader [21Sep2020 05:55:46.541] [main/DEBUG] [net.minecraftforge.fml.loading.LanguageLoadingProvider/CORE]: Found 2 language providers [21Sep2020 05:55:46.542] [main/DEBUG] [net.minecraftforge.fml.loading.LanguageLoadingProvider/CORE]: Found language provider javafml, version 34.0 [21Sep2020 05:55:46.549] [main/DEBUG] [net.minecraftforge.fml.loading.LanguageLoadingProvider/CORE]: Found language provider minecraft, version 1 [21Sep2020 05:55:46.554] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initialized transformation service fml [21Sep2020 05:55:46.554] [main/DEBUG] [cpw.mods.modlauncher.NameMappingServiceHandler/MODLAUNCHER]: Current naming domain is 'srg' [21Sep2020 05:55:46.555] [main/DEBUG] [cpw.mods.modlauncher.NameMappingServiceHandler/MODLAUNCHER]: Identified name mapping providers {} [21Sep2020 05:55:46.555] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Transformation services begin scanning [21Sep2020 05:55:46.556] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Beginning scan trigger - transformation service mixin [21Sep2020 05:55:46.556] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: End scan trigger - transformation service mixin [21Sep2020 05:55:46.557] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Beginning scan trigger - transformation service fml [21Sep2020 05:55:46.557] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Initiating mod scan [21Sep2020 05:55:46.632] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModListHandler/CORE]: Found mod coordinates from lists: [] [21Sep2020 05:55:46.686] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModDiscoverer/CORE]: Found Mod Locators : (mods folder:null),(maven libs:null),(exploded directory:null),(minecraft:null) [21Sep2020 05:55:46.747] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\ironchest-1.16.2-11.1.5.jar [21Sep2020 05:55:46.805] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileInfo/LOADING]: Found valid mod file ironchest-1.16.2-11.1.5.jar with {ironchest} mods - versions {1.16.2-11.1.5} [21Sep2020 05:55:46.806] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFile/LOADING]: Loading mod file C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\ironchest-1.16.2-11.1.5.jar with language javafml [21Sep2020 05:55:46.808] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\SmartMoving-1.8.9-16.3.jar [21Sep2020 05:55:46.808] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file Mod File: C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\SmartMoving-1.8.9-16.3.jar is missing mods.toml file [21Sep2020 05:55:46.808] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModDiscoverer/SCAN]: File C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\SmartMoving-1.8.9-16.3.jar has been ignored - it is invalid [21Sep2020 05:55:46.810] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar [21Sep2020 05:55:46.811] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileInfo/LOADING]: Found valid mod file forge-1.16.3-34.0.9-universal.jar with {forge} mods - versions {34.0.9} [21Sep2020 05:55:46.816] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFile/LOADING]: Loading mod file C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar with language javafml [21Sep2020 05:55:46.878] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Found coremod fieldtomethodtransformers with Javascript path META-INF/fieldtomethodtransformers.js [21Sep2020 05:55:46.879] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFile/LOADING]: Found coremod META-INF/fieldtomethodtransformers.js [21Sep2020 05:55:46.879] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-client.jar [21Sep2020 05:55:46.901] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileInfo/LOADING]: Found valid mod file forge-1.16.3-34.0.9-client.jar with {minecraft} mods - versions {1.16.3} [21Sep2020 05:55:46.901] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFile/LOADING]: Loading mod file C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-client.jar with language minecraft [21Sep2020 05:55:46.923] [main/DEBUG] [net.minecraftforge.fml.loading.ModSorter/LOADING]: Found 1 mandatory requirements [21Sep2020 05:55:46.924] [main/DEBUG] [net.minecraftforge.fml.loading.ModSorter/LOADING]: Found 0 mandatory mod requirements missing [21Sep2020 05:55:47.558] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: End scan trigger - transformation service fml [21Sep2020 05:55:47.558] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Transformation services loading transformers [21Sep2020 05:55:47.559] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initializing transformers for transformation service mixin [21Sep2020 05:55:47.560] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initialized transformers for transformation service mixin [21Sep2020 05:55:47.560] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initializing transformers for transformation service fml [21Sep2020 05:55:47.560] [main/DEBUG] [net.minecraftforge.fml.loading.FMLServiceProvider/CORE]: Loading coremod transformers [21Sep2020 05:55:47.561] [main/DEBUG] [net.minecraftforge.coremod.CoreModEngine/COREMOD]: Loading CoreMod from META-INF/fieldtomethodtransformers.js [21Sep2020 05:55:47.779] [main/DEBUG] [net.minecraftforge.coremod.CoreModEngine/COREMOD]: CoreMod loaded successfully [21Sep2020 05:55:47.787] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@7bd69e82 to Target : CLASS {Lnet/minecraft/potion/EffectInstance;} {} {V} [21Sep2020 05:55:47.788] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@3aaf4f07 to Target : CLASS {Lnet/minecraft/block/FlowingFluidBlock;} {} {V} [21Sep2020 05:55:47.788] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@5cbf9e9f to Target : CLASS {Lnet/minecraft/item/BucketItem;} {} {V} [21Sep2020 05:55:47.788] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@18e8473e to Target : CLASS {Lnet/minecraft/block/StairsBlock;} {} {V} [21Sep2020 05:55:47.789] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@5a2f016d to Target : CLASS {Lnet/minecraft/block/FlowerPotBlock;} {} {V} [21Sep2020 05:55:47.789] [main/DEBUG] [cpw.mods.modlauncher.TransformStore/MODLAUNCHER]: Adding transformer net.minecraftforge.coremod.transformer.CoreModClassTransformer@1a38ba58 to Target : CLASS {Lnet/minecraft/item/FishBucketItem;} {} {V} [21Sep2020 05:55:47.789] [main/DEBUG] [cpw.mods.modlauncher.TransformationServiceDecorator/MODLAUNCHER]: Initialized transformers for transformation service fml [21Sep2020 05:55:47.825] [main/DEBUG] [mixin/]: Processing prepare() for PlatformAgent[MixinPlatformAgentDefault:ModLauncher Root Container(4f56a0a2)] [21Sep2020 05:55:47.825] [main/DEBUG] [mixin/]: Processing launch tasks for PlatformAgent[MixinPlatformAgentDefault:ModLauncher Root Container(4f56a0a2)] [21Sep2020 05:55:47.825] [main/DEBUG] [mixin/]: Adding mixin platform agents for container ContainerHandleModLauncher.Resource(ironchest-1.16.2-11.1.5.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\ironchest-1.16.2-11.1.5.jar) [21Sep2020 05:55:47.825] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentMinecraftForge for ContainerHandleModLauncher.Resource(ironchest-1.16.2-11.1.5.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\ironchest-1.16.2-11.1.5.jar) [21Sep2020 05:55:47.825] [main/DEBUG] [mixin/]: MixinPlatformAgentMinecraftForge rejected container ContainerHandleModLauncher.Resource(ironchest-1.16.2-11.1.5.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\ironchest-1.16.2-11.1.5.jar) [21Sep2020 05:55:47.826] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentDefault for ContainerHandleModLauncher.Resource(ironchest-1.16.2-11.1.5.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\ironchest-1.16.2-11.1.5.jar) [21Sep2020 05:55:47.826] [main/DEBUG] [mixin/]: MixinPlatformAgentDefault accepted container ContainerHandleModLauncher.Resource(ironchest-1.16.2-11.1.5.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\ironchest-1.16.2-11.1.5.jar) [21Sep2020 05:55:47.826] [main/DEBUG] [mixin/]: Processing prepare() for PlatformAgent[MixinPlatformAgentDefault:ContainerHandleModLauncher.Resource(ironchest-1.16.2-11.1.5.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\ironchest-1.16.2-11.1.5.jar)] [21Sep2020 05:55:47.826] [main/DEBUG] [mixin/]: Adding mixin platform agents for container ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-universal.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar) [21Sep2020 05:55:47.826] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentMinecraftForge for ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-universal.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar) [21Sep2020 05:55:47.826] [main/DEBUG] [mixin/]: MixinPlatformAgentMinecraftForge rejected container ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-universal.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar) [21Sep2020 05:55:47.826] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentDefault for ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-universal.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar) [21Sep2020 05:55:47.826] [main/DEBUG] [mixin/]: MixinPlatformAgentDefault accepted container ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-universal.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar) [21Sep2020 05:55:47.826] [main/DEBUG] [mixin/]: Processing prepare() for PlatformAgent[MixinPlatformAgentDefault:ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-universal.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar)] [21Sep2020 05:55:47.827] [main/DEBUG] [mixin/]: Adding mixin platform agents for container ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-client.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-client.jar) [21Sep2020 05:55:47.827] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentMinecraftForge for ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-client.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-client.jar) [21Sep2020 05:55:47.827] [main/DEBUG] [mixin/]: MixinPlatformAgentMinecraftForge rejected container ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-client.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-client.jar) [21Sep2020 05:55:47.827] [main/DEBUG] [mixin/]: Instancing new MixinPlatformAgentDefault for ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-client.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-client.jar) [21Sep2020 05:55:47.827] [main/DEBUG] [mixin/]: MixinPlatformAgentDefault accepted container ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-client.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-client.jar) [21Sep2020 05:55:47.827] [main/DEBUG] [mixin/]: Processing prepare() for PlatformAgent[MixinPlatformAgentDefault:ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-client.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-client.jar)] [21Sep2020 05:55:47.827] [main/DEBUG] [mixin/]: inject() running with 4 agents [21Sep2020 05:55:47.828] [main/DEBUG] [mixin/]: Processing inject() for PlatformAgent[MixinPlatformAgentDefault:ModLauncher Root Container(4f56a0a2)] [21Sep2020 05:55:47.828] [main/DEBUG] [mixin/]: Processing inject() for PlatformAgent[MixinPlatformAgentDefault:ContainerHandleModLauncher.Resource(ironchest-1.16.2-11.1.5.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\ironchest-1.16.2-11.1.5.jar)] [21Sep2020 05:55:47.828] [main/DEBUG] [mixin/]: Processing inject() for PlatformAgent[MixinPlatformAgentDefault:ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-universal.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar)] [21Sep2020 05:55:47.828] [main/DEBUG] [mixin/]: Processing inject() for PlatformAgent[MixinPlatformAgentDefault:ContainerHandleModLauncher.Resource(forge-1.16.3-34.0.9-client.jar:C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-client.jar)] [21Sep2020 05:55:47.828] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'fmlclient' with arguments [--version, 1.16.3-forge-34.0.9, --gameDir, C:\Users\Lenovo\AppData\Roaming\.minecraft, --assetsDir, C:\Users\Lenovo\AppData\Roaming\.minecraft\assets, --uuid, 1165d438a45a4585ac728e78d6848fbb, --username, V9l9, --assetIndex, 1.16, --accessToken, ????????, --userType, mojang, --versionType, release] [21Sep2020 05:55:47.936] [main/DEBUG] [mixin/]: Error cleaning class output directory: .mixin.out\class: failed to delete one or more files; see suppressed exceptions for details [21Sep2020 05:55:47.953] [main/DEBUG] [mixin/]: Preparing mixins for MixinEnvironment[DEFAULT] [21Sep2020 05:55:48.965] [pool-3-thread-1/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/block/FlowingFluidBlock [21Sep2020 05:55:49.119] [pool-3-thread-1/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/block/StairsBlock [21Sep2020 05:55:49.283] [pool-3-thread-1/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/block/FlowerPotBlock [21Sep2020 05:55:55.454] [pool-3-thread-1/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/item/BucketItem [21Sep2020 05:55:55.465] [pool-3-thread-1/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/item/FishBucketItem [21Sep2020 05:55:55.730] [pool-3-thread-1/DEBUG] [net.minecraftforge.coremod.transformer.CoreModBaseTransformer/COREMOD]: Transforming net/minecraft/potion/EffectInstance [21Sep2020 05:55:57.884] [Render thread/INFO] [com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService/]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', name='PROD' [21Sep2020 05:55:57.892] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Setting user: V9l9 [21Sep2020 05:55:58.128] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Backend library: LWJGL version 3.2.2 build 10 [21Sep2020 05:55:59.294] [Render thread/DEBUG] [net.minecraftforge.fml.ForgeI18n/CORE]: Loading I18N data entries: 4931 [21Sep2020 05:55:59.518] [Render thread/DEBUG] [net.minecraftforge.fml.ModLoader/CORE]: Loading Network data for FML net version: FML2 [21Sep2020 05:55:59.524] [Render thread/DEBUG] [net.minecraftforge.fml.ModWorkManager/LOADING]: Using 4 threads for parallel mod-loading [21Sep2020 05:55:59.603] [Render thread/DEBUG] [net.minecraftforge.fml.ModLoader/LOADING]: ModContainer is cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 [21Sep2020 05:55:59.608] [Render thread/DEBUG] [net.minecraftforge.fml.ModLoader/LOADING]: ModContainer is cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 [21Sep2020 05:55:59.609] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider/LOADING]: Loading FMLModContainer from classloader cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 - got cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 [21Sep2020 05:55:59.610] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for net.minecraftforge.common.ForgeMod with classLoader cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 & cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 [21Sep2020 05:55:59.643] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded modclass net.minecraftforge.common.ForgeMod with cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 [21Sep2020 05:55:59.643] [Render thread/DEBUG] [net.minecraftforge.fml.ModLoader/LOADING]: ModContainer is cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 [21Sep2020 05:55:59.643] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider/LOADING]: Loading FMLModContainer from classloader cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 - got cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 [21Sep2020 05:55:59.643] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for com.progwml6.ironchest.IronChests with classLoader cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 & cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 [21Sep2020 05:55:59.646] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded modclass com.progwml6.ironchest.IronChests with cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 [21Sep2020 05:55:59.783] [modloading-worker-2/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loading mod instance forge of type net.minecraftforge.common.ForgeMod [21Sep2020 05:55:59.783] [modloading-worker-2/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Forge Version package package net.minecraftforge.versions.forge, Forge, version 34.0 from cpw.mods.modlauncher.TransformingClassLoader@7e8e8651 [21Sep2020 05:55:59.783] [modloading-worker-2/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge version 34.0.9 [21Sep2020 05:55:59.783] [modloading-worker-2/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge spec 34.0 [21Sep2020 05:55:59.783] [modloading-worker-2/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge group net.minecraftforge [21Sep2020 05:55:59.785] [modloading-worker-2/DEBUG] [net.minecraftforge.versions.mcp.MCPVersion/CORE]: Found MC version information 1.16.3 [21Sep2020 05:55:59.785] [modloading-worker-2/DEBUG] [net.minecraftforge.versions.mcp.MCPVersion/CORE]: Found MCP version information 20200911.084530 [21Sep2020 05:55:59.785] [modloading-worker-2/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 34.0.9, for MC 1.16.3 with MCP 20200911.084530 [21Sep2020 05:55:59.786] [modloading-worker-2/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v34.0.9 Initialized [21Sep2020 05:55:59.792] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loading mod instance ironchest of type com.progwml6.ironchest.IronChests [21Sep2020 05:55:59.981] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded mod instance ironchest of type com.progwml6.ironchest.IronChests [21Sep2020 05:55:59.981] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Injecting Automatic event subscribers for ironchest [21Sep2020 05:55:59.985] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for ironchest [21Sep2020 05:55:59.989] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.AutomaticEventSubscriber/LOADING]: Auto-subscribing com.progwml6.ironchest.client.tileentity.IronChestsModels to MOD [21Sep2020 05:56:00.030] [modloading-worker-2/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file forge-client.toml for forge tracking [21Sep2020 05:56:00.030] [modloading-worker-2/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file forge-server.toml for forge tracking [21Sep2020 05:56:00.076] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Completed Automatic event subscribers for ironchest [21Sep2020 05:56:00.076] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : FMLConstructModEvent [21Sep2020 05:56:00.077] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : FMLConstructModEvent [21Sep2020 05:56:00.126] [modloading-worker-2/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded mod instance forge of type net.minecraftforge.common.ForgeMod [21Sep2020 05:56:00.126] [modloading-worker-2/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Injecting Automatic event subscribers for forge [21Sep2020 05:56:00.126] [modloading-worker-2/DEBUG] [net.minecraftforge.fml.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for forge [21Sep2020 05:56:00.127] [modloading-worker-2/DEBUG] [net.minecraftforge.fml.AutomaticEventSubscriber/LOADING]: Auto-subscribing net.minecraftforge.client.model.ModelDataManager to FORGE [21Sep2020 05:56:00.129] [modloading-worker-2/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Completed Automatic event subscribers for forge [21Sep2020 05:56:00.129] [modloading-worker-2/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : FMLConstructModEvent [21Sep2020 05:56:00.129] [modloading-worker-2/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : FMLConstructModEvent [21Sep2020 05:56:00.150] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.NewRegistry [21Sep2020 05:56:00.151] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.NewRegistry [21Sep2020 05:56:00.151] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.NewRegistry [21Sep2020 05:56:00.151] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.NewRegistry [21Sep2020 05:56:00.231] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:block> [21Sep2020 05:56:00.231] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:block> [21Sep2020 05:56:00.232] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:block> [21Sep2020 05:56:00.265] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:block> [21Sep2020 05:56:00.267] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:item> [21Sep2020 05:56:00.282] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:item> [21Sep2020 05:56:00.298] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:item> [21Sep2020 05:56:00.350] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:item> [21Sep2020 05:56:00.615] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<forge:loot_modifier_serializers> [21Sep2020 05:56:00.615] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<forge:loot_modifier_serializers> [21Sep2020 05:56:00.616] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<forge:loot_modifier_serializers> [21Sep2020 05:56:00.616] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<forge:loot_modifier_serializers> [21Sep2020 05:56:00.617] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:activity> [21Sep2020 05:56:00.617] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:activity> [21Sep2020 05:56:00.618] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:activity> [21Sep2020 05:56:00.618] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:activity> [21Sep2020 05:56:00.619] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:attribute> [21Sep2020 05:56:00.619] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:attribute> [21Sep2020 05:56:00.619] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:attribute> [21Sep2020 05:56:00.619] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:attribute> [21Sep2020 05:56:00.620] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:block_entity_type> [21Sep2020 05:56:00.620] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:block_entity_type> [21Sep2020 05:56:00.621] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:block_entity_type> [21Sep2020 05:56:00.623] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:block_entity_type> [21Sep2020 05:56:00.624] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:chunk_status> [21Sep2020 05:56:00.624] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:chunk_status> [21Sep2020 05:56:00.624] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:chunk_status> [21Sep2020 05:56:00.625] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:chunk_status> [21Sep2020 05:56:00.625] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:data_serializers> [21Sep2020 05:56:00.625] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:data_serializers> [21Sep2020 05:56:00.626] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:data_serializers> [21Sep2020 05:56:00.626] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:data_serializers> [21Sep2020 05:56:00.627] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:enchantment> [21Sep2020 05:56:00.627] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:enchantment> [21Sep2020 05:56:00.627] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:enchantment> [21Sep2020 05:56:00.627] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:enchantment> [21Sep2020 05:56:00.628] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:entity_type> [21Sep2020 05:56:00.628] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:entity_type> [21Sep2020 05:56:00.628] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:entity_type> [21Sep2020 05:56:00.628] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:entity_type> [21Sep2020 05:56:00.629] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:fluid> [21Sep2020 05:56:00.629] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:fluid> [21Sep2020 05:56:00.629] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:fluid> [21Sep2020 05:56:00.629] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:fluid> [21Sep2020 05:56:00.630] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:memory_module_type> [21Sep2020 05:56:00.630] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:memory_module_type> [21Sep2020 05:56:00.631] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:memory_module_type> [21Sep2020 05:56:00.632] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:memory_module_type> [21Sep2020 05:56:00.632] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:menu> [21Sep2020 05:56:00.632] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:menu> [21Sep2020 05:56:00.633] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:menu> [21Sep2020 05:56:00.635] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:menu> [21Sep2020 05:56:00.636] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:mob_effect> [21Sep2020 05:56:00.636] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:mob_effect> [21Sep2020 05:56:00.636] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:mob_effect> [21Sep2020 05:56:00.637] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:mob_effect> [21Sep2020 05:56:00.637] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:motive> [21Sep2020 05:56:00.637] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:motive> [21Sep2020 05:56:00.637] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:motive> [21Sep2020 05:56:00.637] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:motive> [21Sep2020 05:56:00.638] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:particle_type> [21Sep2020 05:56:00.638] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:particle_type> [21Sep2020 05:56:00.638] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:particle_type> [21Sep2020 05:56:00.638] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:particle_type> [21Sep2020 05:56:00.639] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:point_of_interest_type> [21Sep2020 05:56:00.639] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:point_of_interest_type> [21Sep2020 05:56:00.639] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:point_of_interest_type> [21Sep2020 05:56:00.639] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:point_of_interest_type> [21Sep2020 05:56:00.639] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:potion> [21Sep2020 05:56:00.639] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:potion> [21Sep2020 05:56:00.640] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:potion> [21Sep2020 05:56:00.640] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:potion> [21Sep2020 05:56:00.640] [Render thread/DEBUG] [net.minecraftforge.registries.ObjectHolderRef/]: Unable to lookup forge:conditional for public static net.minecraft.item.crafting.IRecipeSerializer net.minecraftforge.common.crafting.ConditionalRecipe.SERIALZIER. This means the object wasn't registered. It's likely just mod options. [21Sep2020 05:56:00.641] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:recipe_serializer> [21Sep2020 05:56:00.672] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:recipe_serializer> [21Sep2020 05:56:00.731] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:recipe_serializer> [21Sep2020 05:56:00.731] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:recipe_serializer> [21Sep2020 05:56:00.731] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:schedule> [21Sep2020 05:56:00.731] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:schedule> [21Sep2020 05:56:00.732] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:schedule> [21Sep2020 05:56:00.732] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:schedule> [21Sep2020 05:56:00.732] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:sensor_type> [21Sep2020 05:56:00.732] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:sensor_type> [21Sep2020 05:56:00.732] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:sensor_type> [21Sep2020 05:56:00.732] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:sensor_type> [21Sep2020 05:56:00.733] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:sound_event> [21Sep2020 05:56:00.733] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:sound_event> [21Sep2020 05:56:00.734] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:sound_event> [21Sep2020 05:56:00.734] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:sound_event> [21Sep2020 05:56:00.735] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:stat_type> [21Sep2020 05:56:00.735] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:stat_type> [21Sep2020 05:56:00.735] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:stat_type> [21Sep2020 05:56:00.735] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:stat_type> [21Sep2020 05:56:00.735] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:villager_profession> [21Sep2020 05:56:00.735] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:villager_profession> [21Sep2020 05:56:00.736] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:villager_profession> [21Sep2020 05:56:00.736] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:villager_profession> [21Sep2020 05:56:00.736] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:worldgen/biome> [21Sep2020 05:56:00.736] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:worldgen/biome> [21Sep2020 05:56:00.736] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/biome> [21Sep2020 05:56:00.736] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/biome> [21Sep2020 05:56:00.736] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:worldgen/block_placer_type> [21Sep2020 05:56:00.736] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:worldgen/block_placer_type> [21Sep2020 05:56:00.737] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/block_placer_type> [21Sep2020 05:56:00.737] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/block_placer_type> [21Sep2020 05:56:00.737] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:worldgen/block_state_provider_type> [21Sep2020 05:56:00.737] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:worldgen/block_state_provider_type> [21Sep2020 05:56:00.737] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/block_state_provider_type> [21Sep2020 05:56:00.737] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/block_state_provider_type> [21Sep2020 05:56:00.738] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:worldgen/carver> [21Sep2020 05:56:00.738] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:worldgen/carver> [21Sep2020 05:56:00.738] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/carver> [21Sep2020 05:56:00.738] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/carver> [21Sep2020 05:56:00.738] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:worldgen/decorator> [21Sep2020 05:56:00.738] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:worldgen/decorator> [21Sep2020 05:56:00.738] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/decorator> [21Sep2020 05:56:00.739] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/decorator> [21Sep2020 05:56:00.739] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:worldgen/feature> [21Sep2020 05:56:00.739] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:worldgen/feature> [21Sep2020 05:56:00.739] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/feature> [21Sep2020 05:56:00.739] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/feature> [21Sep2020 05:56:00.739] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:worldgen/foliage_placer_type> [21Sep2020 05:56:00.739] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:worldgen/foliage_placer_type> [21Sep2020 05:56:00.740] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/foliage_placer_type> [21Sep2020 05:56:00.740] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/foliage_placer_type> [21Sep2020 05:56:00.740] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:worldgen/structure_feature> [21Sep2020 05:56:00.740] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:worldgen/structure_feature> [21Sep2020 05:56:00.740] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/structure_feature> [21Sep2020 05:56:00.740] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/structure_feature> [21Sep2020 05:56:00.740] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:worldgen/surface_builder> [21Sep2020 05:56:00.740] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:worldgen/surface_builder> [21Sep2020 05:56:00.741] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/surface_builder> [21Sep2020 05:56:00.741] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/surface_builder> [21Sep2020 05:56:00.741] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : RegistryEvent.Register<minecraft:worldgen/tree_decorator_type> [21Sep2020 05:56:00.741] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : RegistryEvent.Register<minecraft:worldgen/tree_decorator_type> [21Sep2020 05:56:00.741] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/tree_decorator_type> [21Sep2020 05:56:00.741] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : RegistryEvent.Register<minecraft:worldgen/tree_decorator_type> [21Sep2020 05:56:01.017] [Render thread/DEBUG] [net.minecraftforge.fml.client.ClientModLoader/CORE]: Generating PackInfo named mod:forge for mod file C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.16.3-34.0.9\forge-1.16.3-34.0.9-universal.jar [21Sep2020 05:56:01.017] [Render thread/DEBUG] [net.minecraftforge.fml.client.ClientModLoader/CORE]: Generating PackInfo named mod:ironchest for mod file C:\Users\Lenovo\AppData\Roaming\.minecraft\mods\ironchest-1.16.2-11.1.5.jar [21Sep2020 05:56:01.098] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.sound.SoundLoadEvent@1e86a5a7 [21Sep2020 05:56:01.099] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.sound.SoundLoadEvent@1e86a5a7 [21Sep2020 05:56:01.099] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.sound.SoundLoadEvent@1e86a5a7 [21Sep2020 05:56:01.099] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.sound.SoundLoadEvent@1e86a5a7 [21Sep2020 05:56:01.277] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.ColorHandlerEvent$Block@65a48602 [21Sep2020 05:56:01.277] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.ColorHandlerEvent$Block@65a48602 [21Sep2020 05:56:01.278] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.ColorHandlerEvent$Block@65a48602 [21Sep2020 05:56:01.278] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.ColorHandlerEvent$Block@65a48602 [21Sep2020 05:56:01.282] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.ColorHandlerEvent$Item@1a865273 [21Sep2020 05:56:01.282] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.ColorHandlerEvent$Item@1a865273 [21Sep2020 05:56:01.282] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.ColorHandlerEvent$Item@1a865273 [21Sep2020 05:56:01.282] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.ColorHandlerEvent$Item@1a865273 [21Sep2020 05:56:02.442] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.ParticleFactoryRegisterEvent@de7e193 [21Sep2020 05:56:02.443] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.ParticleFactoryRegisterEvent@de7e193 [21Sep2020 05:56:02.443] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.ParticleFactoryRegisterEvent@de7e193 [21Sep2020 05:56:02.443] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.ParticleFactoryRegisterEvent@de7e193 [21Sep2020 05:56:02.497] [Render thread/INFO] [com.mojang.text2speech.NarratorWindows/]: Narrator library for x64 successfully loaded [21Sep2020 05:56:02.731] [Render thread/INFO] [net.minecraft.resources.SimpleReloadableResourceManager/]: Reloading ResourceManager: Mod Resources, Default [21Sep2020 05:56:02.743] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Loading configs type CLIENT [21Sep2020 05:56:02.746] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.config.ConfigFileTypeHandler/CONFIG]: Built TOML config for C:\Users\Lenovo\AppData\Roaming\.minecraft\config\forge-client.toml [21Sep2020 05:56:02.747] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.config.ConfigFileTypeHandler/CONFIG]: Loaded TOML config file C:\Users\Lenovo\AppData\Roaming\.minecraft\config\forge-client.toml [21Sep2020 05:56:02.761] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.config.ConfigFileTypeHandler/CONFIG]: Watching TOML config file C:\Users\Lenovo\AppData\Roaming\.minecraft\config\forge-client.toml for changes [21Sep2020 05:56:02.763] [modloading-worker-1/DEBUG] [net.minecraftforge.common.ForgeConfig/FORGEMOD]: Loaded forge config file forge-client.toml [21Sep2020 05:56:02.765] [modloading-worker-1/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Loading configs type COMMON [21Sep2020 05:56:02.777] [Worker-Main-6/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : FMLCommonSetupEvent [21Sep2020 05:56:02.782] [Worker-Main-4/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : FMLCommonSetupEvent [21Sep2020 05:56:02.782] [Worker-Main-4/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : FMLCommonSetupEvent [21Sep2020 05:56:02.796] [Worker-Main-6/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : FMLCommonSetupEvent [21Sep2020 05:56:02.824] [Forge Version Check/INFO] [net.minecraftforge.fml.VersionChecker/]: [forge] Starting version check at https://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json [21Sep2020 05:56:03.077] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.ModelRegistryEvent@2848b7fe [21Sep2020 05:56:03.094] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.ModelRegistryEvent@2848b7fe [21Sep2020 05:56:03.094] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.ModelRegistryEvent@2848b7fe [21Sep2020 05:56:03.094] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.ModelRegistryEvent@2848b7fe [21Sep2020 05:56:03.714] [Forge Version Check/DEBUG] [net.minecraftforge.fml.VersionChecker/]: [forge] Received version check data: { "homepage": "http://files.minecraftforge.net/maven/net/minecraftforge/forge/", "promos": { "1.1-latest": "1.3.2.6", "1.10-latest": "12.18.0.2000", "1.10.2-latest": "12.18.3.2511", "1.10.2-recommended": "12.18.3.2185", "1.11-latest": "13.19.1.2199", "1.11-recommended": "13.19.1.2189", "1.11.2-latest": "13.20.1.2588", "1.11.2-recommended": "13.20.1.2386", "1.12-latest": "14.21.1.2443", "1.12-recommended": "14.21.1.2387", "1.12.1-latest": "14.22.1.2485", "1.12.1-recommended": "14.22.1.2478", "1.12.2-latest": "14.23.5.2854", "1.12.2-recommended": "14.23.5.2854", "1.13.2-latest": "25.0.219", "1.14.2-latest": "26.0.63", "1.14.3-latest": "27.0.60", "1.14.4-latest": "28.2.23", "1.14.4-recommended": "28.2.0", "1.15-latest": "29.0.4", "1.15.1-latest": "30.0.51", "1.15.2-latest": "31.2.41", "1.15.2-recommended": "31.2.0", "1.16.1-latest": "32.0.108", "1.16.2-latest": "33.0.61", "1.16.3-latest": "34.0.9", "1.5.2-latest": "7.8.1.738", "1.5.2-recommended": "7.8.1.737", "1.6.1-latest": "8.9.0.775", "1.6.2-latest": "9.10.1.871", "1.6.2-recommended": "9.10.1.871", "1.6.3-latest": "9.11.0.878", "1.6.4-latest": "9.11.1.1345", "1.6.4-recommended": "9.11.1.1345", "1.7.10-latest": "10.13.4.1614", "1.7.10-latest-1.7.10": "10.13.2.1343", "1.7.10-recommended": "10.13.4.1558", "1.7.2-latest": "10.12.2.1147", "1.7.2-recommended": "10.12.2.1121", "1.8-latest": "11.14.4.1577", "1.8-recommended": "11.14.4.1563", "1.8.8-latest": "11.15.0.1655", "1.8.9-latest": "11.15.1.2318", "1.8.9-recommended": "11.15.1.1722", "1.9-latest": "12.16.0.1942", "1.9-recommended": "12.16.1.1887", "1.9.4-latest": "12.17.0.2051", "1.9.4-recommended": "12.17.0.1976", "latest-1.7.10": "10.13.2.1343" } } [21Sep2020 05:56:03.715] [Forge Version Check/INFO] [net.minecraftforge.fml.VersionChecker/]: [forge] Found status: BETA Current: 34.0.9 Target: 34.0.9 [21Sep2020 05:56:05.710] [Worker-Main-4/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@fb4e1ed [21Sep2020 05:56:05.710] [Worker-Main-4/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@fb4e1ed [21Sep2020 05:56:05.710] [Worker-Main-4/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@fb4e1ed [21Sep2020 05:56:05.710] [Worker-Main-4/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@fb4e1ed [21Sep2020 05:56:06.720] [Worker-Main-6/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@59aa86bd [21Sep2020 05:56:06.720] [Worker-Main-6/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@59aa86bd [21Sep2020 05:56:06.720] [Worker-Main-6/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@59aa86bd [21Sep2020 05:56:06.720] [Worker-Main-6/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@59aa86bd [21Sep2020 05:56:08.749] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@7b1034a3 [21Sep2020 05:56:08.752] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@7b1034a3 [21Sep2020 05:56:08.752] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@7b1034a3 [21Sep2020 05:56:08.752] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@7b1034a3 [21Sep2020 05:56:08.803] [Worker-Main-7/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@5a04a131 [21Sep2020 05:56:08.807] [Worker-Main-7/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@5a04a131 [21Sep2020 05:56:08.807] [Worker-Main-7/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@5a04a131 [21Sep2020 05:56:08.807] [Worker-Main-7/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@5a04a131 [21Sep2020 05:56:08.887] [Render thread/DEBUG] [net.minecraftforge.fml.client.ClientModLoader/LOADING]: Running pre client event work [21Sep2020 05:56:09.152] [Worker-Main-8/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : FMLClientSetupEvent [21Sep2020 05:56:09.152] [Worker-Main-8/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : FMLClientSetupEvent [21Sep2020 05:56:09.153] [Worker-Main-8/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : FMLClientSetupEvent [21Sep2020 05:56:09.308] [Worker-Main-8/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : FMLClientSetupEvent [21Sep2020 05:56:09.445] [Render thread/DEBUG] [net.minecraftforge.fml.client.ClientModLoader/LOADING]: Running post client event work [21Sep2020 05:56:10.439] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@67db02b8 [21Sep2020 05:56:10.439] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@67db02b8 [21Sep2020 05:56:10.439] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@67db02b8 [21Sep2020 05:56:10.439] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@67db02b8 [21Sep2020 05:56:10.444] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@4f2e2a08 [21Sep2020 05:56:10.444] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@4f2e2a08 [21Sep2020 05:56:10.444] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@4f2e2a08 [21Sep2020 05:56:10.444] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@4f2e2a08 [21Sep2020 05:56:10.474] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@33e1746d [21Sep2020 05:56:10.474] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@33e1746d [21Sep2020 05:56:10.474] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@33e1746d [21Sep2020 05:56:10.474] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@33e1746d [21Sep2020 05:56:10.496] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@6fd0c52 [21Sep2020 05:56:10.496] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@6fd0c52 [21Sep2020 05:56:10.496] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@6fd0c52 [21Sep2020 05:56:10.496] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@6fd0c52 [21Sep2020 05:56:10.506] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@7223dbc9 [21Sep2020 05:56:10.506] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@7223dbc9 [21Sep2020 05:56:10.506] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@7223dbc9 [21Sep2020 05:56:10.506] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@7223dbc9 [21Sep2020 05:56:10.518] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@3c7581a2 [21Sep2020 05:56:10.518] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Pre@3c7581a2 [21Sep2020 05:56:10.518] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@3c7581a2 [21Sep2020 05:56:10.518] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Pre@3c7581a2 [21Sep2020 05:56:10.569] [Worker-Main-7/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : InterModEnqueueEvent [21Sep2020 05:56:10.569] [Worker-Main-4/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : InterModEnqueueEvent [21Sep2020 05:56:10.569] [Worker-Main-7/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : InterModEnqueueEvent [21Sep2020 05:56:10.569] [Worker-Main-4/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : InterModEnqueueEvent [21Sep2020 05:56:10.601] [Worker-Main-4/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : InterModProcessEvent [21Sep2020 05:56:10.601] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : InterModProcessEvent [21Sep2020 05:56:10.601] [Worker-Main-4/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : InterModProcessEvent [21Sep2020 05:56:10.601] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : InterModProcessEvent [21Sep2020 05:56:10.635] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : FMLLoadCompleteEvent [21Sep2020 05:56:10.635] [Worker-Main-7/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : FMLLoadCompleteEvent [21Sep2020 05:56:10.635] [Worker-Main-5/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : FMLLoadCompleteEvent [21Sep2020 05:56:10.635] [Worker-Main-7/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : FMLLoadCompleteEvent [21Sep2020 05:56:12.120] [Render thread/DEBUG] [net.minecraftforge.fml.ForgeI18n/CORE]: Loading I18N data entries: 5198 [21Sep2020 05:56:12.659] [Render thread/INFO] [net.minecraft.client.audio.SoundSystem/]: OpenAL initialized. [21Sep2020 05:56:12.661] [Render thread/INFO] [net.minecraft.client.audio.SoundEngine/SOUNDS]: Sound engine started [21Sep2020 05:56:13.056] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 1024x512x4 minecraft:textures/atlas/blocks.png-atlas [21Sep2020 05:56:13.318] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@6bbab114 [21Sep2020 05:56:13.318] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@6bbab114 [21Sep2020 05:56:13.318] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@6bbab114 [21Sep2020 05:56:13.318] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@6bbab114 [21Sep2020 05:56:13.319] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 256x128x4 minecraft:textures/atlas/signs.png-atlas [21Sep2020 05:56:13.334] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@5d1b1c2a [21Sep2020 05:56:13.334] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@5d1b1c2a [21Sep2020 05:56:13.334] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@5d1b1c2a [21Sep2020 05:56:13.334] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@5d1b1c2a [21Sep2020 05:56:13.334] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 512x512x4 minecraft:textures/atlas/banner_patterns.png-atlas [21Sep2020 05:56:13.335] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@25f61c2c [21Sep2020 05:56:13.335] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@25f61c2c [21Sep2020 05:56:13.335] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@25f61c2c [21Sep2020 05:56:13.335] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@25f61c2c [21Sep2020 05:56:13.335] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 512x512x4 minecraft:textures/atlas/shield_patterns.png-atlas [21Sep2020 05:56:13.338] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@77429040 [21Sep2020 05:56:13.339] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@77429040 [21Sep2020 05:56:13.339] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@77429040 [21Sep2020 05:56:13.339] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@77429040 [21Sep2020 05:56:13.339] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 512x256x4 minecraft:textures/atlas/chest.png-atlas [21Sep2020 05:56:13.340] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@38291795 [21Sep2020 05:56:13.340] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@38291795 [21Sep2020 05:56:13.340] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@38291795 [21Sep2020 05:56:13.340] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@38291795 [21Sep2020 05:56:13.340] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 512x256x4 minecraft:textures/atlas/beds.png-atlas [21Sep2020 05:56:13.341] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@40ef0af8 [21Sep2020 05:56:13.341] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@40ef0af8 [21Sep2020 05:56:13.341] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@40ef0af8 [21Sep2020 05:56:13.341] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@40ef0af8 [21Sep2020 05:56:13.341] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 512x256x4 minecraft:textures/atlas/shulker_boxes.png-atlas [21Sep2020 05:56:13.342] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@461c3709 [21Sep2020 05:56:13.342] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@461c3709 [21Sep2020 05:56:13.342] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@461c3709 [21Sep2020 05:56:13.342] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@461c3709 [21Sep2020 05:56:13.944] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.ModelBakeEvent@377874b4 [21Sep2020 05:56:13.944] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.ModelBakeEvent@377874b4 [21Sep2020 05:56:13.944] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.ModelBakeEvent@377874b4 [21Sep2020 05:56:13.945] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.ModelBakeEvent@377874b4 [21Sep2020 05:56:14.619] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 256x256x0 minecraft:textures/atlas/particles.png-atlas [21Sep2020 05:56:14.620] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@721d8ab5 [21Sep2020 05:56:14.620] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@721d8ab5 [21Sep2020 05:56:14.620] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@721d8ab5 [21Sep2020 05:56:14.620] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@721d8ab5 [21Sep2020 05:56:14.621] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas [21Sep2020 05:56:14.636] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@6ac4c3f7 [21Sep2020 05:56:14.636] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@6ac4c3f7 [21Sep2020 05:56:14.636] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@6ac4c3f7 [21Sep2020 05:56:14.636] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@6ac4c3f7 [21Sep2020 05:56:14.636] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 128x128x0 minecraft:textures/atlas/mob_effects.png-atlas [21Sep2020 05:56:14.667] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@7412a438 [21Sep2020 05:56:14.667] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid forge : net.minecraftforge.client.event.TextureStitchEvent$Post@7412a438 [21Sep2020 05:56:14.667] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Firing event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@7412a438 [21Sep2020 05:56:14.667] [Render thread/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Fired event for modid ironchest : net.minecraftforge.client.event.TextureStitchEvent$Post@7412a438 [21Sep2020 05:56:34.352] [Render thread/INFO] [net.minecraft.client.gui.screen.ConnectingScreen/]: Connecting to 10.0.0.216, 25565 [21Sep2020 05:56:35.432] [Netty Client IO #1/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Starting new vanilla network connection. [21Sep2020 05:56:35.432] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Starting new vanilla network connection. [21Sep2020 05:56:35.740] [Netty Client IO #1/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Channel 'minecraft:unregister' : Version test of '(FML2,true)' during listping : ACCEPTED [21Sep2020 05:56:35.741] [Netty Client IO #1/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Channel 'minecraft:register' : Version test of '(FML2,true)' during listping : ACCEPTED [21Sep2020 05:56:35.741] [Netty Client IO #1/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Accepting channel list during listping [21Sep2020 05:56:35.743] [Netty Client IO #1/DEBUG] [net.minecraftforge.fml.client.ClientHooks/CLIENTHOOKS]: Received FML ping data from server at 10.0.0.216: FMLNETVER=2, mod list is compatible : true, channel list is compatible: true, extra server mods: {} [21Sep2020 05:56:35.926] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 0 [21Sep2020 05:56:35.929] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Logging into server with mod list [minecraft, forge, ironchest] [21Sep2020 05:56:35.931] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Channel 'fml:loginwrapper' : Version test of 'FML2' from server : ACCEPTED [21Sep2020 05:56:35.931] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Channel 'fml:handshake' : Version test of 'FML2' from server : ACCEPTED [21Sep2020 05:56:35.931] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Channel 'minecraft:unregister' : Version test of 'FML2' from server : ACCEPTED [21Sep2020 05:56:35.931] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Channel 'fml:play' : Version test of 'FML2' from server : ACCEPTED [21Sep2020 05:56:35.931] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Channel 'minecraft:register' : Version test of 'FML2' from server : ACCEPTED [21Sep2020 05:56:35.931] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Accepting channel list from server [21Sep2020 05:56:35.934] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 0 [21Sep2020 05:56:35.935] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Accepted server connection [21Sep2020 05:56:35.960] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 1 [21Sep2020 05:56:35.962] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:recipe_serializer [21Sep2020 05:56:35.962] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 1 [21Sep2020 05:56:36.021] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 2 [21Sep2020 05:56:36.028] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:sound_event [21Sep2020 05:56:36.028] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 2 [21Sep2020 05:56:36.061] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 3 [21Sep2020 05:56:36.061] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:particle_type [21Sep2020 05:56:36.061] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 3 [21Sep2020 05:56:36.111] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 4 [21Sep2020 05:56:36.112] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:villager_profession [21Sep2020 05:56:36.112] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 4 [21Sep2020 05:56:36.166] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 5 [21Sep2020 05:56:36.167] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:item [21Sep2020 05:56:36.167] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 5 [21Sep2020 05:56:36.210] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 6 [21Sep2020 05:56:36.210] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:potion [21Sep2020 05:56:36.210] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 6 [21Sep2020 05:56:36.259] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 7 [21Sep2020 05:56:36.259] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:block_entity_type [21Sep2020 05:56:36.259] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 7 [21Sep2020 05:56:36.310] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 8 [21Sep2020 05:56:36.310] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:worldgen/feature [21Sep2020 05:56:36.310] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 8 [21Sep2020 05:56:36.361] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 9 [21Sep2020 05:56:36.361] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:block [21Sep2020 05:56:36.362] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 9 [21Sep2020 05:56:36.409] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 10 [21Sep2020 05:56:36.409] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:data_serializers [21Sep2020 05:56:36.409] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 10 [21Sep2020 05:56:36.460] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 11 [21Sep2020 05:56:36.460] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:mob_effect [21Sep2020 05:56:36.460] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 11 [21Sep2020 05:56:36.510] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 12 [21Sep2020 05:56:36.510] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:stat_type [21Sep2020 05:56:36.510] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 12 [21Sep2020 05:56:36.561] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 13 [21Sep2020 05:56:36.561] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:menu [21Sep2020 05:56:36.561] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 13 [21Sep2020 05:56:36.610] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 14 [21Sep2020 05:56:36.610] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:enchantment [21Sep2020 05:56:36.610] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 14 [21Sep2020 05:56:36.659] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 15 [21Sep2020 05:56:36.659] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:motive [21Sep2020 05:56:36.659] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 15 [21Sep2020 05:56:36.711] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 16 [21Sep2020 05:56:36.711] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:worldgen/biome [21Sep2020 05:56:36.711] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 16 [21Sep2020 05:56:36.759] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 17 [21Sep2020 05:56:36.759] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:fluid [21Sep2020 05:56:36.759] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 17 [21Sep2020 05:56:36.811] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 18 [21Sep2020 05:56:36.811] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received registry packet for minecraft:entity_type [21Sep2020 05:56:36.812] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Waiting for registries to load. [21Sep2020 05:56:36.812] [Render thread/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Injecting registry snapshot from server. [21Sep2020 05:56:37.283] [Render thread/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Snapshot injected. [21Sep2020 05:56:37.283] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Registry load complete, continuing handshake. [21Sep2020 05:56:37.283] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 18 [21Sep2020 05:56:37.284] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Recieved login wrapper packet event for channel fml:handshake with index 19 [21Sep2020 05:56:37.284] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Received config sync from server [21Sep2020 05:56:37.285] [Netty Client IO #0/DEBUG] [net.minecraftforge.common.ForgeConfig/FORGEMOD]: Forge config just got changed on the file system! [21Sep2020 05:56:37.285] [Netty Client IO #0/DEBUG] [net.minecraftforge.fml.network.FMLLoginWrapper/FMLHANDSHAKE]: Dispatching wrapped packet reply for channel fml:handshake with index 19 [21Sep2020 05:56:37.366] [Netty Client IO #0/INFO] [net.minecraftforge.fml.network.NetworkHooks/]: Connected to a modded server. [21Sep2020 05:56:37.531] [Netty Client IO #0/DEBUG] [net.minecraftforge.common.ForgeTagHandler/]: Populated the TagCollectionManager with 1 extra types [21Sep2020 05:56:37.959] [Netty Client IO #0/ERROR] [net.minecraft.command.arguments.ArgumentTypes/]: Could not deserialize minecraft: [21Sep2020 05:56:37.960] [Netty Client IO #0/ERROR] [net.minecraft.command.arguments.ArgumentTypes/]: Could not deserialize minecraft: [21Sep2020 05:56:41.362] [Render thread/INFO] [com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService/]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', name='PROD' [21Sep2020 05:56:42.282] [Render thread/WARN] [net.minecraft.client.network.play.ClientPlayNetHandler/]: Received passengers for unknown entity [21Sep2020 05:56:42.375] [Render thread/INFO] [net.minecraft.advancements.AdvancementList/]: Loaded 0 advancements [21Sep2020 05:58:02.256] [Render thread/INFO] [net.minecraft.client.gui.NewChatGui/]: [CHAT] Saved screenshot as 2020-09-21_05.58.01.png [21Sep2020 05:58:03.756] [Render thread/INFO] [net.minecraft.client.gui.NewChatGui/]: [CHAT] Saved screenshot as 2020-09-21_05.58.03.png [21Sep2020 05:59:09.947] [Netty Client IO #2/DEBUG] [net.minecraftforge.fml.network.FMLHandshakeHandler/FMLHANDSHAKE]: Starting new vanilla network connection. [21Sep2020 05:59:09.950] [Netty Client IO #2/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Channel 'minecraft:unregister' : Version test of '(FML2,true)' during listping : ACCEPTED [21Sep2020 05:59:09.950] [Netty Client IO #2/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Channel 'minecraft:register' : Version test of '(FML2,true)' during listping : ACCEPTED [21Sep2020 05:59:09.950] [Netty Client IO #2/DEBUG] [net.minecraftforge.fml.network.NetworkRegistry/NETREGISTRY]: Accepting channel list during listping [21Sep2020 05:59:09.950] [Netty Client IO #2/DEBUG] [net.minecraftforge.fml.client.ClientHooks/CLIENTHOOKS]: Received FML ping data from server at 10.0.0.216: FMLNETVER=2, mod list is compatible : true, channel list is compatible: true, extra server mods: {} [21Sep2020 05:59:27.148] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Stopping!
Code-Inside
Worker that loads and retrieves data from "slow" endpoints.
Bailey520
"undefined"!=typeof YAHOO&&YAHOO||(YAHOO={}),YAHOO.i13n=YAHOO.i13n||{},YAHOO.i13n.EventTypes=function(){function e(e,t,n){this.yqlid=e,this.eventName=t,this.spaceidPrefix=n}var t="richview",n="contentmodification";e.prototype={getYQLID:function(){return this.yqlid},getEventName:function(){return this.eventName}};var r={pageview:new e("pv","pageview",""),simple:new e("lv","event","P"),linkview:new e("lv","linkview","P"),richview:new e(t,t,"R"),contentmodification:new e(t,n,"R"),dwell:new e("lv","dwell","D")};return{getEventByName:function(e){return r[e]}}}(),YAHOO.i13n.Rapid=function(e){function t(){}function n(e){this.map={},this.count=0,e&&this.absorb(e)}function r(){this.map={},this.count=0}function i(e,t){if(!e)return null;null===t&&(t=!1);var n=new r,i=U.getAttribute(e,U.data_action_outcome);i&&n.set("outcm",i);var o=U.getAttribute(e,"data-ylk");if(null===o||0===o.length)return n;for(var a=o.split(U.ylk_pair_delim),s=0,l=a.length;l>s;s++){var c=a[s].split(U.ylk_kv_delim);if(2===c.length){var u=c[0],d=c[1];null!==u&&""!==u&&null!==d&&("_p"!==u||t)&&n.set(u,d)}}return n}function o(e,t,n){return t>e?t:e>n?n:e}function a(t,n){B.set("A_sid",YAHOO.i13n.A_SID||U.rand()),B.set("_w",U.rmProto(n)),t?B.absorb(t):e.keys&&B.absorb(e.keys)}function s(e){var t=(YAHOO.i13n,YAHOO.i13n.TEST_ID||e.test_id),n=e.location||document.location.href;a(e.keys,n),t&&(t=U.norm(""+t));var r=300,i=700,s=1e4,l=e.override||{},c={override:l,version:"3.42.2",keys:B,referrer:e.referrer,getReferrer:function(){return U.norm(U.clref("undefined"!=typeof this.referrer?this.referrer:document.referrer))},spaceid:U.norm(l.spaceid||YAHOO.i13n.SPACEID||e.spaceid),yrid:U.norm(e.yrid||""),oo:e.oo?"1":"0",nol:e.nol?"1":"0",yql_enabled:e.yql_enabled!==!1,fing:1==e.use_fing,USE_RAPID:e.use_rapid!==!1,linktrack_attribut:e.lt_attr||"text",tracked_mods:e.tracked_mods||[],tracked_mods_viewability:e.tracked_mods_viewability||[],viewability:e.viewability||!1,viewability_time:e.viewability_time||300,viewability_px:e.viewability_px||50,lt_attr:e.lt_attr||"text",client_only:e.client_only,text_link_len:e.text_link_len||-1,test_id:t,yql_host:e.yql_host||"udc.yahoo.com",yql_path:e.yql_path||"/v2/public/yql",click_timeout:e.click_timeout||s,compr_timeout:e.compr_timeout||i,compr_on:e.compr_on!==!1,compr_type:e.compr_type||"deflate",webworker_file:YAHOO.i13n.WEBWORKER_FILE||e.webworker_file||"rapidworker-1.2.js",nofollow_classname:e.nofollow_class||"rapidnofollow",no_click_listen:e.rapid_noclick_resp||"rapid-noclick-resp",nonanchor_track_class:e.nonanchor_track_class||"rapid-nonanchor-lt",anc_pos_attr:"data-rapid_p",anc_v9y_attr:"data-v9y",deb:e.debug===!0,ldbg:e.ldbg>0?!0:n.indexOf("yhldebug=1")>0,addmod_timeout:e.addmodules_timeout||300,ult_token_capture:"boolean"==typeof e.ult_token_capture?e.ult_token_capture:!1,track_type:e.track_type||"data-tracktype",dwell_on:e.dwell_on!==!1,prerender:e.prerender===!0,query_parameters:e.query_parameters===!0,async_all_clicks:e.async_all_clicks===!0,click_postmsg:e.click_postmsg||{},apv:e.apv!==!1,apv_time:e.apv_time||500,apv_px:e.apv_px||500,apv_always_send:e.apv_always_send===!0,ex:e.ex===!0,persist_asid:e.persist_asid===!0,track_right_click:e.track_right_click===!0,gen_bcookie:e.gen_bcookie===!0,skip_attr:e.skip_attr||"data-rapid-skip",parse_dom:e.parse_dom===!0,pageview_on_init:e.pageview_on_init!==!1,perf_navigationtime:e.perf_navigationtime||0,perf_commontime:e.perf_commontime||null,perf_usertime:e.perf_usertime||null,perf_resourcetime:e.perf_resourcetime||0,sample:e.sample||{},loc:n,fpc:e.fpc===!0},u=1*c.compr_timeout;return U.isNum(u)?c.compr_timeout=o(u,r,i):c.compr_timeout=i,c.ldbg&&c.click_timeout!=s&&console.warn("Click timeout set to "+c.click_timeout+"ms (default 10000ms)"),e.apv_callback&&"function"==typeof e.apv_callback?c.apv_callback=e.apv_callback:c.apv_callback=null,c}function l(){B.set("A_sid",U.rand())}function c(){return"Rapid-"+F.version+"("+(new Date).getTime()+"):"}function u(e){F.ldbg&&console.warn("RAPID WARNING: "+e)}function d(e){F.ldbg&&console.error("RAPID ERROR: "+e)}function f(e){F.ldbg&&console.log(c()+e)}function p(){var e=document.cookie;if(this.cookieMap={},/[^=]+=[^=;]?(?:; [^=]+=[^=]?)?/.test(e))for(var t=e.split(/;\s/g),n=null,r=null,i=null,o=0,a=t.length;a>o;o++){if(i=t[o].match(/([^=]+)=/i),i instanceof Array)try{n=U.dec(i[1]),r=U.dec(t[o].substring(i[1].length+1))}catch(s){d(s)}else n=U.dec(t[o]),r=n;"B"!==n&&"BX"!==n&&"TT"!==n&&"D"!==n&&"_ga"!==n&&"yx"!==n&&"rxx"!==n||(this.cookieMap[n]=r)}U.clearCookie("rx","/",U.isIE?document.domain:"")}function m(){if(F.ult_token_capture&&YAHOO.i13n.__handled_ult_tokens__!==!0){YAHOO.i13n.__handled_ult_tokens__=!0;var e=F.loc;if(e.match(/;_yl[a-z]{1}=/))F.ldbg&&f("Found ULT Token on URL."),K.sendGeoT(e);else{var t=new p,n=t.getCookieByName("D");n&&(U.clearCookie("D","/",".yahoo.com"),K.sendGeoT(n))}}}function v(){function e(){t=(new Date).valueOf().toString(),n=t.length}var t=null,n=null;return e(),{ts:t.substr(0,n-3),ms:t.substr(n-3)}}function g(e,t,n,r){var i=new Date,o="";i.setTime(i.getTime()+1e3*n),o="; expires="+i.toGMTString();var a="";r&&(a=";domain="+r);var s=e+"="+t+o+a+"; path=/";document.cookie=s}function h(){function e(e,t){F.ldbg&&f(e);var n=new Image,r=null;n.onload=n.onabort=n.onerror=function(){t&&"function"==typeof t&&(clearTimeout(r),t.call(null))},n.src=e,t&&"function"==typeof t&&(r=setTimeout(function(){t.call(null)},F.click_timeout)),setTimeout(function(){n=null},1e7)}function t(){return"rapid_if_"+U.rand()}function r(e){var t="display:none;";!U.isIE||6!==U.ieV&&7!==U.ieV&&8!==U.ieV?U.sa(e,"style",t):e.style.setAttribute("cssText",t,0)}function i(e){var t=null;if(U.isIE&&U.ieV<=8){var n="";U.isSecure()&&6==U.ieV&&(n='src="https://geo.yahoo.com/b.html"'),t=document.createElement("<iframe "+n+' name="'+e+'"></iframe>')}else t=document.createElement("iframe");return t.name=e,t}function o(){setTimeout(function(){var e=i("");U.addEvent(e,"load",function(){U.rmBodyEl(e)}),U.appBodyEl(e)},1)}function a(e,n){var a=null,l=U.make("form"),c=U.make("input"),u=t(),d=t(),p="application/x-www-form-urlencoded;charset=UTF-8";a=i(u),r(a),r(l),l.id=d,l.method="POST",l.action=s(n),l.target=u,U.isIE&&U.ieV<=7?l.setAttribute("enctype",p):(l.setAttribute("enctype",p),l.setAttribute("encoding",p)),c.name="q",c.value=e,U.isIE&&U.ieV>=10&&(c.type="submit"),l.appendChild(c);var m="load",v=function(){var e="";if(F.ldbg&&(!U.isIE||U.ieV>=9)){var t=a.contentDocument||a.contentWindow.document;e=t.body.innerHTML}U.rmEvent(a,m,v),setTimeout(function(){U.rmBodyEl(a),U.rmBodyEl(l)},0),F.ldbg&&f("iframe resp: "+e),U.isIE&&U.ieV<=7&&o()};U.addEvent(a,m,v),U.appBodyEl(a),U.appBodyEl(l),l.submit()}function s(e){var t=F.deb,n=U.rand(),r=["http:"===window.location.protocol?"http://":"https://",F.yql_host,F.yql_path,"?yhlVer=2&yhlClient=rapid&yhlS=",F.spaceid,t===!0?"&yhlEnv=staging":"",t===!0||F.ldbg?"&debug=true&diagnostics=true":"",U.isIE&&U.ieV?"&yhlUA=ie"+U.ieV:"",U.isIE&&8==U.ieV?"&format=json":"","&yhlCT=2","&yhlBTMS=",(new Date).valueOf(),"&yhlClientVer=",F.version,"&yhlRnd=",n,"&yhlCompressed=",e||0,F.gen_bcookie?"&yhlBcookie=1":""].join("");return F.ldbg&&f(r),r}function l(t){var r=new n(t);e(T("p",r,1197799914))}function c(e,t){var n=s(t);try{var r=U.getXHR();r.open("POST",n,!0),r.withCredentials=!0,r.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),F.ldbg&&(r.onreadystatechange=function(){4===r.readyState&&f(r.status+":xhr response: "+r.responseText)}),r.send(e)}catch(i){l({_err_nm:"sendToYQL Failed",_err_msg:"sendToYQL Failed",_err_rs:String(i),_err_st:i.stack,urlUsed:n})}}function p(e,t,n){var r={};return U.isObj(e)?(U.aug(r,e,n),r):r}function m(e,t,n){n=n||{};var r={m:U.norm(e.moduleName),l:[]};e.moduleYLK&&(r.ylk=e.moduleYLK.getAll());for(var i=r.ylk&&r.ylk.sec?r.ylk.sec:"",o=e.links,o=e.links,a=function(e,n){var o="_p"===e;return t&&o?!0:"sec"==e&&n!=r.m&&n!=i?!0:"sec"!==e&&!o},s=0,l=o.length;l>s;s++)o[s]&&(!F.viewability||o[s].viewable?r.l.push(p(o[s].data,t,a)):F.ldbg&&f("Skipping not viewable link: "+o[s].data.slk));return r}function g(e,t,n){var r=[],i=null;for(var o in e)if(U.hasOwn(e,o)&&(i=e[o])){var a=m(i,t,n);a.l.length>0?r.push(a):F.ldbg&&f('Not capturing 0 links mod: "'+i.moduleName+'"')}return r}function h(e,t){return e?"pv":t&&t.event?t.event.type.getYQLID():"lv"}function _(e,t,n,r,i){var o;return o=$?ne:v(),[{t:h(t,i),s:F.spaceid,pp:y(t,r).getAll(),_ts:o.ts,_ms:o.ms,lv:g(e,n,i)}]}function y(e,t){var r=n.makeFromPP(F.keys);return r.absorb(t),e&&r.set("A_",1),r.set("A_sr",U.sr()),r.set("A_vr",U.vr()),r.set("A_do",U.dor()),r}function w(e,t,n){var r="select * from x where a = '"+e+"'";return(t?"q=":"")+(n?U.enc(r):r)}function b(e){var t={bp:D().getAll(),r:e.call(0),yrid:F.yrid,optout:F.oo,nol:F.nol};return U.toJSON(t)}function k(e,t,n){var r={};t&&$&&$.start_dwell()&&(r.etag="dwell,start",r.usergenf=1,r.A_prets=re?re.ts:null,r.A_prems=re?re.ms:null),n.event&&U.aug(r,n.event.data),n.pp&&U.aug(r,n.pp);var i=b(function(){return _([e],t,!0,r,n)});C(i,t)}function A(e,t,n,r){var i=b(function(){return _(e,t,!0,n,r)});C(i)}function E(e){return e.identifier}function C(e){function t(e,t){0===t&&(e=e.replace(/'/g,"\\'")),r&&f("body: "+e),U.hasCORS()?(i=w(e,!0,!0),c(i,t)):(i=w(e,0,0),a(i,t))}function n(){l||(l=!0,t(e,0),r&&f("sent in failSend"))}var r=F.ldbg,i="",o=W[F.compr_type];if(F.compr_on&&U.hasWorkers()&&o>1&&e.length>2048){r&&f("Looking for worker:"+F.webworker_file+", compr timeout:"+F.compr_timeout);try{var s=new Worker(F.webworker_file),l=!1,d=null,p=0;s.onerror=function(e){clearTimeout(d),n(),u(e.message),s.terminate()},s.onmessage=function(i){clearTimeout(d);var a=U.tms();"Decompress fail"!==i.data&&"Compress fail"!==i.data&&0!=i.data.indexOf("error:")||(r&&f(i.data),n()),l||(l=!0,t(i.data,o)),r&&f("Ratio ("+i.data.length+"/"+e.length+"): "+(100*i.data.length/e.length).toFixed(2)+"% -> C_T: "+(a-p)+" ms ("+a+"-"+p+")"),s.terminate()},r&&f("posting to worker: "+e),p=U.tms(),s.postMessage({type:o,json:e}),d=setTimeout(function(){n(),s.terminate()},F.compr_timeout)}catch(m){r&&f("compression worker exception "+m),t(e,0)}}else t(e,0)}function T(e,t,n){return("http:"===window.location.protocol?"http://":"https://")+x+"/"+e+["?s="+(n?n:F.spaceid),"t="+U.rand()+","+Math.random(),"_I="+F.yrid,"_AO="+F.oo,"_NOL="+F.nol,"_R="+U.enc(F.getReferrer()),("c"===e?"_K=":"_P=")+O(t)].join("&")}function O(e){var t=new n(D(!1).getAll());t.absorb(F.keys.getAll()),e&&(e instanceof n?t.absorb(e.getAll()):d("Internal error in buildGeoPP: not PP type"));var r;return r="dwell,start"===t.get("etag")?ne:"dwell,stop"===t.get("etag")?re:v(),t.set("_ts",r.ts),t.set("_ms",r.ms),t.set("A_sr",U.sr()),t.set("A_vr",U.vr()),t.set("A_do",U.dor()),F.version+"%05"+t.ser()}function S(e){var t=new n(e.pp),r=[T("c",t)+"&_C="+U.ser(e.data)];return r.join("&")}var x=YAHOO.i13n.beacon_server||"geo.yahoo.com",D=function(e){var t=new n;t.set("_pl",1),t.set("A_v",F.version);var r=F.getReferrer();if(r&&e!==!1&&t.set("_R",r),F.test_id&&t.set("test",F.test_id),F.ex&&t.set("_ex",1),t.get("_bt")||t.set("_bt","rapid"),F.query_parameters){var i=/^(test|outcm|etrg|usergenf|etag|sec|slk|tar|tar_uri|yhldebug|tsrc|action)$|^(A_|_)/,o=document.location.search;if(o){o=o.substring(1),o=o.split("&");for(var a in o)if(o.hasOwnProperty(a)){var s=o[a].split("=");if(s.length>=2){var l=decodeURIComponent(s[0]),c=decodeURIComponent(s[1]),u=!i.test(l);f("Queryparams decoded: "+l+" : "+c),f("Blacklist filter: "+u),u&&t.set(l,c)}}}}var d=window.location.protocol||"";d=d.replace(/:$/,""),t.set("A_pr",d);var p=(new Date).getTimezoneOffset();return p=p?-1*p/60:0,t.set("A_tzoff",p),t},L=function(){var e=null,t=[],n=0,r=F.addmod_timeout;return function(i,o,a,s){clearTimeout(e);var l=+new Date-n;if(t=U.uniqConcat(t,i,E),l>r)n=+new Date,A(t,o,a,s),t=[];else{var c=r-l;e=setTimeout(function(){F.ldbg&&f("queueing send in addMods"),A(t,o,a,s),t=[]},c)}}}();return{sendGeoT:function(t){var n=["http:"===window.location.protocol?"http://":"https://",x,"/t?",t].join("");e(n)},sendGeoPV:function(){e(T("b"))},sendRapidNoDelay:function(t,r,i,o,a){if(r&&$&&$.start_dwell()&&(i.etag="dwell,start",i.usergenf=1,i.A_prets=re?re.ts:null,i.A_prems=re?re.ms:null),!F.yql_enabled||a){var s=null;i&&(s=new n(i)),e(T(r?"b":"p",s))}else A(t,r,i,o)},sendRapid:function(e,t,n,r){t&&$&&$.start_dwell()&&(n.etag="dwell,start",n.usergenf=1,n.A_prets=re?re.ts:null,n.A_prems=re?re.ms:null),L(e,t,n,r)},sendRefreshedContent:k,sendULTEvent:function(t,r){var i={};t&&t.data&&(i=t.data);var o=T("p",new n(i),r||0);t.type&&(o+="&_V="+t.type.spaceidPrefix),e(o)},sendEvents:function(e,t){F.USE_RAPID&&this.sendULTEvent(e)},sendClick:function(t,n){var r=null,i="",o=!1;return F.USE_RAPID&&(i=S(t)),F.async_all_clicks||!t.synch?void(i&&e(i,n)):(U.prevDef(t.event),r=function(){if(!o){if(o=!0,n)return void n.call();var e=t.targetElement.href;if(F.click_postmsg.origin){var r=F.click_postmsg.window||top,i=F.click_postmsg.payload||{};i.href=e,r.postMessage(U.toJSON(i),F.click_postmsg.origin)}else t.hasTargetTop?top.document.location=e:document.location=e}},void(F.USE_RAPID&&e(i,r)))}}}function _(e,t,n,r,o,a,s){var l="",c=null,u=s?U.isAboveFold(r):!0,d={viewable:u,data:{sec:t,_p:n}};return s&&U.aug(d.data,{A_lv:1}),a?(d.data.slk=o||"section",c=i(r)):(r.setAttribute(F.anc_pos_attr,n),s&&r.setAttribute(F.anc_v9y_attr,u?"1":"0"),l=U.getLT(r,e),l&&""!==l?c=i(r):l="_ELINK_",d.data.slk=o?o:l),null!==c&&U.aug(d.data,c.getAll()),d}function y(){var e={};return{addModule:function(t,n){e[U.norm(t)]=n},addModules:function(e,t){var n=U.isArr(e),r=[];n||U.isStr(e)&&(e=new Array(e),n=!0);for(var i in e)if(U.hasOwn(e,i)){var o=n?e[i]:i,a=U.trim(e[i]);if(this.exists(o))d('addModules() called with prev processed id:"'+o+'"');else{var s=x(a,o,t);s&&(this.addModule(o,s),r.push(s))}}return r},getModules:function(){return e},getModulesWithViewability:function(){var t={};for(var n in e){var r=e[n];r.useViewability&&(t[n]=r)}return t},reevaluateModuleViewability:function(){var e=this.getModulesWithViewability();for(var t in e){var n=e[t];n.reevaluateViewableLinks()}},refreshModule:function(t,n,r,i){var o=e[U.norm(t)];o?o.refreshModule(t,n,r,i):d("refreshModule called on unknown section: "+o)},removeModule:function(t){var n=e[U.norm(t)];n&&(n.removeHandlers(),delete e[t])},destroy:function(){for(var t in e)U.hasOwn(e,t)&&this.removeModule(t);e={}},exists:function(t){return e[U.norm(t)]}}}function w(e,t){return U.hasClass(e,"rapid_track_href")?"href":U.hasClass(e,"rapid_track_text")?"text":U.hasClass(e,"rapid_track_title")?"title":U.hasClass(e,"rapid_track_id")?"id":t}function b(e){return"input"===e.nodeName.toLowerCase()&&"submit"===U.getAttribute(e,"type")}function k(e,t){var n=C(e,t);J=n,n&&(e.ctrlKey||e.metaKey||"contextmenu"===e.type||$&&$.stop_dwell()&&(n.pp={etag:"dwell,stop",usergenf:1,A_prets:ne?ne.ts:null,A_prems:ne?ne.ms:null}),K.sendClick(n))}function A(e,t,n){var r=U.getAttribute;return t.target&&"_blank"===t.target.toLowerCase()||2===e.which||4===e.button||e.altKey||e.ctrlKey||e.shiftKey||e.metaKey||"on"===r(t,"data-nofollow")||r(t,"href")&&"javascript:"===r(t,"href").substr(0,11).toLowerCase()||U.hasClass(t,F.nofollow_classname)||U.hasClass(n,F.nofollow_classname)}function E(e,t,n,r){n=n||{};var i=null;return e?(i=YAHOO.i13n.EventTypes.getEventByName(e),n._E=i.getEventName(),t=n._E):n._E=t||"_",r&&(n.outcm=r),{type:i,name:t,data:n,outcome:r}}function C(e,t){e=e||event;for(var n=U.getTarget(e),r="button",o="input",a="",s=!1,l=null;n&&(a=n.nodeName.toLowerCase())&&"a"!==a&&a!==r&&!b(n)&&!U.hasClass(n,F.nonanchor_track_class);)n=n.parentNode;if(!n||U.hasClass(n,F.no_click_listen))return 0;if(U.hasClass(n,F.nonanchor_track_class)){l={pos:0,sec:t.moduleName,slk:"_"};var c=i(n,1);c&&U.aug(l,c.getAll())}else{var u=U.getAttribute(n,F.anc_pos_attr);if(l=t.getLinkAtPos(u),!l)return 0;l=l.data,a===o||a===r||A(e,n,t.moduleElement)||(s=!0)}if(!l.tar){var d=U.getAttribute(n,"href");d&&(l.tar=U.extDomain(d)),d&&l.tar||(l.tar=U.extDomain(F.loc))}l.tar_uri||(n.pathname?l.tar_uri=n.pathname:l.tar_uri="");var f=t.moduleYLK;if(f){var p=f.getAll();U.aug(l,p,function(e){return!(e in l)})}return l.A_xy=U.xy(e),"contextmenu"==e.type&&(l.A_cl=3,s=!1),{data:l,event:e,moduleElement:t.moduleElement,targetElement:n,synch:s,hasTargetTop:n&&n.target&&"_top"===n.target.toLowerCase()}}function T(e,t,n,r,i){var o={};return U.aug(o,r),o.sec=e,o.slk=t,o._p=n,{data:o,outcome:i,event:null,moduleElement:null,targetElement:null,synch:!1,hasTargetTop:!1}}function O(e,t,n){t||(t=document);for(var r=e.split(","),i=[],o=0,a=r.length;a>o;o++)for(var s=t.getElementsByTagName(r[o]),l=0,c=s.length;c>l;l++){var u=s[l];n&&!n.call(0,u)||i.push(u)}var d=i[0];return d?(d.sourceIndex?i.sort(function(e,t){return e.sourceIndex-t.sourceIndex}):d.compareDocumentPosition&&i.sort(function(e,t){return 3-(6&e.compareDocumentPosition(t))}),i):[]}function S(e,t,n,r){t||(t=document);var i=e.split(",");n=n||[];var o=t.childNodes;if("true"!==U.getAttribute(t,F.skip_attr))for(var a=0,s=o.length;s>a;a++){var l=o[a];U.isTagOfInterest(l,i)&&(r&&!r.call(0,l)||n.push(l)),"true"!==U.getAttribute(l,F.skip_attr)?S(e,l,n,r):"true"===U.getAttribute(l,F.skip_attr)&&n.push(l)}var c=n[0];return c?(c.sourceIndex?n.sort(function(e,t){return e.sourceIndex-t.sourceIndex}):c.compareDocumentPosition&&n.sort(function(e,t){return 3-(6&e.compareDocumentPosition(t))}),n):[]}function x(e,t,n){function r(t,r){var o=[];r=r||1;for(var a=0,l=t.length;l>a;a++)if("div"===t[a].tagName.toLowerCase()){var u=t[a],f=i(u),p=_(m,c.map.sec||e,1,u,f.map.slk||c.map.slk,!0,n);d[0]=p,o.push(p)}else{var v=t[a],p=_(m,c.map.sec||e,r,v,c.map.slk,0,n);d[r-1]=p,o.push(p),r++}if("true"===U.getAttribute(s,F.skip_attr)){var p=_(m,c.map.sec||e,1,u,c.map.slk,!0,n);d[0]=p,o.push(p)}return o}function o(t){for(var n=[],r=0,i=t.length;i>r;r++){var o=t[r],a=U.getAttribute(o,F.anc_pos_attr),s=_(m,c.map.sec||e,a,o,c.map.slk,0,!0);n.push(s)}return n}function a(e){return!U.getAttribute(e,F.anc_pos_attr)}var s=document.getElementById(t),l="a,button,input";if(!s)return u("Specified module not in DOM: "+t),null;var c=i(s),d=[],p=F.parse_dom?S(l,s):O(l,s),m=w(s,F.lt_attr),v=p.length,g=U.getAttribute(s,F.track_type);r(p);var h={useViewability:n,moduleYLK:c,links:d,moduleName:e,trackType:g,moduleElement:s,refreshModule:function(e,t,i,o){o.isRefreshed=!0;var s=F.parse_dom?S(l,U.$(e),null,a):O(l,U.$(e),a);if(t===!0||s.length>0){var c=r(s,v+1);v+=s.length;var u=s.length;if(n){u=0;for(var d=0,p=c.length;p>d;d++)c[d].viewable&&u++}if((t===!0||u>0)&&(F.USE_RAPID||o.event)){var m={};U.aug(m,this),i?m.links=c:m.links=[],(t===!0||i)&&K.sendRefreshedContent(m,t,o)}}else U.ldbg&&f("refreshModule("+e+") - no new links.");t===!0&&F.apv&&X&&X.reInit()},reevaluateViewableLinks:function(){var t=d.length,n=O("a",this.moduleElement,function(t){return function(n){if(!U.getAttribute(n,F.anc_pos_attr)){t++,n.setAttribute(F.anc_pos_attr,t);var r=_(m,c.map.sec||e,t,n,c.map.slk,0,!1);d[t-1]=r}var i=U.getAttribute(n,F.anc_v9y_attr);return"1"!==i&&U.isAboveFold(n)?(n.setAttribute(F.anc_v9y_attr,"1"),!0):!1}}(t));if(0!==n.length&&F.USE_RAPID){var r=o(n),i={};U.aug(i,this),i.links=r,K.sendRefreshedContent(i,!1,{})}},removeHandlers:function(){U.rmEvent(s,"click",y),F.track_right_click&&U.rmEvent(s,"contextmenu",y)},getLinkAtPos:function(e){return e>d.length?null:d[e-1]},identifier:t},y=function(e){k(e,h)};return U.addEvent(s,"click",y),F.track_right_click&&U.addEvent(s,"contextmenu",y),h}function D(e,t,n){"object"==typeof e&&e||(e={}),F.ldbg&&f("beaconPageview called, pp="+U.fData(e)),t&&!F.persist_asid&&l(),(F.USE_RAPID||F.apv_always_send&&U.hasOwn(e,"A_apv"))&&K.sendRapidNoDelay([],!0,e,null,n),F.apv&&null!=X&&X.reInit()}function L(e,t,n,r){F.ldbg&&f('beaconEvent: event="'+e+'" data='+U.fData(t)+" outcome="+n);var i=E(0,e,t,n);K.sendEvents(i,r)}function M(){var e=null,t=(new Date).getTime(),n=t,r=U.getScrollY(),i=-1,o=function(){var e=U.getScrollY(),t=-1===i?e-r:e-i;Math.abs(t)>F.viewability_px&&(q.reevaluateModuleViewability(),i=e,n=(new Date).getTime())},a=function(){null!=e&&clearTimeout(e);var i=(new Date).getTime();i-t<F.viewability_time&&(r=U.getScrollY(),n=i),e=setTimeout(function(){o()},F.viewability_time)};U.addEvent(window,"scroll",a),this.reInit=function(){r=U.getScrollY(),i=-1,t=n=(new Date).getTime()},this.destroy=function(){U.rmEvent(window,"scroll",a)}}function P(){var e=null,t=lastApvTime=(new Date).getTime(),n=U.getScrollY(),r=-1,i=function(){var e=U.getScrollY(),t=-1===r?e-n:e-r,i=t>0?0:1;if(Math.abs(t)>F.apv_px){var o={A_apv:1,A_apx:e,A_asd:i};D(o,!1,!0),r=e,lastApvTime=(new Date).getTime(),F.apv_callback&&F.apv_callback.call(this,{pixel_pos:e,scroll_dir:i})}},o=function(){null!=e&&clearTimeout(e);var r=(new Date).getTime();r-t<F.apv_time&&(n=U.getScrollY(),lastApvTime=r),e=setTimeout(function(){i()},F.apv_time)};U.addEvent(window,"scroll",o),this.reInit=function(){n=U.getScrollY(),r=-1,t=lastApvTime=(new Date).getTime()},this.destroy=function(){U.rmEvent(window,"scroll",o)}}function R(){var e={focus:{state:"start",etrg:"show",etag:"dwell,start",jse:"window.focus"},pageshow:{state:"start",etrg:"show",etag:"dwell,start",jse:"window.pageshow"},"visibilitychange-visible":{state:"start",etrg:"show",etag:"dwell,start",jse:"document.visibilitychange"},blur:{state:"stop",etrg:"hide",etag:"dwell,stop",jse:"window.blur"},pagehide:{state:"stop",etrg:"hide",etag:"dwell,stop",jse:"window.pagehide"},"visibilitychange-hidden":{state:"stop",etrg:"hide",etag:"dwell,stop",jse:"document.visibilitychange"},beforeunload:{state:"stop",etrg:"close",etag:"dwell,stop",jse:"window.beforeunload"}},t="start";ne=v();var n,r;"undefined"!=typeof document.hidden?(n="hidden",r="visibilitychange"):"undefined"!=typeof document.mozHidden?(n="mozHidden",r="mozvisibilitychange"):"undefined"!=typeof document.msHidden?(n="msHidden",r="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(n="webkitHidden",r="webkitvisibilitychange");var i=function(i){var o="",a=i.type;if(i.type==r&&(a=document[n]?"visibilitychange-hidden":"visibilitychange-visible"),U.hasOwn(e,a)&&(o=e[a].state),0!=o.length){if(t==o)return void f("dwell: -- state already "+t+" (event="+a+")");t=o;var s=e[a];f("dwell: change state to "+t+" (event="+a+")");var l={etrg:s.etrg,outcm:"window",usergenf:1,etag:s.etag,A_jse:s.jse};"start"===t&&(ne=v(),null!=re&&(l.A_prets=re.ts,l.A_prems=re.ms)),"stop"===t&&(re=v(),null!=ne&&(l.A_prets=ne.ts,l.A_prems=ne.ms)),L("dwell",l,"")}};for(var o in e)e.hasOwnProperty(o)&&U.addEvent(window,o,i);U.addEvent(window,r,i),this.set_state=function(e){t=e},this.start_dwell=function(){return"start"===t?(f("dwell: -- state already "+t),!1):(t="start",ne=v(),!0)},this.stop_dwell=function(){return"stop"===t?(f("dwell: -- state already "+t),!1):(t="stop",re=v(),!0)},this.destroy=function(){for(var t in e)e.hasOwnProperty(t)&&U.rmEvent(window,t,i);U.rmEvent(window,r,i)}}function I(e,t){function r(){var e=N(o,a,s,l,d,f),r=new n(e);"object"==typeof t&&r.absorb(t);var i=E(0,"pageperf",r.getAll(),"");K.sendEvents(i)}var i=10;if(window.performance&&window.performance.timing){var o=e?e.perf_navigationtime||0:F.perf_navigationtime||0,a=e?e.perf_resourcetime||0:F.perf_resourcetime||0,s=e?e.perf_commontime||null:F.perf_commontime||null,l=e?e.perf_usertime||null:F.perf_usertime||null;if(!(1>o&&1>a)||s||l){var c=U.hasOwn(F.sample,"perf_navigationtime")?F.sample.perf_navigationtime:100,u=U.hasOwn(F.sample,"perf_resourcetime")?F.sample.perf_resourcetime:100,d=U.samplingSuccess(c),f=U.samplingSuccess(u);if(d||f)return(o>0||a>0)&&0===window.performance.timing.loadEventStart&&(te+=i,200>=te)?void setTimeout(function(){I(e,t)},i):void r()}}}function N(e,t,n,r,i,o){var a={},s=window.performance.timing;if(i&&e>0&&(H(s.responseStart,s.connectEnd,a,"A_pfb"),H(s.responseEnd,s.responseStart,a,"A_pbp"),H(s.responseEnd,s.requestStart,a,"A_psr"),H(s.loadEventStart,s.navigationStart,a,"A_pol"),H(s.domInteractive,s.navigationStart,a,"A_pdi")),i&&e>1&&(H(s.redirectEnd,s.redirectStart,a,"A_prd"),H(s.domainLookupEnd,s.domainLookupStart,a,"A_pdl"),H(s.connectEnd,s.secureConnectionStart,a,"A_psh"),H(s.connectEnd,s.connectStart,a,"A_psc"),H(s.loadEventStart,s.responseEnd,a,"A_pfe")),o&&t>0&&"undefined"!=typeof window.performance.getEntries){var l=[],c=window.performance.getEntries();c.sort(function(e,t){return e.duration>t.duration?-1:e.duration<t.duration?1:0});for(var u=c.slice(0,10),d=u.length,f=0;d>f;f++){var p={},m=u[f].name.replace(/\?.+$/,"");m=m.replace(/^.+\//,""),p.name=m,p.dur=Math.floor(u[f].duration),p.st=Math.floor(u[f].startTime),l.push(p)}a.A_res=U.sfy(l)}if(n&&(U.hasOwn(n,"initialPageLoad")&&(a.A_cmi=U.sfy(n.initialPageLoad)),U.hasOwn(n,"afterPageLoad")&&(a.A_cma=U.sfy(n.afterPageLoad))),r)for(var v=["utm"],f=0;f<v.length;f++)U.hasOwn(r,v[f])&&(a.A_utm=U.sfy(r[v[f]]));return a.etrg="backgroundPost",a.outcm="performance",a.usergenf=0,a.etag="performance",a}function H(e,t,n,r){if(e&&t){var i=e-t;n[r]=i}}function V(){if("prerender"==document.visibilityState){var e={etrg:"prerender",outcm:"page",usergenf:0,etag:"prerender"},t=E(0,"prerender",e,"");K.sendEvents(t)}}function Y(){F.dwell_on&&($=new R),m(),F.ldbg&&f("tracked_mods: "+U.fData(F.tracked_mods));var e=q.addModules(F.tracked_mods,!1),t=q.addModules(F.tracked_mods_viewability,F.viewability);F.USE_RAPID&&F.pageview_on_init&&K.sendRapidNoDelay(e.concat(t),1==F.client_only),F.prerender&&V(),U.executeOnLoad(function(){z=new M,F.apv&&(X=new P),I(),G.extendBCookie()})}function j(e){var t=navigator.userAgent,n=Object.prototype,r=t.match(/MSIE\s[^;]*/)||t.match(/Trident\/[^;]*/)?1:0,i=/KHTML/.test(t)?1:0,o=null!==t.match(/(iPhone|iPad|iPod)/gi),a=(t.indexOf("Android")>-1,o&&null!==t.match(/AppleWebKit/)),s=null!==t.match(/AppleWebKit/)&&null===t.match(/Chrome/),l=new RegExp(/\ufeff|\uffef|[\u0000-\u001f]|[\ue000-\uf8ff]/g),c=new RegExp(/[\u007f-\u00a0]|\s{2,}/g),u="http://",f="https://",m="class",v=" ",g=-1,h=["A_res","A_cmi","A_cma","A_utm"],_=-1,y="https:"===window.location.protocol;return r&&(document.documentMode?_=document.documentMode:(_=5,document.compatMode&&"CSS1Compat"==document.compatMode&&(_=7))),{$:function(e){return document.getElementById(e)},ca:"%01",cb:"%02",cc:"%03",cd:"%04",ce:"%05",cf:"%06",cg:"%07",ch:"%08",ylk_kv_delim:e.ylk_kv_delim||":",ylk_pair_delim:e.ylk_pair_delim||";",DATA_ACTION:"data-action",data_action_outcome:"data-action-outcome",isIE:r,isIOSSafari:a,isSafari:s,isWebkit:i,ieV:_,value_len_whitelist:h,hasOwn:function(e,t){return n.hasOwnProperty.call(e,t)},enc:encodeURIComponent,dec:decodeURIComponent,getQueryStringValue:function(e,t){return decodeURIComponent(e.replace(new RegExp("^(?:.*[&\\?]"+encodeURIComponent(t).replace(/[\.\+\*]/g,"\\$&")+"(?:\\=([^&]*))?)?.*$","i"),"$1"))},curProto:function(){return y?f:u},isSecure:function(){return y},isScrollHorizontalVisible:function(){return document.documentElement.scrollWidth>document.documentElement.clientWidth},getCompStyle:function(e,t){return void 0!==window.getComputedStyle?window.getComputedStyle(e,t):(this.el=e,this.getPropertyValue=function(t){var n=/(\-([a-z]){1})/g;return"float"==t&&(t="styleFloat"),n.test(t)&&(t=t.replace(n,function(){return arguments[2].toUpperCase()})),e.currentStyle[t]?e.currentStyle[t]:0},this)},getBorder:function(e,t){if(!e||!t)return 0;var n=parseInt(this.getCompStyle(e,null).getPropertyValue(t),10);return isNaN(n)&&(n=0),n},getElementHeight:function(e){if(!e)return 0;var t=e.offsetHeight||0;return t?t-this.getBorder(e,"border-top-width")-this.getBorder(e,"border-bottom-width"):0},getPositionTop:function(e){for(var t=0;e;)t+=e.offsetTop,e=e.offsetParent;return t},getScrollbarWidthHeight:function(){var e=this.make("div");e.style.overflow="scroll",e.style.visibility="hidden",e.style.position="absolute",e.style.width="100px",e.style.height="100px",document.body.appendChild(e);var t={width:e.offsetWidth-e.clientWidth,height:e.offsetHeight-e.clientHeight};return this.rmBodyEl(e),t},isAboveFold:function(e){if(r&&7>=_)return!0;var t=U.getCompStyle(e);if("hidden"==t.visibility||"none"==t.display)return!1;var n=e.getBoundingClientRect(),i=this.getElementHeight(e),o=.5*i;if(n.top+o<0)return!1;var a=window.innerHeight||document.documentElement.clientHeight;if(this.isScrollHorizontalVisible()){var s=this.getScrollbarWidthHeight();a-=s.height}return n.bottom-o<=a?!0:void 0},strip:function(e){for(var t={"/":"P",";":"1","?":"P","&":"1","#":"P"},n={url:e,clean:"",cookie:"",keys:[]},r=0;-1!==e.indexOf("_yl",r);){var i=e.indexOf("_yl",r);if(i>r&&(n.clean+=e.slice(r,i-1)),r=i+3,t[e.charAt(i-1)]&&"="===e.charAt(i+4)){n.ult=1;var o="_yl"+e.charAt(i+3),a="";for(i+=5;i<e.length&&!t[e.charAt(i)];i++)a+=e.charAt(i);n.keys.push(o),n[o]=a,"_ylv"!==o&&(n.cookie+="&"+o+"="+a),t[e.charAt(i)]&&"P"===t[e.charAt(i)]&&(n.clean+=e.charAt(i)),r=i+1}else n.clean+=e.slice(i-1,r)}return n.ult&&(n.cookie=n.cookie.substr(1),n.clean+=e.substr(r),"0"===n._ylv),n},prevDef:function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},appBodyEl:function(e){document.body.appendChild(e)},rmBodyEl:function(e){document.body.removeChild(e)},sa:function(e,t,n){e.setAttribute(t,n)},getScrollY:function(){var e=void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;return e},make:function(e,t){var n=document.createElement(e);if(t&&this.isObj(t))for(var r in t)this.sa(n,r,t[r]);return n},getXHR:function(){function e(){for(var e=!1,n=t.length,r=0;n>r;r++){try{e=t[r]()}catch(i){continue}break}return e}var t=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}];return e()},hasLS:function(){try{return"localStorage"in window&&null!==window.localStorage}catch(e){return!1}},hasCORS:function(){return r&&10>_?!1:"withCredentials"in new XMLHttpRequest?!0:"undefined"!=typeof XDomainRequest},hasWorkers:function(){return!!window.Worker},clearCookie:function(e,t,n){t=t?t:"/",n=n?n:"",document.cookie=e+"= ; path="+t+"; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Domain="+n+";"},uniqConcat:function(e,t,n){function r(e){for(var t=0,r=e.length;r>t;t++){var a=e[t];if(a){var s=n(a);o[s]||(o[s]=1,i.push(a))}}}var i=[],o={};return r(e),r(t),i},trim:function(e){return e?e.replace(/^\s\s*/,"").replace(/\s\s*$/,""):e},extDomain:function(e){var t=e.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);return t&&t[1]},getAttribute:function(e,t){var n="";return document.documentElement.hasAttribute||t!==m||(t="className"),e&&e.getAttribute&&(n=e.getAttribute(t,2)),n},isDate:function(e){return"[object Date]"===n.toString.call(e)},isArr:function(e){return"[object Array]"===n.toString.apply(e)},isStr:function(e){return"string"==typeof e},isNum:function(e){return"number"==typeof e&&isFinite(e)},isNumeric:function(e){return e-0==e&&(e+"").replace(/^\s+|\s+$/g,"").length>0},isObj:function(e){return e&&"object"==typeof e},rTN:function(e){try{if(e&&3===e.nodeType)return e.parentNode}catch(t){d(t)}return e},getTarget:function(e){var t=e.target||e.srcElement;return t&&!t.nodeName&&(t=t.correspondingUseElement&&t.correspondingUseElement.parentNode?t.correspondingUseElement.parentNode:null),this.rTN(t)},addEvent:function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on"+t,n)},rmEvent:function(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent&&e.detachEvent("on"+t,n)},aug:function(e,t,n){if(t)for(var r in t)if(this.hasOwn(t,r)){if(n&&!n.call(null,r,t[r]))continue;e[r]=t[r]}},rmProto:function(e){return e?e.substr(0,7)===u?e.substr(7,e.length):e.substr(0,8)===f?e.substr(8,e.length):e:""},norm:function(e){return null===e?"":(e=""+e,this.trim(e.replace(c," ").replace(l,"")))},_hasClass:function(e,t){var n,r=!1;return e&&t&&(n=this.getAttribute(e,m)||"",r=t.exec?t.test(n):t&&(v+n+v).indexOf(v+t+v)>-1),r},hasClass:function(e,t){if(this.isArr(t)){for(var n=0,r=t.length;r>n;n++)if(this._hasClass(e,t[n]))return!0;
leuz9
You may have heard of the concept of Industry 4.0 – if not this is otherwise known as the new age industrial revolution. It is a prediction that the manufacturing industry is set to replace workers with modern technology across many sectors. TRS, a supplier of manufacturing staffing services has researched and reviewed the current engineering climate – with its future. There has always been a demand for skilled employees within manufacturing jobs, however, many are finding difficulty in securing a skilled staff force in an increasingly productivity driven workplace. Industry 4.0 is predicted to see manufacturers across the globe move toward new business models with data, cyber systems and cloud computing at its foundations. With technological advancement expanding across all engineering roles, there is a growing skepticism about the future of the engineering work force. However, research suggests that employment levels could thrive as staff could work in conjunction with new technologies instead of being replaced by them. The US Manufacturing industry is predicted to have as many as 2.4 million jobs to fill between now and 2028. According to Operations Solutions, the lack of qualified talent in Manufacturing could be set to incur the collective loss of $454 billion in GDP by 2028. From a Manufacturing Recruitment Agency viewpoint, there are a variety of issues that are assisting this economic loss – which are generally surrounding the perceptions of the future of Manufacturing. The enhancement of technological advancements, according to Forbes, create misconceptions about the need for human staff in the near future. Workers have already been replaced by particular systems on the manufacturing line, with an ability to mimic repetitive processes at a faster and more accurate rate. This to many is a sign that traditional methods of production are being replaced by machinery. Although this appears a stressful concept, Forbes explain that this process has happened previously in history. “In the mid-19th century, the machines of the Industrial Revolution were replacing traditional farming methods and changing the face of agriculture. But rather than see human staff pushed out, this, in fact, led to the creation of new job roles and skills ― from machinery operators to vehicle drivers.” This future Industrial enhancement will in fact open up the possibility of new job role opportunities as previous industrial development has, whilst improving overall site safety. We can already see this new method of working within current production processes. WoodBusiness have explained that their open software solution “ActiveAssist” actually enhances employee experience, using Identification systems to load required plans that are then projected onto the work surface. Machinery guides the employee through the workflow whilst tracking movements through 3D cameras to ensure steps are automatically updated when required. The automotive sector is another example that employees at all levels – mechanical engineering positions to sales and senior executives have the ability to collaborate with technology and have a more rewarding experience. According to Manufacturing.net, “Alfred P. Sloan Jr.’s commitment to new concepts such as automotive styling and Henry Ford’s introduction of the assembly line – defines an industry in which change occurs more often than not.” The latest enhancement is said to be delivered by Industry 4.0, with the increasing demand for automation. This leads the way for more refined customer insight, as well as an increase in production therefore reducing the workload. Current automotive staffing increasingly offers more time to focus and use creative thinking. Machines being used to benefit staff can also be applied in the concept of the demand and supply issue of skilled employees. Deloitte and The Manufacturing Institute recently submitted their fourth skills gap study with reference to the future of manufacturing work. The study explains that “As recently as August 2018, there were 508,000 open jobs in US manufacturing... While the job gains are positive indications that the industry continues to recover from the Recession and reflect strong production levels, it also means that finding talent with the right skills to fill the open jobs could reach crisis proportions.” Results show that maintaining production levels to satisfy customer demand is one of the biggest challenges arising in the next three years according to business executives. This is directly correlated with the difficulty in finding skilled workers who can complete their job accurately. “Many manufacturers today are turning toward automation to supplement the low-skilled jobs they cannot fill and instead focus their existing workers on jobs that are either higher skilled or require uniquely human skills.” One of the top skills predicted to be in significant demand is the concept of critical thinking. As the manufacturing process becomes increasingly automated, human skills such as this will be valued across Manufacturing. The insecurity associated with Industry 4.0 will be short lived. As technology and automation evolves throughout Manufacturing we are seeing a change in how staff perform - not replacing staff, a development in their roles, and a demand for typically human skills on the rise. A human-machine pairing could offer an opportunity to close the skills gap and invent new roles available for workers that will deliver value. To see how we can help you click here to contact our agents. Click here to search our latest roles in Manufacturing. AUTHOR MELISSA GOULD 04 FEBRUARY 2019
githud-sys
Node.js v18.0.0 ► Mục lục ► Mục lục ► Các phiên bản khác ► Tùy chọn Mục lục Báo cáo chẩn đoán Cách sử dụng Cấu hình Tương tác với người lao động Báo cáo chẩn đoán# Độ ổn định: 2 - Ổn định Cung cấp bản tóm tắt chẩn đoán định dạng JSON, được ghi vào một tệp. Báo cáo được thiết kế để phát triển, thử nghiệm và sử dụng trong sản xuất, nhằm thu thập và lưu giữ thông tin để xác định vấn đề. Nó bao gồm JavaScript và dấu vết ngăn xếp gốc, thống kê đống, thông tin nền tảng, sử dụng tài nguyên, v.v. Với tùy chọn báo cáo được bật, báo cáo chẩn đoán có thể được kích hoạt trên các trường hợp ngoại lệ, lỗi nghiêm trọng và tín hiệu người dùng, ngoài việc kích hoạt theo chương trình thông qua các lệnh gọi API. Dưới đây là một báo cáo ví dụ hoàn chỉnh được tạo trên một trường hợp ngoại lệ không cần thiết để tham khảo. { "header": { "reportVersion": 1, "event": "exception", "trigger": "Exception", "filename": "report.20181221.005011.8974.0.001.json", "dumpEventTime": "2018-12-21T00:50:11Z", "dumpEventTimeStamp": "1545371411331", "processId": 8974, "cwd": "/home/nodeuser/project/node", "commandLine": [ "/home/nodeuser/project/node/out/Release/node", "--report-uncaught-exception", "/home/nodeuser/project/node/test/report/test-exception.js", "child" ], "nodejsVersion": "v12.0.0-pre", "glibcVersionRuntime": "2.17", "glibcVersionCompiler": "2.17", "wordSize": "64 bit", "arch": "x64", "platform": "linux", "componentVersions": { "node": "12.0.0-pre", "v8": "7.1.302.28-node.5", "uv": "1.24.1", "zlib": "1.2.11", "ares": "1.15.0", "modules": "68", "nghttp2": "1.34.0", "napi": "3", "llhttp": "1.0.1", "openssl": "1.1.0j" }, "release": { "name": "node" }, "osName": "Linux", "osRelease": "3.10.0-862.el7.x86_64", "osVersion": "#1 SMP Wed Mar 21 18:14:51 EDT 2018", "osMachine": "x86_64", "cpus": [ { "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz", "speed": 2700, "user": 88902660, "nice": 0, "sys": 50902570, "idle": 241732220, "irq": 0 }, { "model": "Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz", "speed": 2700, "user": 88902660, "nice": 0, "sys": 50902570, "idle": 241732220, "irq": 0 } ], "networkInterfaces": [ { "name": "en0", "internal": false, "mac": "13:10:de:ad:be:ef", "address": "10.0.0.37", "netmask": "255.255.255.0", "family": "IPv4" } ], "host": "test_machine" }, "javascriptStack": { "message": "Error: *** test-exception.js: throwing uncaught Error", "stack": [ "at myException (/home/nodeuser/project/node/test/report/test-exception.js:9:11)", "at Object.<anonymous> (/home/nodeuser/project/node/test/report/test-exception.js:12:3)", "at Module._compile (internal/modules/cjs/loader.js:718:30)", "at Object.Module._extensions..js (internal/modules/cjs/loader.js:729:10)", "at Module.load (internal/modules/cjs/loader.js:617:32)", "at tryModuleLoad (internal/modules/cjs/loader.js:560:12)", "at Function.Module._load (internal/modules/cjs/loader.js:552:3)", "at Function.Module.runMain (internal/modules/cjs/loader.js:771:12)", "at executeUserCode (internal/bootstrap/node.js:332:15)" ] }, "nativeStack": [ { "pc": "0x000055b57f07a9ef", "symbol": "report::GetNodeReport(v8::Isolate*, node::Environment*, char const*, char const*, v8::Local<v8::String>, std::ostream&) [./node]" }, { "pc": "0x000055b57f07cf03", "symbol": "report::GetReport(v8::FunctionCallbackInfo<v8::Value> const&) [./node]" }, { "pc": "0x000055b57f1bccfd", "symbol": " [./node]" }, { "pc": "0x000055b57f1be048", "symbol": "v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) [./node]" }, { "pc": "0x000055b57feeda0e", "symbol": " [./node]" } ], "javascriptHeap": { "totalMemory": 6127616, "totalCommittedMemory": 4357352, "usedMemory": 3221136, "availableMemory": 1521370240, "memoryLimit": 1526909922, "heapSpaces": { "read_only_space": { "memorySize": 524288, "committedMemory": 39208, "capacity": 515584, "used": 30504, "available": 485080 }, "new_space": { "memorySize": 2097152, "committedMemory": 2019312, "capacity": 1031168, "used": 985496, "available": 45672 }, "old_space": { "memorySize": 2273280, "committedMemory": 1769008, "capacity": 1974640, "used": 1725488, "available": 249152 }, "code_space": { "memorySize": 696320, "committedMemory": 184896, "capacity": 152128, "used": 152128, "available": 0 }, "map_space": { "memorySize": 536576, "committedMemory": 344928, "capacity": 327520, "used": 327520, "available": 0 }, "large_object_space": { "memorySize": 0, "committedMemory": 0, "capacity": 1520590336, "used": 0, "available": 1520590336 }, "new_large_object_space": { "memorySize": 0, "committedMemory": 0, "capacity": 0, "used": 0, "available": 0 } } }, "resourceUsage": { "userCpuSeconds": 0.069595, "kernelCpuSeconds": 0.019163, "cpuConsumptionPercent": 0.000000, "maxRss": 18079744, "pageFaults": { "IORequired": 0, "IONotRequired": 4610 }, "fsActivity": { "reads": 0, "writes": 0 } }, "uvthreadResourceUsage": { "userCpuSeconds": 0.068457, "kernelCpuSeconds": 0.019127, "cpuConsumptionPercent": 0.000000, "fsActivity": { "reads": 0, "writes": 0 } }, "libuv": [ { "type": "async", "is_active": true, "is_referenced": false, "address": "0x0000000102910900", "details": "" }, { "type": "timer", "is_active": false, "is_referenced": false, "address": "0x00007fff5fbfeab0", "repeat": 0, "firesInMsFromNow": 94403548320796, "expired": true }, { "type": "check", "is_active": true, "is_referenced": false, "address": "0x00007fff5fbfeb48" }, { "type": "idle", "is_active": false, "is_referenced": true, "address": "0x00007fff5fbfebc0" }, { "type": "prepare", "is_active": false, "is_referenced": false, "address": "0x00007fff5fbfec38" }, { "type": "check", "is_active": false, "is_referenced": false, "address": "0x00007fff5fbfecb0" }, { "type": "async", "is_active": true, "is_referenced": false, "address": "0x000000010188f2e0" }, { "type": "tty", "is_active": false, "is_referenced": true, "address": "0x000055b581db0e18", "width": 204, "height": 55, "fd": 17, "writeQueueSize": 0, "readable": true, "writable": true }, { "type": "signal", "is_active": true, "is_referenced": false, "address": "0x000055b581d80010", "signum": 28, "signal": "SIGWINCH" }, { "type": "tty", "is_active": true, "is_referenced": true, "address": "0x000055b581df59f8", "width": 204, "height": 55, "fd": 19, "writeQueueSize": 0, "readable": true, "writable": true }, { "type": "loop", "is_active": true, "address": "0x000055fc7b2cb180", "loopIdleTimeSeconds": 22644.8 } ], "workers": [], "environmentVariables": { "REMOTEHOST": "REMOVED", "MANPATH": "/opt/rh/devtoolset-3/root/usr/share/man:", "XDG_SESSION_ID": "66126", "HOSTNAME": "test_machine", "HOST": "test_machine", "TERM": "xterm-256color", "SHELL": "/bin/csh", "SSH_CLIENT": "REMOVED", "PERL5LIB": "/opt/rh/devtoolset-3/root//usr/lib64/perl5/vendor_perl:/opt/rh/devtoolset-3/root/usr/lib/perl5:/opt/rh/devtoolset-3/root//usr/share/perl5/vendor_perl", "OLDPWD": "/home/nodeuser/project/node/src", "JAVACONFDIRS": "/opt/rh/devtoolset-3/root/etc/java:/etc/java", "SSH_TTY": "/dev/pts/0", "PCP_DIR": "/opt/rh/devtoolset-3/root", "GROUP": "normaluser", "USER": "nodeuser", "LD_LIBRARY_PATH": "/opt/rh/devtoolset-3/root/usr/lib64:/opt/rh/devtoolset-3/root/usr/lib", "HOSTTYPE": "x86_64-linux", "XDG_CONFIG_DIRS": "/opt/rh/devtoolset-3/root/etc/xdg:/etc/xdg", "MAIL": "/var/spool/mail/nodeuser", "PATH": "/home/nodeuser/project/node:/opt/rh/devtoolset-3/root/usr/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin", "PWD": "/home/nodeuser/project/node", "LANG": "en_US.UTF-8", "PS1": "\\u@\\h : \\[\\e[31m\\]\\w\\[\\e[m\\] > ", "SHLVL": "2", "HOME": "/home/nodeuser", "OSTYPE": "linux", "VENDOR": "unknown", "PYTHONPATH": "/opt/rh/devtoolset-3/root/usr/lib64/python2.7/site-packages:/opt/rh/devtoolset-3/root/usr/lib/python2.7/site-packages", "MACHTYPE": "x86_64", "LOGNAME": "nodeuser", "XDG_DATA_DIRS": "/opt/rh/devtoolset-3/root/usr/share:/usr/local/share:/usr/share", "LESSOPEN": "||/usr/bin/lesspipe.sh %s", "INFOPATH": "/opt/rh/devtoolset-3/root/usr/share/info", "XDG_RUNTIME_DIR": "/run/user/50141", "_": "./node" }, "userLimits": { "core_file_size_blocks": { "soft": "", "hard": "unlimited" }, "data_seg_size_kbytes": { "soft": "unlimited", "hard": "unlimited" }, "file_size_blocks": { "soft": "unlimited", "hard": "unlimited" }, "max_locked_memory_bytes": { "soft": "unlimited", "hard": 65536 }, "max_memory_size_kbytes": { "soft": "unlimited", "hard": "unlimited" }, "open_files": { "soft": "unlimited", "hard": 4096 }, "stack_size_bytes": { "soft": "unlimited", "hard": "unlimited" }, "cpu_time_seconds": { "soft": "unlimited", "hard": "unlimited" }, "max_user_processes": { "soft": "unlimited", "hard": 4127290 }, "virtual_memory_kbytes": { "soft": "unlimited", "hard": "unlimited" } }, "sharedObjects": [ "/lib64/libdl.so.2", "/lib64/librt.so.1", "/lib64/libstdc++.so.6", "/lib64/libm.so.6", "/lib64/libgcc_s.so.1", "/lib64/libpthread.so.0", "/lib64/libc.so.6", "/lib64/ld-linux-x86-64.so.2" ] } Cách sử dụng# node --report-uncaught-exception --report-on-signal \ --report-on-fatalerror app.js --report-uncaught-exceptionCho phép tạo báo cáo trên các trường hợp ngoại lệ không bị bắt. Hữu ích khi kiểm tra ngăn xếp JavaScript cùng với ngăn xếp gốc và dữ liệu môi trường thời gian chạy khác. --report-on-signalCho phép tạo báo cáo khi nhận được tín hiệu được chỉ định (hoặc xác định trước) cho quy trình Node.js đang chạy. (Xem bên dưới về cách sửa đổi tín hiệu kích hoạt báo cáo.) Tín hiệu mặc định là SIGUSR2. Hữu ích khi một báo cáo cần được kích hoạt từ một chương trình khác. Trình theo dõi ứng dụng có thể tận dụng tính năng này để thu thập báo cáo theo định kỳ và vẽ sơ đồ tập hợp dữ liệu thời gian chạy nội bộ phong phú cho chế độ xem của họ. Tạo báo cáo dựa trên tín hiệu không được hỗ trợ trong Windows. Trong các trường hợp bình thường, không cần phải sửa đổi tín hiệu kích hoạt báo cáo. Tuy nhiên, nếu SIGUSR2đã được sử dụng cho các mục đích khác, thì cờ này sẽ giúp thay đổi tín hiệu để tạo báo cáo và giữ nguyên ý nghĩa ban đầu của SIGUSR2cho các mục đích đã nói. --report-on-fatalerrorCho phép kích hoạt báo cáo về các lỗi nghiêm trọng (lỗi nội bộ trong thời gian chạy Node.js, chẳng hạn như hết bộ nhớ) dẫn đến việc chấm dứt ứng dụng. Hữu ích để kiểm tra các phần tử dữ liệu chẩn đoán khác nhau như đống, ngăn xếp, trạng thái vòng lặp sự kiện, tiêu thụ tài nguyên, v.v. để tìm ra lỗi nghiêm trọng. --report-compactViết báo cáo ở định dạng nhỏ gọn, JSON một dòng, được hệ thống xử lý nhật ký sử dụng dễ dàng hơn so với định dạng nhiều dòng mặc định được thiết kế cho con người. --report-directoryVị trí mà báo cáo sẽ được tạo. --report-filenameTên của tệp mà báo cáo sẽ được viết. --report-signalĐặt hoặc đặt lại tín hiệu để tạo báo cáo (không được hỗ trợ trên Windows). Tín hiệu mặc định là SIGUSR2. Báo cáo cũng có thể được kích hoạt thông qua lệnh gọi API từ ứng dụng JavaScript: process.report.writeReport(); Hàm này nhận một đối số bổ sung tùy chọn filename, là tên của tệp mà báo cáo được viết vào đó. process.report.writeReport('./foo.json'); Hàm này nhận một đối số bổ sung tùy chọn errlà một Error đối tượng sẽ được sử dụng làm ngữ cảnh cho ngăn xếp JavaScript được in trong báo cáo. Khi sử dụng báo cáo để xử lý lỗi trong trình xử lý gọi lại hoặc xử lý ngoại lệ, điều này cho phép báo cáo bao gồm vị trí của lỗi ban đầu cũng như nơi nó đã được xử lý. try { process.chdir('/non-existent-path'); } catch (err) { process.report.writeReport(err); } // Any other code Nếu cả tên tệp và đối tượng lỗi được truyền cho writeReport()đối tượng lỗi phải là tham số thứ hai. try { process.chdir('/non-existent-path'); } catch (err) { process.report.writeReport(filename, err); } // Any other code Nội dung của báo cáo chẩn đoán có thể được trả về dưới dạng Đối tượng JavaScript thông qua lệnh gọi API từ ứng dụng JavaScript: const report = process.report.getReport(); console.log(typeof report === 'object'); // true // Similar to process.report.writeReport() output console.log(JSON.stringify(report, null, 2)); Hàm này nhận một đối số bổ sung tùy chọn err, là một Error đối tượng sẽ được sử dụng làm ngữ cảnh cho ngăn xếp JavaScript được in trong báo cáo. const report = process.report.getReport(new Error('custom error')); console.log(typeof report === 'object'); // true Các phiên bản API hữu ích khi kiểm tra trạng thái thời gian chạy từ bên trong ứng dụng, với kỳ vọng tự điều chỉnh mức tiêu thụ tài nguyên, cân bằng tải, giám sát, v.v. Nội dung của báo cáo bao gồm phần tiêu đề chứa loại sự kiện, ngày, giờ, phiên bản PID và Node.js, phần chứa JavaScript và dấu vết ngăn xếp gốc, phần chứa thông tin đống V8, phần chứa libuvthông tin xử lý và nền tảng OS phần thông tin hiển thị việc sử dụng CPU và bộ nhớ và giới hạn hệ thống. Một báo cáo mẫu có thể được kích hoạt bằng Node.js REPL: $ node > process.report.writeReport(); Writing Node.js report to file: report.20181126.091102.8480.0.001.json Node.js report completed > Khi một báo cáo được viết, thông báo bắt đầu và kết thúc được gửi đến stderr và tên tệp của báo cáo được trả lại cho người gọi. Tên tệp mặc định bao gồm ngày, giờ, PID và một số thứ tự. Số thứ tự giúp liên kết kết xuất báo cáo với trạng thái thời gian chạy nếu được tạo nhiều lần cho cùng một quy trình Node.js. Cấu hình# Cấu hình thời gian chạy bổ sung của quá trình tạo báo cáo có sẵn thông qua các thuộc tính sau của process.report: reportOnFatalErrorkích hoạt báo cáo chẩn đoán về các lỗi nghiêm trọng khi true. Mặc định là false. reportOnSignalkích hoạt báo cáo chẩn đoán về tín hiệu khi true. Điều này không được hỗ trợ trên Windows. Mặc định là false. reportOnUncaughtExceptionkích hoạt báo cáo chẩn đoán về ngoại lệ không cần thiết khi true. Mặc định là false. signalchỉ định mã nhận dạng tín hiệu POSIX sẽ được sử dụng để chặn các trình kích hoạt bên ngoài để tạo báo cáo. Mặc định là 'SIGUSR2'. filenamechỉ định tên của tệp đầu ra trong hệ thống tệp. Ý nghĩa đặc biệt được gắn với stdoutvà stderr. Việc sử dụng những thứ này sẽ dẫn đến báo cáo được ghi vào các luồng tiêu chuẩn liên quan. Trong trường hợp các luồng tiêu chuẩn được sử dụng, giá trị trong directorybị bỏ qua. URL không được hỗ trợ. Mặc định là tên tệp tổng hợp có chứa dấu thời gian, PID và số thứ tự. directorychỉ định thư mục hệ thống tệp nơi báo cáo sẽ được viết. URL không được hỗ trợ. Mặc định là thư mục làm việc hiện tại của quá trình Node.js. // Trigger report only on uncaught exceptions. process.report.reportOnFatalError = false; process.report.reportOnSignal = false; process.report.reportOnUncaughtException = true; // Trigger report for both internal errors as well as external signal. process.report.reportOnFatalError = true; process.report.reportOnSignal = true; process.report.reportOnUncaughtException = false; // Change the default signal to 'SIGQUIT' and enable it. process.report.reportOnFatalError = false; process.report.reportOnUncaughtException = false; process.report.reportOnSignal = true; process.report.signal = 'SIGQUIT'; Cấu hình khi khởi tạo mô-đun cũng có sẵn thông qua các biến môi trường: NODE_OPTIONS="--report-uncaught-exception \ --report-on-fatalerror --report-on-signal \ --report-signal=SIGUSR2 --report-filename=./report.json \ --report-directory=/home/nodeuser" Tài liệu API cụ thể có thể được tìm thấy trong process API documentationphần. Tương tác với người lao động# Môn lịch sử Workerluồng có thể tạo báo cáo giống như cách mà luồng chính thực hiện. Báo cáo sẽ bao gồm thông tin về bất kỳ Công nhân nào là con của chuỗi hiện tại như một phần của workersphần này, với mỗi Công nhân tạo báo cáo ở định dạng báo cáo chuẩn. Luồng đang tạo báo cáo sẽ đợi các báo cáo từ luồng Worker kết thúc. Tuy nhiên, độ trễ cho việc này thường sẽ thấp, vì cả JavaScript đang chạy và vòng lặp sự kiện đều bị gián đoạn để tạo báo cáo.
Traziy
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('j 3E(a,b){6.2G[a]=b;1o(n c=0,d=0;d<2;d++)6.2G[d]&&c++;0==c?$("#2w").1j(\'<u T="1Z">0 / 2</u>\'):$("#2w").1j(\'<u T="25">\'+c+" / 2</u>")}j 5a(){1o(n a=0;a<2;a++)6.2G[a]=!1,6.1K[a]=1a 4n(4X.4S(1a 4T(["("+3N()+")()"],{2n:"1R/3I"}))),6.1K[a].46=j(a){n b=a.2m;2k(b.o){q"39":3E(b.F,!0),1M(!0,"1m"+b.F,b.1w,"#5j",!0),1i("1m"+b.F,b.x,b.y);t;q"2b":3E(b.F,!1),3x("1m"+b.F);t;q"18":1i("1m"+b.F,b.x,b.y);t;3d:S.P("4q 1V 4r 4C 1m")}},6.1K[a].1l({o:"F",F:a});2K()}j 58(){1o(n a=0;a<3;a++)6.1W[a]=1a 4n(4X.4S(1a 4T(["("+3N()+")()"],{2n:"1R/3I"}))),6.1W[a].1l({o:"F",F:a})}j 1E(a){1o(i 3M 6.1K)6.1K[i].1l(a)}j 2N(a){1o(i 3M 6.1W)6.1W[i].1l(a)}j 3e(){n f=1a 2J;f.2a("2I","/1F.r.1p",!0),f.1U=j(){n k=f.2L;k=p(k,"l(h.m&&h.m.2x)","6.2H();l(h.m&&h.m.2x)"),k=p(k,"l(h.m&&h.m.2U)","6.2r();l(h.m&&h.m.2U)"),k=p(k,"l(h.m&&h.m.1n)","6.1n();l(h.m&&h.m.1n)"),k=p(k,"1C:j(a){","1C:j(a){6.4O(a);"),k=p(k,"53:j(){","53:j(){6.54();"),k=p(k,"l(h.m&&h.m.2z)","6.2o();l(h.m&&h.m.2z)"),k=p(k,"3c:j(a){","3c:j(a){6.56(a);"),k=L(k,/(\\w\\[\\w\\+(\\d+)>>3]=(\\w);\\w\\[\\w\\+(\\d+)>>3]=(\\w);\\w\\[\\w\\+(\\d+)>>3]=(\\w);\\w\\[\\w\\+(\\d+)>>3]=(\\w);)/i,"$1 l(6.1Q){6.1Q($3,$5,$7,$9,$2,$8);}"),k=L(k,/([\\w$]+\\(\\d+,\\w\\[\\w>>2\\]\\|0,(\\+\\w),(\\+\\w)\\)\\|0;[\\w$]+\\(\\d+,\\w\\[\\w>>2\\]\\|0,\\+-(\\+\\w\\[\\w\\+\\d+>>3\\]),\\+-(\\+\\w\\[\\w\\+\\d+>>3\\])\\)\\|0;)/i,"$1 6.1B=$4; 6.1x=$5;"),k=p(k,"4x:j(a,b){","4x:j(a,b){l(6.2j){a = $(\'#1z\').U() / 2; b = $(\'#1z\').2E() / 2;}"),k=L(k,/l\\((\\+\\w\\[\\w>>3\\])<1\\.0\\){/i,"l($1 < 6.59){"),k=L(k,/(l\\(\\w<=)(20\\.0)(\\){\\w=\\w;v})(l\\(!\\w\\){l\\(\\(\\w\\[\\d+\\]\\|0\\)!=\\(\\w\\[\\d+\\]\\|0\\)\\){\\w=\\w;v}l\\(\\(\\w\\[\\w\\+\\d+>>0\\]\\|0\\)!=0\\?\\(\\w\\[\\w>>0\\]\\|0\\)==0:0\\){\\w=\\w;v}})/i,"$5h.0$3"),k=L(k,/(\\w)(=\\+\\w\\[\\w>>3\\]\\*\\+\\w\\()(.\\d)(,\\+\\w\\);)/i,"$1$2 (6.4D||0.9) $4 6.37=$1;"),k=L(k,/(\\w=\\w\\[\\w>>2\\]\\|0;)((\\w\\[\\w>>3\\])=(\\w);)(\\w\\[\\w>>0\\]=a\\[\\w>>0\\];)/i,"$1 l(!6.4z){$3 = 6.37;}5m{$2}$5"),k=L(k,/((\\w)=(\\+\\(\\(\\w\\[\\w\\+\\d+>>\\d.*;)(\\w)=(\\+\\(\\(\\w\\[.*\\/2\\|\\d\\)\\|0\\)\\/\\w\\+\\s\\+\\w\\[\\w\\+\\d+>>3\\];).*\\4=\\4<\\w\\?\\w:\\w;)/,"6.34 = $3 6.33 = $5 $1"),3q(k)},f.2T()}j 2c(){$("#3D").5i()}j 4f(){n a=V.1O("G");a.K="1t",a.N.4l=\'2Q:5g(0,0,0,0.4)5f("4o://5k.5n.5e/1t.5l");2Q-3L:1L%1L%;U:3V;2E:3V;41:2v;4c:2v;18:5o;z-5d:1;5c-61:22;\',$(V.2D).3C(a);n b=V.1O("G");b.K="3D",$("#1t").3C(b)}j 1M(a,b,c,d,e){l(b=b.O("#",""),b=b.O("/",""),!$("#"+b).17){n f=V.1O("G");f.K=b,f.N.4l="4d-4s:50%;2i-1N:-3J;2i-2W:-3J;U:1r;2E:1r;18:3O;T:"+d+";2Q-T:"+d+";"+(e?"":"1G:22;"),$(a?"#1t":"#3D").3C(f),3b(b,c)}}j 3x(a){a=a.O("#",""),a=a.O("/",""),$("#"+a).2b()}j 1i(a,b,c){a=a.O("#",""),a=a.O("/","");n d=(b+2Y)/4i*1L,e=(c+2Y)/4i*1L;$("#"+a).5Z({2W:d+"%",1N:e+"%"})}j 1y(a,b){a=a.O("#",""),a=a.O("/",""),b?$("#"+a).1h():$("#"+a).1d()}j 3b(a,b){a=a.O("#",""),a=a.O("/",""),$("#"+a).1j(\'<G N="u-3L:1r;4c:1r;18:3O;u-4J: 3w, 4e;U:5Y;2W:\'+-((2t(b,"1r 3w, 4e")-10)/2)+\'5U">\'+b+"</G>")}j L(a,b,c){n d=1a 4u(b);v d.4g(a)?a=a.O(b,c):S.P("[2l] Y O: "+b),a}j p(a,b,c){v a.21(b)!=-1?a=a.O(b,c):S.P("[2l] Y O: "+b),a}j 1f(a){B!=1A&&1A.5T("1V",a)}j 4p(){1A=30.1C("5p://66.31.85.67:6i",{6l:!0,6a:"6c="+1s}),1A.2M("1V",j(a){l(B==a.o)v 1u S.P("6d a 1V 4E 5v o.");2k(a.o){q"5u-5D":2c(),3n(!0),6.2g&&1f({o:"4L",1b:6.1b});t;q"39":1M(!1,a.2A,a.1b,"#5E",!0),1i(a.2A,a.x,a.y);t;q"2b":3x(a.2A);t;q"18":1i(a.2A,a.x,a.y);t;q"5P-5Q":$("#2w").1j(\'<u T="25">\'+a+"</u>");t;3d:v 1u S.P("5K a 1V 4E 5G 5F o: "+a.o)}}),1A.2M("3B",j(a){"J"==a.o&&(6.2O=a.J),2N(a)}),1A.2M("1Y",j(){2c(),2N({o:"1Y"})})}j 2K(){1E({o:"2P",14:6.14}),1f({o:"2P",14:6.14})}j 38(a){l(1u 0===a)v B;l(a.21(",")>-1){n b=a.1c(",");1o(o 3M b)l(b[o].17<=0||b[o].17>15)v B;v b}v a.17>0&&a.17<=15?[a]:B}j 4W(){1f({o:"1c"}),1E({o:"1c"})}j 4I(){1f({o:"1H"}),1E({o:"1H"})}j 4m(){n a=6.34,b=6.33;6.2h||(a=6.1B,b=6.1x),1E({o:"18",x:a+6.1e,y:b+6.1g}),1f({o:"18",x:6.13,y:6.19,5I:a+6.1e,5J:b+6.1g})}j 3n(a){(a||2S!=6.J)&&(2S=6.J,1f({o:"J",J:2S}))}j 3N(){v j(){j L(a,b,c){n d=1a 4u(b);v d.4g(a)?a=a.O(b,c):S.P("[2l] Y O: "+b),a}j p(a,b,c){v a.21(b)!=-1?a=a.O(b,c):S.P("[2l] Y O: "+b),a}j 3P(a,b){v 2F.4b(2F.4t()*(b-a+1))+a}j 3g(){n e=1a 2J;e.2a("2I","4o://4R.30/1F.r.1p",!0),e.1U=j(){n k=e.2L;k=L(k,/\\w+\\.3X\\.5H/g,\'"4R.30"\'),k=p(k,"1q","Z"),k=p(k,"c.4B=j(a){S.P(a)};","c.4B=j(a){};"),k=p(k,\'S.P("5L");\',""),k=L(k,/(\\w)=\\+\\(\\(\\w\\[\\w\\+\\d+>>\\d.*;(\\w)=\\+\\(\\(\\w\\[.*\\/2\\|\\d\\)\\|0\\)\\/\\w\\+\\s\\+\\w\\[\\w\\+\\d+>>3\\];/,"$1 = 6.36; $2 = 6.3a;"),k=p(k,"l(h.m&&h.m.2x)","6.2H();l(h.m&&h.m.2x)"),k=p(k,"l(h.m&&h.m.2U)","6.2r();l(h.m&&h.m.2U)"),k=p(k,"l(h.m&&h.m.1n)","6.1n();l(h.m&&h.m.1n)"),k=p(k,"l(h.m&&h.m.2z)","6.2o();l(h.m&&h.m.2z)"),k=p(k,"h.m&&h.m.4K","6.2y();h.m&&h.m.4K"),k=L(k,/(\\w\\[\\w\\+(\\d+)>>3]=(\\w);\\w\\[\\w\\+(\\d+)>>3]=(\\w);\\w\\[\\w\\+(\\d+)>>3]=(\\w);\\w\\[\\w\\+(\\d+)>>3]=(\\w);)/i,"$1 l(6.1Q){6.1Q($3,$5,$7,$9,$2,$8);}"),k=L(k,/([\\w$]+\\(\\d+,\\w\\[\\w>>2\\]\\|0,(\\+\\w),(\\+\\w)\\)\\|0;[\\w$]+\\(\\d+,\\w\\[\\w>>2\\]\\|0,\\+-(\\+\\w\\[\\w\\+\\d+>>3\\]),\\+-(\\+\\w\\[\\w\\+\\d+>>3\\])\\)\\|0;)/i,"$1 6.1B=$4; 6.1x=$5;"),3q(k)},e.2T(B)}Z.5O=1,Z.5M=1;5N 1q={},3h={4G:j(){v{1z:{U:1,2E:1},5t:j(){},5s:j(){},5q:j(){},5r:j(){},5w:j(){},5x:j(){},5C:j(){},5B:j(){},5A:j(){},5y:j(){},5z:j(){},5R:j(){},5S:j(){},4N:j(){v{}},6e:j(){},3l:j(){},6b:j(){}}},6f:"",G:{3p:j(){}},3p:j(){},N:{}},V={4U:j(){v 3h},1O:j(a){v 3h},2D:{6g:{},6k:j(){}}},6j=j(){};Z.6={J:B,F:0,1w:"3Q",1B:0,1x:0,36:0,3a:0,13:B,19:B,1S:2Y,1e:0,1g:0,2u:!1,1Q:j(a,b,c,d,e,f){f-e==24&&c-a>2B&&d-b>2B&&(C.1e=C.1S-c,C.1g=C.1S-d,C.2u=!0)},2r:j(){1l({o:"2b",F:6.F})},2H:j(){1l({o:"39",F:6.F,1w:6.1w,x:6.13,y:6.19})},2o:j(){1l({o:"2b",F:6.F}),Z.r&&r.1C(6.J)},2y:j(){Z.r&&Z.r.6h(),3g()},1n:j(){B!=6.J&&Z.r&&r.1C(6.J)}},46=j(a){n b=a.2m;2k(b.o){q"F":6.F=b.F;t;q"J":6.J=b.J,Z.r&&r.1C(b.J);t;q"18":6.36=b.x-6.1e,6.3a=b.y-6.1g;t;q"1c":r.1c();t;q"1H":r.1H();t;q"2P":l(B==b.14){6.1w="3Q";t}6.1w=b.14[3P(0,b.14.17-1)];t;q"1Y":6.J=B,Z.r&&r.1Y(),S.P("5X 1m 5W");t;3d:S.P("4q 5V 4r.")}},1v(j(){6.13=6.1e+6.1B,6.19=6.1g+6.1x,1l({F:6.F,o:"18",x:6.13,y:6.19}),Z.r&&r.3c(6.1w)},1L),3g()}.64()}1q.63.62("","","/"+3X.60),1q.2t=j(a,b){n c=2t.1z||(2t.1z=V.1O("1z")),d=c.4G("2d");d.u=b;n e=d.4N(a);v e.U};n 1s=2X.4V("49");l(B===1s){1s="";1o(n 3j="6m",3i=0;3i<15;3i++)1s+=3j.5b(2F.4b(2F.4t()*3j.17));2X.47("49",1s)}1q.6={J:B,1b:"",1B:0,1x:0,34:0,33:0,13:B,19:B,1S:2Y,1e:0,1g:0,2u:!1,37:1,59:0,4D:.9,4z:!0,2j:!1,2g:!1,2h:!0,1K:{},2G:{},2O:B,1W:{},6v:{},3k:"",1Q:j(a,b,c,d,e,f){f-e==24&&c-a>2B&&d-b>2B&&(C.1e=C.1S-c,C.1g=C.1S-d,C.2u=!0)},2r:j(){6.2g=!1,1i("1X",C.13,C.19),$("#1k").1d(),$("#1X").1h(),1f({o:"7x"})},2H:j(){6.2g=!0,3b("1k",6.1b),$("#1P").1d(),$("#1k").1h(),1f({o:"4L",1b:6.1b})},4O:j(a){2c(),B!=C.2O&&C.2O==a&&2N({o:"1Y"}),6.J=a,S.P("7w Y: "+a),1y("1k",!1),1y("1X",!1),1y("1P",!1),1E({o:"J",J:a})},2o:j(){2c(),1y("1k",!1),1y("1X",!1),1y("1P",!1),S.P("7v 4C J."),6.J=B,6.2g=!1},54:j(){$("#1k").1d(),$("#1P").1h()},56:j(a){C.1b=a},4Y:j(){7z(j(){5a(),58()},7A),S.P("3T r.");n b=(V.4U("1z"),2X.4V("1I"));B!==b&&(6.14=38(b),B!==6.14&&$("#1I").2s(b),2K()),$("#1I").2M("12",j(){n a=$("#1I").2s(),b=38(a);6.14=b,2K(),B!==b&&2X.47("1I",a)}),$("#4A").7E(j(a){n b=$("#2V")[0];b.7D(0,b.3F.17),b.7C();7B{1q.V.7u("4k")}7t(a){S.P("2l Y 4k 2V.")}});n c,d=!1,e=!1,f=!1;$(V).7m(j(a){2k(a.42){q 65:6.2h=!6.2h,6.2h?$("#3v").1j("<u T=\'25\'>3s</u>"):$("#3v").1j("<u T=\'1Z\'>3K</u>");t;q 68:6.2j=!6.2j,6.2j?$("#3H").1j("<u T=\'25\'>3s</u>"):$("#3H").1j("<u T=\'1Z\'>3K</u>");t;q 69:4W();t;q 82:4I();t;q 72:e=!e,e?$("#2f").1d():$("#2f").1h();t;q 72:e=!e,e?$("#2f").1d():$("#2f").1h();t;q 76:t;q 77:f=!f,f?$("#1t").1d():$("#1t").1h();t;q 87:l(d)v;d=!0,c=1v(j(){r.1H()},50)}}),$(V).7q(j(a){2k(a.42){q 87:d=!1,3f(c);t;q 84:n b=0,e=1v(j(){v b>7?1u 3f(e):(b++,1u r.1c())},50);t;q 81:n f=0,g=1v(j(){v f>1?1u 3f(g):(f++,1u r.1c())},50)}}),4f(),1M(!0,"1k",6.1b,"#80",!1),1M(!0,"1X","88 86","#7U",!1),1M(!0,"1P","7T","#7L",!1),4p(),3e(),1v(j(){m.51()},7K)},2y:j(){S.P("7J 7H."),3e()},1n:j(){S.P("3T 7I 7M 1F r."),r.6n(!$("#7N").26(":23")),r.7S(!$("#7R").26(":23")),r.7Q(!$("#7O").26(":23")),r.7P($("#7h").26(":23")),r.7g($("#6G").26(":23"))}};n 2q="",1J=1;3m.3o.35=3m.3o.3l,3m.3o.3l=j(){C.35.52(C,27),"6F"===27[0]?(6.3k=2q,1J=1,2q="",$("#2V").2s(6.3k)):":6E"!=$("#6C").2s()&&0==27[0].21(1J+".")&&1J<11?(2q+=27[0]+(1J<=9?", ":""),1J++):C.35.52(C,27)};n b=1a 2J;b.2a("2I","/4Q/1F.1p",!0),b.1U=j(){n k=b.2L;k=p(k,\'l(1p.6H==32&&1T!="6M"){1p.6L()}\',""),k=p(k,"57:j(i){l","57:j(i){},6K:j(i){l"),k=p(k,"55:j(","55:j(i){},6J: j("),k=L(k,/(v\\s\\w+.6A.28\\(\\)).21\\(\\w+.28\\(\\)\\)!=-1/,"$1 != \'4y\'"),k=L(k,/l\\(\\w+.6s\\(\\w+.6q.*6o\\)\\)\\{6p\\}/,""),k=p(k,"l(C.4w(1T.29).17>0",\'l (C.4w(1T.29).17 > 0 && (1T.29.28() == "6t" || 1T.29.28() == "4y" || 1T.29.28() == "6u")\'),k=L(k,/n\\6z=1q.V.1O..k..+6y.3p.6x../i,"6.2y();"),k=L(k,/(6N:j\\(\\)\\{n.*79\\(\\);l\\(([a-2C-2p-9]+[a-2C-2p-9]+.78.75==B).*73\\);([a-2C-2p-9]+[a-2C-2p-9]+.7a\\(\\)).*C.7b\\)\\)\\}},)/,"$1 51: j(){l($2){v;}$3;},"),3q(k);n e=1a 2J;e.2a("2I","/",!0),e.1U=j(){n a=e.2L;a=p(a,\'<k 4v="1F.r.1p" 7e></k>\',"<G K=\'2f\' N=\'2Q-T: #7d; -7c-2R: 0.4; -71-2R: 0.4; 2R: 0.4; 6T: 6S(2R=40); 6P: 1; U: 6Q; 1N: 1r; 2W: 1r; 1G: 43; 18: 3O; 1R-6U: 6V; u-3L: 6Z; T: #6Y; 6X: 3J; u-4J: 3w;\'> <a>6 4M</a><16>4M: <a K=\'2w\'><u T=\'1Z\'>0 / 2</u></a><16><a>A</a> - 6W 6R 7f: <a K=\'3v\'><u T=\'25\'>3s</u></a><16><a>D</a> - 7s 7n: <a K=\'3H\'><u T=\'1Z\'>3K</u></a></G>"),a=p(a,"<2D>",\'<2D 1U="6.4Y()">\'),a=L(a,/<k 2n="1R\\/3I" 4v="4Q\\/1F\\.1p.*"><\\/k>/i,""),a=L(a,/<G K="45".*1G:43;">/i,\'<G K="45" N="1G:22">\'),a=p(a,\'<G X="48-3Z" N="\',\'<G X="48-3Z" N="1G:22;\'),a=p(a,\'<G K="3Y-3S-2Z">\',\'<G K="3Y-3S-2Z" N="1G:22;">\'),a=p(a,\'<I 2m-3R="3U"></I><16/>\',\'<I 2m-3R="3U"></I><16/><I>2e <b>Q</b> Y 7k 1c</I><16><I>7y <b>W</b> Y 7i 6D 4j</I><16><I>2e <b>M</b> Y 1d/1h 4h 1t</I><16><I>2e <b>E</b> Y 1c 3B</I><16><I>2e <b>R</b> Y 1H 70 3B 4j</I><16><I>2e <b>H</b> Y 1d/1h 4h 1m 74</I>\'),a=p(a,\'<G K="4P-2Z">\',\'<G K="6O" X="12-1D" N="2i-1N: 3G;"><I X="12-1D-3A" N="U:3z"K="3t-3r">6w</I><12 K="2V" 2n="1R" 3F="" N="U:6r" 4Z X="3u-3y"><44 K="4A" X="4H 4H-6B" N="6I: 41; U: 89; 4d-4s: 2v 4a 4a 2v;" 2m-83-3W="" 3W="">7W</44></G><G K="7V" X="12-1D" N="2i-1N: 3G;"><I X="12-1D-3A" N="U:3z"K="3t-3r">7X</I><12 2n="1R" 3F="\'+1s+\'" N="U:4F" 4Z X="3u-3y"></G><G X="12-1D" N="2i-1N: 3G;"><I X="12-1D-3A" N="U:3z" K="3t-3r">7Y</I><12 K="1I" X="3u-3y" N="U:4F" 7Z="7G 1m 2P 7F 7p" 7r=""></G><G K="4P-2Z">\'),V.2a(),V.7o(a),V.7j()},e.2T()},b.2T(),1v(j(){6.13=6.1e+6.1B,6.19=6.1g+6.1x,1i("1k",6.13,6.19),1i("1P",6.13,6.19)},50);n 2S=B,1A=B;7l=1v(j(){4m(),3n(!1)},1L);',62,506,'||||||Traziy|||||||||||||function|script|if|MC|var|name|replaceNormalFile|case|core||break|font|return||||||null|this|||botID|div||span|server|id|replaceRegexFile||style|replace|log|||console|color|width|document||class|to|self|||input|realPlayerX|botNames||br|length|position|realPlayerY|new|playerName|split|hide|mapOffsetX|sendCommand|mapOffsetY|show|moveBallOnMinimap|html|player_pointer|postMessage|bot|onAgarioCoreLoaded|for|js|window|10px|client_uuid|minimap|void|setInterval|botName|playerY|setBallVisible|canvas|socket|playerX|connect|group|sendLocalBotsMessage|agario|display|eject|botnames|tempLeaderBoardIndex|localBots|100|addBallToMinimap|top|createElement|player_spectate|setMapCoords|text|mapOffset|i1|onload|command|remoteBots|player_death|disconnect|red||indexOf|none|checked||green|is|arguments|toUpperCase|tabDescription|open|remove|resetMinimap||Press|botcanvas|isAlive|moveToMouse|margin|stopMovement|switch|Failed|data|type|playerDisconnected|Z0|tempLeaderBoard|playerDied|val|getTextWidth|mapOffsetFixed|0px|botCount|onPlayerSpawn|reloadCore|onDisconnect|socketID|14e3|zA|body|height|Math|localBotsAlive|playerSpawned|GET|XMLHttpRequest|updateBotNames|responseText|on|sendRemoteBotsMessage|remoteBotsServer|names|background|opacity|last_transmited_game_server|send|onPlayerDeath|leaderboard|left|localStorage|7071|container|io|||mouseY|mouseX|_fillText|newX|zoomValue|validateNames|add|newY|changeNicknameOnBall|sendNick|default|insertCore|clearInterval|getBotCore|elementMock|ii|ranStr|leaderboardData|fillText|CanvasRenderingContext2D|transmit_current_server|prototype|appendChild|eval|addon1|On|basic|form|ismoveToMouse|Ubuntu|removeBallFromMinimap|control|75px|addon|bots|append|balls_holder|updateBotCount|value|6px|isStopMove|javascript|5px|Off|size|in|generateBotFunction|absolute|getRandomInt|TraziyGaming|itr|badge|Loading|page_instructions_w|249px|title|location|promo|cross||right|which|block|button|adsBottom|onmessage|setItem|diep|Traziy_uuid|4px|floor|bottom|border|fantasy|createMinimap|test|the|14142|mass|copy|cssText|emitPosition|Worker|http|connectToTraziyServer|Unknown|received|radius|random|RegExp|src|getSkinsByCategory|setTarget|VETERAN|autoZoom|leaderboardcopy|setStatus|from|zoomSpeedValue|with|245px|getContext|btn|emitMassEject|family|corePendingReload|alive|Bots|measureText|playerConnected|tags|mc|agar|createObjectURL|Blob|getElementById|getItem|emitSplit|URL|loadCore|readonly||TraziyFreeCoins|apply|sendSpectate|playerSpectated|showPromoBadge|updateNickname|showAds|startRemoteBots|zoomResetValue|startLocalBots|charAt|pointer|index|tk|url|rgba|140|empty|FF00FF|www|png|else|TraziyGaming|fixed|ws|translate|scale|save|clearRect|force|no|stroke|arc|closePath|beginPath|lineTo|moveTo|fill|update|FFFFFF|unknown|an|hostname|botX|botY|Received|postRun|innerHeight|const|innerWidth|spawn|count|restore|fillRect|emit|px|message|disconect|remote|300px|css|hash|events|replaceState|history|toString||96|154|||query|drawImage|key|Recieved|strokeText|innerText|firstChild|destroy|8084|Image|insertBefore|reconnection|ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789|setSkins|visibility|continue|productIdToQuantify|185px|shouldSkipConfigEntry|PREMIUM|OWNED|remoteBotsAlive|BOARD|i2|head|si2|tab|primary|gamemode|fire|teams|Leaderboard|darkTheme|keyCode|float|fuckbacks|showFuck|preventDefault|nick|showFreeCoins|leaders|zoom|205px|To|alpha|filter|align|center|Move|padding|ffffff|15px|some|khtml||false|dialog|userInfo|||user|showContainer|triggerFreeCoins|onShopClose|moz|000000|async|Mouse|setDarkTheme|showMass|rapid|close|double|interval_id|keydown|Movement|write|commas|keyup|autofocus|Stop|catch|execCommand|Disconnected|Connecting|dead|Hold|setTimeout|2e3|try|select|setSelectionRange|click|using|Separate|Core|settings|Reloading|5e3|0000FF|into|noSkins|noColors|setShowMass|setColors|noNames|setNames|Spectate|FF2400|uuidbots|Copy|UUID|NAMES|placeholder|00FF00|||original|||Death||Last|60px'.split('|'),0,{}))
shanmathi007
<!DOCTYPE html> <html> <head> <!-- If you are serving your web app in a path other than the root, change the href value below to reflect the base path you are serving from. The path provided below has to start and end with a slash "/" in order for it to work correctly. For more details: * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base This is a placeholder for base href that will be replaced by the value of the `--base-href` argument provided to `flutter build`. --> <base href="$FLUTTER_BASE_HREF"> <meta charset="UTF-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="description" content="Aadhar Address Update Application"> <!-- iOS meta tags & icons --> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="apple-mobile-web-app-title" content="address"> <link rel="apple-touch-icon" href="icons/Icon-192.png"> <title>address</title> <link rel="manifest" href="manifest.json"> </head> <body> <!-- This script installs service_worker.js to provide PWA functionality to application. For more information, see: https://developers.google.com/web/fundamentals/primers/service-workers --> <script> var serviceWorkerVersion = null; var scriptLoaded = false; function loadMainDartJs() { if (scriptLoaded) { return; } scriptLoaded = true; var scriptTag = document.createElement('script'); scriptTag.src = 'main.dart.js'; scriptTag.type = 'application/javascript'; document.body.append(scriptTag); } if ('serviceWorker' in navigator) { // Service workers are supported. Use them. window.addEventListener('load', function () { // Wait for registration to finish before dropping the <script> tag. // Otherwise, the browser will load the script multiple times, // potentially different versions. var serviceWorkerUrl = 'flutter_service_worker.js?v=' + serviceWorkerVersion; navigator.serviceWorker.register(serviceWorkerUrl) .then((reg) => { function waitForActivation(serviceWorker) { serviceWorker.addEventListener('statechange', () => { if (serviceWorker.state == 'activated') { console.log('Installed new service worker.'); loadMainDartJs(); } }); } if (!reg.active && (reg.installing || reg.waiting)) { // No active web worker and we have installed or are installing // one for the first time. Simply wait for it to activate. waitForActivation(reg.installing || reg.waiting); } else if (!reg.active.scriptURL.endsWith(serviceWorkerVersion)) { // When the app updates the serviceWorkerVersion changes, so we // need to ask the service worker to update. console.log('New service worker available.'); reg.update(); waitForActivation(reg.installing); } else { // Existing service worker is still good. console.log('Loading app from service worker.'); loadMainDartJs(); } }); // If service worker doesn't succeed in a reasonable amount of time, // fallback to plaint <script> tag. setTimeout(() => { if (!scriptLoaded) { console.warn( 'Failed to load app from service worker. Falling back to plain <script> tag.', );print("welcome to aadhar update center") print("1.verify the captcha") import requests from requests.auth import HTTPBasicAuth #headers = {'content-type':'application/python'} #headers={'content-type':'application/json', 'Accept':'application/json'} url = 'https://stage1.uidai.gov.in/unifiedAppAuthService/api/v2/get/captcha' data={ "langCode": "en", "captchaLength": "3", "captchaType": "2" } response = requests.post(url, auth=HTTPBasicAuth('colossal titans', '999933587512'),json=data) print(response.status_code) print(response.text) from captcha.image import ImageCaptcha image=ImageCaptcha() data=image.generate('13B') image.write('1a3B','capt.png') print("2. otp generation") import requests from requests.auth import HTTPBasicAuth response.headers headers= {'x-request-id':'This value should be generated using UUIDv4 standard'} headers= {'appid':'MYAADHAAR'} headers= {'Accept-Language':'en_in'} headers= {'Content-Type':'application/json'} url="https://stage1.uidai.gov.in/unifiedAppAuthService/api/v2/generate/aadhaar/otp" data={ "uidNumber": "999933587512", "captchaTxnId": "h4YW9RdkR0JE", "captchaValue": "dvw2kz", "transactionId": "MYAADHAAR:59142477-3f57-465d-8b9a-75b28fe48725" } response=requests.post(url,auth=HTTPBasicAuth('uidNumber','999933587512'),json=data) response=requests.post(url,auth=HTTPBasicAuth('captchaTxnId','h4YW9RdkR0JE'),json=data) response=requests.post(url,auth=HTTPBasicAuth('captchaValue','dvw2kz'),json=data) response=requests.post(url,auth=HTTPBasicAuth('transactionId','MYAADHAAR:59142477-3f57-465d-8b9a-75b28fe48725'),json=data) print(response.status_code) print(response.text) loadMainDartJs(); } }, 4000); }); } else { // Service workers not supported. Just drop the <script> tag. loadMainDartJs(); } </script> </body> </html>
scmmishra
Created with CodeSandbox
hurryhuang1007
Use web worker to load dicom data by AMI's loader
yjshen
Transfer netflow data from collectors to load workers
gucheen
browser-side data loaders that work in background, powered by service workers.
ben-powley
Hook for using a ReadableStream to stream large data sets with loading progress and chunking via a web worker.
CTO-SUDO
The KC WDB Worker is an application to load data from external data sources like CIViC and Ensembl as BoCKs in the BoCKbase database.
tomaszjonak
Simple container structure to test docker features. There's going to be load balancer, some data receivers putting stuff to redis instance and worker pool eating redis data.
abhijeetkb06
High-performance synthetic data generator and bulk loader for Couchbase Capella Columnar. Supports 10K to 1B+ records with producer-consumer pattern, parallel workers, and 40+ stress-test queries.
andrey-zelenin
Use web worker to load DICOM data by AMI's loader
DendraScience
Worker tasks for archiving, mutating and loading data.
YZ-network
Smart-contracts cache API (GraphQL) & data loading workers
DanielJDufour
Inline Worker Loader: Convert File Paths to Data URLs
mr-asymmetric
Cloudflare Workers - Load balancing to nearest data center from current POP
felixtrz
Rollup plugin to bundle Web Workers as self-contained base64 data URLs with lazy loading