{"data":{"id":"10.5061/dryad.vq83bk48n","type":"dois","attributes":{"doi":"10.5061/dryad.vq83bk48n","prefix":"10.5061","suffix":"dryad.vq83bk48n","identifiers":[],"alternateIdentifiers":[],"creators":[{"name":"Capaldi, Luc","nameType":"Personal","givenName":"Luc","familyName":"Capaldi","affiliation":["University of Pennsylvania"],"nameIdentifiers":[{"schemeUri":"https://orcid.org","nameIdentifier":"https://orcid.org/0000-0002-2942-4582","nameIdentifierScheme":"ORCID"}]},{"name":"Ford, Jamie","nameType":"Personal","givenName":"Jamie","familyName":"Ford","affiliation":["University of Pennsylvania"],"nameIdentifiers":[]},{"name":"Fulco, Sage","nameType":"Personal","givenName":"Sage","familyName":"Fulco","affiliation":["University of Pennsylvania"],"nameIdentifiers":[]},{"name":"Rai, Rajeev","nameType":"Personal","givenName":"Rajeev","familyName":"Rai","affiliation":["University of Pennsylvania"],"nameIdentifiers":[]},{"name":"Yang, Wuxian","nameType":"Personal","givenName":"Wuxian","familyName":"Yang","affiliation":["University of Southern California"],"nameIdentifiers":[]},{"name":"Ching, Stephen","nameType":"Personal","givenName":"Stephen","familyName":"Ching","affiliation":["University of Pennsylvania"],"nameIdentifiers":[]},{"name":"Stach, Eric","nameType":"Personal","givenName":"Eric","familyName":"Stach","affiliation":["University of Pennsylvania"],"nameIdentifiers":[]},{"name":"Turner, Kevin","nameType":"Personal","givenName":"Kevin","familyName":"Turner","affiliation":["University of Pennsylvania"],"nameIdentifiers":[]},{"name":"Chen, Wen","nameType":"Personal","givenName":"Wen","familyName":"Chen","affiliation":["University of Southern California"],"nameIdentifiers":[]},{"name":"Tertuliano, Ottman","nameType":"Personal","givenName":"Ottman","familyName":"Tertuliano","affiliation":["University of Pennsylvania"],"nameIdentifiers":[{"schemeUri":"https://orcid.org","nameIdentifier":"https://orcid.org/0000-0003-0524-3944","nameIdentifierScheme":"ORCID"}]}],"titles":[{"title":"Data and code from: Multiscale fatigue crack initiation in hierarchical additively manufactured alloys"}],"publisher":"Dryad","container":{},"publicationYear":2026,"subjects":[{"subject":"FOS: Mechanical engineering","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"FOS: Mechanical engineering","schemeUri":"http://www.oecd.org/science/inno/38235147.pdf","subjectScheme":"Fields of Science and Technology (FOS)"},{"subject":"FOS: Materials engineering","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"FOS: Materials engineering","schemeUri":"http://www.oecd.org/science/inno/38235147.pdf","subjectScheme":"Fields of Science and Technology (FOS)"},{"subject":"FOS: Nano-technology","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"Fatigue","schemeUri":"https://github.com/PLOS/plos-thesaurus","subjectScheme":"PLOS Subject Area Thesaurus"},{"subject":"Metal fatigue","schemeUri":"https://github.com/PLOS/plos-thesaurus","subjectScheme":"PLOS Subject Area Thesaurus"},{"subject":"Additive manufacturing"},{"subject":"Bioinspiration"},{"subject":"fracture"}],"contributors":[],"dates":[{"date":"2026-04-30T14:28:50Z","dateType":"Created"},{"date":"2026-04-30T14:28:55Z","dateType":"Submitted"},{"date":"2026-05-08T00:00:00Z","dateType":"Issued"},{"date":"2026-05-08T00:00:00Z","dateType":"Available"}],"language":"en","types":{"ris":"DATA","bibtex":"misc","citeproc":"dataset","schemaOrg":"Dataset","resourceType":"dataset","resourceTypeGeneral":"Dataset"},"relatedIdentifiers":[],"relatedItems":[],"sizes":["146750106 bytes"],"formats":[],"version":"2","rightsList":[{"rights":"Creative Commons Zero v1.0 Universal","rightsUri":"https://creativecommons.org/publicdomain/zero/1.0/legalcode","schemeUri":"https://spdx.org/licenses/","rightsIdentifier":"cc0-1.0","rightsIdentifierScheme":"SPDX"}],"descriptions":[{"description":"Bio-inspired hierarchical microstructures offer a route towards engineered\n fatigue resistance in additively manufactured alloys. However, it remains\n unclear how discrete structural constituents independently govern damage\n accumulation, particularly during the critical fatigue initiation regime\n where short cracks strongly interact with local microstructure. Here, we\n investigate multiscale fatigue initiation in a dual-phase, nanolamellar\n AlCoCrFeNi2.1 high-entropy alloy. By comparing microscale specimens that\n isolate the nanolamellar structure against macroscale specimens containing\n the full melt-pool architecture, we identify size-dependent fatigue\n initiation mechanisms. We find that failure is dictated by nanolamellar\n interfaces at the microscale, whereas mesoscale melt pool boundaries serve\n to initiate fatigue at the macroscale. This mechanistic shift is\n accompanied by a transition from macroscale quasi-brittle failure to\n microscale plasticity-driven crack extension. Our results provide a\n physical framework for understanding how structural hierarchy governs the\n transition from discrete microstructural deformation to continuum fatigue\n fracture behavior, informing the design of damage-tolerant, additively\n manufactured alloys.","descriptionType":"Abstract"},{"description":"\u003cstrong\u003eMaterials manufacturing\u003c/strong\u003e\n AlCoCrFeNi\u003csub\u003e2.1\u003c/sub\u003e eutectic high-entropy alloy\n (HEA) samples were manufactured using an EOS M290 Laser Powder Bed Fusion\n (L-PBF) system (EOS GmbH, Germany) equipped with a 400 W Yb-fiber laser.\n The laser beam was focused through an F-theta lens, producing a fixed spot\n size of 100 μm. Gas-atomized pre-alloyed powders with particle sizes\n ranging from 15 to 53 μm were employed as the feedstock. All samples were\n processed under an argon atmosphere with an oxygen concentration\n maintained below 1000 ppm. A 4140 steel substrate was preheated to 80 °C\n to mitigate thermal residual stresses and enhance interfacial bonding. The\n L-PBF process was conducted using a laser power of 350 W, scanning speed\n of 1000 mm/s, hatch spacing of 0.08 mm, and layer thickness of 0.04 mm. A\n continuous stripe scanning strategy with full-length laser tracks across\n the build area was adopted, together with a 67° interlayer rotation, to\n minimize residual stress accumulation and promote microstructural\n uniformity. These optimized printing parameters match those reported in\n prior work. Rectangular plates with dimensions of 50 × 20 × 3\n mm\u003csup\u003e3\u003c/sup\u003e were fabricated, achieving a relative density\n exceeding 99.5 %. As-cast samples were prepared by\n arc-melting a mixture of raw elements with a purity of approximately 99.9\n wt. % under an argon atmosphere. The ingots were inverted and re-melted at\n least six times to ensure compositional homogeneity, followed by suction\n casting into a water-cooled copper mold with dimensions of 50 × 10 × 3\n mm\u003csup\u003e3\u003c/sup\u003e. \u003cstrong\u003eSpecimen\n fabrication\u003c/strong\u003e Two perpendicular edges of\n bulk AM and cast samples were manually polished with SiC sandpaper (800,\n 1200 grit), followed by a water-based diamond suspension (9 μm, 1 μm) and\n colloidal silica (0.05 μm). Microcantilevers were subsequently fabricated\n using a Tescan S8252X FIB-SEM (TESCAN, Czech Republic) with a\n Xe\u003csup\u003e+\u003c/sup\u003e ion plasma source at a constant accelerating\n voltage of 30 keV. Rough cuts were performed at 100 nA, 30 nA, and 10 nA,\n followed by polishing cuts at 1 nA and 100 pA on all faces. A notch was\n introduced with a top-down, 100 pA cut in the final step. For AM\n specimens, notches were positioned near (but not intersecting) melt pool\n boundaries to achieve a predominantly orthogonal lamellar orientation\n relative to the crack front. Following fabrication, imaging was performed\n using the electron beam of the same instrument with a constant\n accelerating voltage of 5 keV, 300 pA beam current to extract the specimen\n dimensions. Additional high resolution imaging was performed using a Zeiss\n ORION NanoFab Scanning Helium Ion Microscope (ZEISS, Germany) at 25 kV\n accelerating voltage. Further post-mortem characterization was performed\n using a Keyence VK-X3000 Series 3D Surface Profiler (Keyence,\n USA). Single-edge notched bend (SENB) specimens were\n machined exclusively from the as-built AM samples using wire EDM.\n Specimens had a side-to-side thickness of B = 2.5 mm oriented along the\n build direction, width W = 5.0 mm, length L = 22.5 mm, and an initial\n crack length a\u003csub\u003e0\u003c/sub\u003e = 2.5 mm, in compliance with ASTM\n E1820 guidelines. Crack propagation occurred along W, orthogonal to the\n build direction. \u003cstrong\u003eNanoindentation\n experiments\u003c/strong\u003e Nanoindentation experiments\n were performed on bulk, polished AM and cast specimens using an iMicro\n Nanoindenter (KLA, USA) with an InForce 50 actuator and a 1.89 μm radius\n diamond conical tip (Synton-MDP, Switzerland). All tests were performed at\n a constant strain rate of 1 × 10\u003csup\u003e-3\u003c/sup\u003e\n s\u003csup\u003e-1\u003c/sup\u003e to a peak load of 8 mN, using a 100 Hz\n continuous stiffness measurement (CSM) signal at a target displacement\n amplitude of 2 nm to monitor stiffness. Using the Oliver and Pharr method,\n elastic moduli of E = 142.8 ± 13.6 GPa (n = 32 measurements) and E = 50.3\n ± 2.8 GPa (n = 24) were measured for the AM and cast systems,\n respectively. Indentation depth, h\u003csub\u003eindent\u003c/sub\u003e, and\n contact stiffness, S\u003csub\u003econtact\u003c/sub\u003e, were expressed as\n functions of the indentation load, P, by fitting power-law equations to\n averaged nanoindentation data. \u003cstrong\u003eMicroscale\n fatigue experiments\u003c/strong\u003e Microcantilever\n fatigue experiments were performed using a NanoFlip Nanoindenter (KLA,\n USA) with an InForce 50 actuator and the same conical tip used for\n nanoindentation, integrated with a Quanta 600 FEG Mark II ESEM (FEI\n Company, USA). The SEM stage was tilted by 5-10° relative to the electron\n beam to improve visibility. Videos were collected at 10 FPS with a beam\n dwell time of either 300 ns/pixel or 1 μs/pixel at 10 keV accelerating\n voltage. Each microcantilever was loaded monotonically to a target static\n load, P\u003csub\u003estatic\u003c/sub\u003e, at a constant displacement rate of\n 10 nm/s, which was allowed to decay at 0.1 mN/μm to maintain stable\n actuator control during dynamic loading. A 10 Hz sinusoidal load,\n P\u003csub\u003edynamic\u003c/sub\u003e, with RMS amplitude of 2 mN was\n superimposed on the static load to induce fatigue and monitor stiffness,\n leading to a varying stress ratio. Additional experiments (AM4, C4) were\n performed using a 1 Hz cyclic loading method with a constant stress ratio,\n R = 0.1; for these tests, stiffness was measured from the unloading slope\n of each cycle. Stiffness data were corrected by\n treating machine compliance, contact stiffness, and beam bending stiffness\n as a system of springs in series. Machine compliance was determined from\n instrument calibration, while the contact stiffness was measured from\n nanoindentation data. The first cycle (N = 1) was defined at the first\n measurable decrease in stiffness from the initial value. Crack length, a,\n was computed from the corrected bending stiffness using elastic-plastic\n finite element (FE) simulations relating normalized stiffness\n S/S\u003csub\u003e0\u003c/sub\u003e to normalized crack length a/W. The resulting\n a vs. N data were smoothed using a fourth-order univariate spline. Crack\n growth rates, da/dN, were computed as the analytical derivative of this\n spline. The driving force was estimated from the cyclic ranges of load,\n ΔP, and displacement, Δd, for each cycle. These ranges were substituted\n into the area-based definitions for J standardized in ASTM\n E1820. \u003cstrong\u003eMacroscale fatigue\n experiments\u003c/strong\u003e SENB fatigue experiments\n were performed using a MTS Criterion Model 43 uniaxial testing machine\n (MTS Systems Corporation, USA) equipped with a 10 kN load cell. Specimens\n were tested with a custom-fabricated steel three-point bend fixture with a\n support span, S = 20 mm. Both the support and loading pins were stainless\n steel cylinders with a nominal diameter of 1.5 mm. Cyclic loading was\n performed with a stress ratio, R = 0.1, and a peak load,\n P\u003csub\u003emax\u003c/sub\u003e = 521 N, determined using the ASTM E1820\n fatigue pre-crack load formula. ASTM E1820 permits fatigue loading at\n 0.7P\u003csub\u003emax\u003c/sub\u003e to prevent premature failure; specimen B1\n was tested for 4000 cycles at this reduced load with no crack extension,\n so all subsequent testing was performed at P\u003csub\u003emax\u003c/sub\u003e.\n All tests were performed at a displacement rate of ±5 mm/minute,\n corresponding to a cycle frequency of approximately 0.4 Hz. The crack tip\n was imaged during testing using a BFS-U3-88S6M-C USB 3.1 Blackfly S camera\n (Teledyne FLIR, USA) with an adjustable zoom lens, recording at a frame\n rate of 14.5 Hz with a resolution of 1920 × 1080 pixels.\n The load-line compliance, C, was obtained from the inverse slope\n of the unloading data for each cycle and corrected for machine compliance.\n Normalized crack length, a/W, was computed from the corrected compliance\n following ASTM E1820 and validated against crack mouth opening compliance\n measurements. The first cycle (N = 1) was defined at the first measurable\n increase in compliance from the initial value. Both crack length, a, and\n load, P vs. N data were smoothed using a Gaussian filter with σ = 100\n cycles. Crack growth rates, da/dN, were computed as the numerical\n derivative of the smoothed crack length data using the ASTM E647\n Incremental Polynomial Method with n = 4. The change in linear elastic\n stress intensity factor during cycling, ΔK = K\u003csub\u003emax\u003c/sub\u003e -\n K\u003csub\u003emin\u003c/sub\u003e, was computed using the smoothed data from the\n ASTM E1820 expression for SENB specimens, with the load range taken as 0.9\n P\u003csub\u003emax\u003c/sub\u003e for R = 0.1. The provisional fracture\n toughness, K\u003csub\u003eQ\u003c/sub\u003e, was obtained by treating the final\n cycle as a monotonic fracture test, evaluating K at the peak\n load. \u003cstrong\u003eFatigue initiation length\n scales\u003c/strong\u003e Fatigue initiation length scales,\n ξ, were determined from cyclic crack growth resistance curves (ΔJ vs. Δa,\n or ΔK vs. Δa data) that exhibit two distinct power-law regimes. Each\n regime was fit to a linear model on a log-log scale, and ξ was defined as\n the crack extension at the intersection of these fits. Fitting ranges were\n determined algorithmically to ensure reproducibility. For the large crack\n regime, a linear fit was performed starting from the final data point,\n with the fitting window progressively extending towards earlier data\n points while R\u003csup\u003e2\u003c/sup\u003e ≥ 0.98; when\n R\u003csup\u003e2\u003c/sup\u003e fell below this threshold, the previous window\n size was retained. The minimum window size was the greater of 10 data\n points, or 5 % of the overall data. For the small crack regime, a linear\n fit was performed starting from the first data point, with the fitting\n window progressively extending towards later data; window sizes from 5 %\n to 40 % of the total data were tested, and the window maximizing\n R\u003csup\u003e2\u003c/sup\u003e was selected. The intersection was computed as ξ\n = exp[(C\u003csub\u003e2\u003c/sub\u003e -\n C\u003csub\u003e1\u003c/sub\u003e)/(m\u003csub\u003e1\u003c/sub\u003e -\n m\u003csub\u003e2\u003c/sub\u003e)], where (m\u003csub\u003e1\u003c/sub\u003e,\n C\u003csub\u003e1\u003c/sub\u003e) and (m\u003csub\u003e2\u003c/sub\u003e,\n C\u003csub\u003e2\u003c/sub\u003e) are the slopes and intercepts of the small\n crack and large crack fits, respectively.\n \u003cstrong\u003eTransmission electron\n microscopy\u003c/strong\u003e Transmission electron\n microscopy (TEM) imaging was conducted using a JEOL F200 transmission\n electron microscope operating at 200 kV. TEM micrographs were recorded\n using a OneView camera (Gatan Inc., USA). Cross-sectional TEM lamellae\n were prepared using an FEI Strata DB235 focused ion beam scanning electron\n microscope (FIB-SEM). Initial lamella preparation was performed using a\n 100 pA beam current at 30 kV, followed by low-voltage surface cleaning at\n 30 pA and 5 kV to minimize surface damage and amorphization.\n \u003cstrong\u003eFocused ion beam\n tomography\u003c/strong\u003e Focused ion beam tomography\n was performed using a Tescan S8252X FIB-SEM (TESCAN, Czech Republic) with\n a Xe\u003csup\u003e+\u003c/sup\u003e ion plasma source at 30 keV, 300 pA with a 20\n nm slice thickness. SEM images were acquired with a pixel size of 20 nm\n and a dwell time of 3 μs. Three-dimensional (3D) crack geometry was\n reconstructed from these image stacks and segmented on a slice-by-slice\n basis using the Segment Editor module in 3D Slicer. Initial segmentation\n was performed via intensity-based thresholding and manually corrected to\n exclude crack surfaces exposed in previous slices but not intersecting the\n current slice. To correct for beam drift, vertical translation for each\n sequential slice was estimated by cross-correlating one-dimensional\n profiles of the signed vertical intensity gradient. The calculated offsets\n were applied to the grayscale image stack using linear interpolation, and\n to the binary label map using nearest-neighbor interpolation with\n zero-padding to maintain the integrity of the segmented labels. Finally, a\n 3D median filter with a 3 × 3 × 3 voxel kernel was applied to the binary\n volume to smooth voxelated boundaries. Sequential color maps were\n generated by varying lightness in the CAM02-UCS perceptually uniform color\n space while preserving hue, with chroma scaled at lightness extremes to\n maximize contrast within the sRGB gamut.","descriptionType":"Methods"},{"description":"# Data and code from: Multiscale fatigue crack initiation in hierarchical\n additively manufactured alloys\n [https://doi.org/10.5061/dryad.vq83bk48n](https://doi.org/10.5061/dryad.vq83bk48n) Open source dataset for the manuscript titled \"Multiscale fatigue crack initiation in hierarchical additively manufactured alloys\". This dataset contains raw and processed data from macroscale and microscale fatigue fracture experiments (fatigue_fracture.zip), nanoindentation experiments (nanoindentation.zip) and multiscale fatigue fracture surface characterization (surface_characterization.zip). ## Description of the data and file structure #### fatigue_fracture.zip Contains both raw and processed CSV files from macroscale and microscale fatigue fracture experiments. File names follow the format: `scale_specimenID_fabricationMethod_frequency_rawOrProcessed.csv` Comprehensive examples: 1. `micro_C1_cast_10Hz_raw.csv` * `micro` microscale specimen * `C1` specimen identifier * `cast` fabricated via casting * `10Hz` 10 Hz cyclic loading frequency * `raw` raw data 1. `macro_B1_AM_0p4Hz_processed.csv` * `macro` macroscale specimen * `B1` specimen identifier * `AM` fabricated via additive manufacturing * `0p4Hz` 0.4 Hz cyclic loading frequency * `processed` processed data Some raw files are split into chronological segments indicated by a numeric suffix (e.g., `_001`, `_002`). **fatigue_fracture/macroscale/raw/** Raw data from three AM single-edge notched beam (SENB) specimens (B1, B2, B3) collected using a MTS Criterion Model 43 uniaxial testing machine at 0.4 Hz. Columns: * `Load (N)` applied load in Newtons * `Displacement (mm)` crosshead displacement in millimeters * `Time (s)` elapsed time in seconds * `Cycle` cycle number **fatigue_fracture/macroscale/processed/** Processed output from `fatigue_fracture_analysis_macroscale.py`. Columns: * `N` cycle number * `delta_K (MPa*sqrt(m))` stress intensity factor range in MPa sqrt(m) * `Δa (mm)` crack extension in millimeters * `da/dN (m/cycle)` crack growth rate in meters/cycle **fatigue_fracture/microscale/raw/** Raw data from four AM and four cast microcantilever specimens (AM1-AM4, C1-C4) collected using a KLA Nanoflip nanoindenter. Files tested at 10 Hz contain columns: * `Dynamic Force (μN)` dynamic load amplitude in micronewtons * `Dynamic Displacement (nm)` dynamic displacement amplitude in nanometers * `Dynamic Stiffness (N/m)` stiffness in Newtons/meter * `Time (s)` elapsed time in seconds Files tested at 1 Hz contain columns: * `Load (mN)` applied load in millinewtons * `Displacement (nm)` displacement in nanometers * `Stiffness (N/m)` stiffness in Newtons/meter * `Cycle Number` cycle number **fatigue_fracture/microscale/fea/** FEA calibration files relating crack length ratio to specimen stiffness, used to compute crack length from measured stiffness. One file per material type (`fea_calibration_AM.csv`, `fea_calibration_cast.csv`). Columns: * `a/W` crack length to specimen width ratio * `k (N/m)` specimen stiffness in Newtons/meter **fatigue_fracture/microscale/processed/** Processed output from `fatigue_fracture_analysis_microscale.py`. Columns: * `N` cycle number * `J (J/m^2)` cyclic J-integral in Joules/meter squared * `Δa (um)` crack extension in micrometers * `da/dN (m/cycle)` crack growth rate in meters/cycle #### nanoindentation.zip Contains CSV files from nanoindentation experiments on AM and cast material, collected using a KLA iMicro nanoindenter. Files are organized into `AM/` and `cast/` subdirectories and named as follows: `nanoindentation_material_testXX.CSV` where `material` is `AM` or `cast` and `XX` is a zero-padded test index (e.g., `nanoindentation_AM_test01.CSV`). Columns in all nanoindentation files: * `Markers` event markers (e.g., `Surface Index`, `End Of Loading Index`) * `DEPTH` indentation depth in nanometers * `LOAD` applied load in millinewtons * `STIFFNESS` stiffness in Newtons/meter * `TIME` elapsed time in seconds Data can be processed using `process_nanoindentation_data.py`, which implements the Oliver-Pharr method (Oliver and Pharr, JMR 2004, [https://doi.org/10.1557/jmr.2004.19.1.3](https://doi.org/10.1557/jmr.2004.19.1.3)) to compute elastic modulus. #### surface_characterization.zip Contains surface topography data from macro- and microscale fatigue fracture surfaces. * `macro_fatigue_fracture_surface.txt` tab-separated height map (values in meters) of the macroscale fracture surface. Header lines (prefixed with `#`) specify the scan dimensions and value units. * `micro_fatigue_fracture_surface_smoothed.vtk` 3D surface mesh of the microscale fracture surface after Gaussian smoothing, in VTK format. * `micro_fatigue_fracture_surface_unsmoothed.vtk` 3D surface mesh of the microscale fracture surface prior to smoothing, in VTK format. VTK files can be opened with ParaView or any software supporting the VTK legacy format. ## Sharing/Access Information All data is available here. If anything appears to be missing, please contact the corresponding author. ## Code/Software Python scripts for processing all data types are included alongside the data: * `fatigue_fracture/macroscale/fatigue_fracture_analysis_macroscale.py` processes raw macroscale SENB data. Computes K, Δa, da/dN, K_Q, and the crack initiation length scale. * `fatigue_fracture/microscale/fatigue_fracture_analysis_microscale.py` processes raw microscale data. Computes J, Δa, and da/dN. * `fatigue_fracture/microscale/fit_initiation_length_scale_microscale.py` fits the crack initiation length scale from microscale fatigue data. * `nanoindentation/process_nanoindentation_data.py` computes elastic modulus via the Oliver-Pharr method and fits power-law relations for averaged depth and stiffness as a function of load. All scripts are annotated and include sections for (1) loading raw data, (2) processing and performing relevant calculations, and (3) exporting cleaned/processed datasets.","descriptionType":"TechnicalInfo"}],"geoLocations":[],"fundingReferences":[{"schemeUri":"https://ror.org","awardTitle":"NSF Graduate Research Fellowship","funderName":"Directorate for STEM Education (EDU)","funderIdentifier":"https://ror.org/014bj5w56","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","awardTitle":"\n        CAREER: Understanding the Dynamic Mechanical Adaptations of Bone Tissue\n        at Small Length Scales\n      ","funderName":"Division of Civil, Mechanical \u0026 Manufacturing Innovation","awardNumber":"2339836","funderIdentifier":"https://ror.org/028yd4c30","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","awardTitle":"\n        CAREER: Understanding Microstructure Evolution and Deformation Mechanism\n        of Strong yet Ductile Nanolamellar High-Entropy Alloys Produced by\n        Additive Manufacturing\n      ","funderName":"Division of Materials Research","awardNumber":"2516550","funderIdentifier":"https://ror.org/01pc7k308","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","funderName":"National Nuclear Security Administration","awardNumber":"DE-NA0004154","funderIdentifier":"https://ror.org/03sk1we31","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","awardTitle":"Materials Research Science and Engineering Centers (MRSEC) UPENN","funderName":"Division of Materials Research","awardNumber":"2309043","funderIdentifier":"https://ror.org/01pc7k308","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","funderName":"U.S. National Science Foundation","awardNumber":"NNCI-2025608","funderIdentifier":"https://ror.org/021nxhr62","funderIdentifierType":"ROR"}],"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTA2MS9EUllBRC5WUTgzQks0OE48L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPkNhcGFsZGksIEx1YzwvY3JlYXRvck5hbWU+CiAgICAgIDxuYW1lSWRlbnRpZmllciBuYW1lSWRlbnRpZmllclNjaGVtZT0iT1JDSUQiIHNjaGVtZVVSST0iaHR0cDovL29yY2lkLm9yZy8iPjAwMDAtMDAwMi0yOTQyLTQ1ODI8L25hbWVJZGVudGlmaWVyPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDBiMzB4djEwIiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPlVuaXZlcnNpdHkgb2YgUGVubnN5bHZhbmlhPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5Gb3JkLCBKYW1pZTwvY3JlYXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbiBhZmZpbGlhdGlvbklkZW50aWZpZXI9Imh0dHBzOi8vcm9yLm9yZy8wMGIzMHh2MTAiIGFmZmlsaWF0aW9uSWRlbnRpZmllclNjaGVtZT0iUk9SIiBzY2hlbWVVUkk9Imh0dHBzOi8vcm9yLm9yZyI+VW5pdmVyc2l0eSBvZiBQZW5uc3lsdmFuaWE8L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPkZ1bGNvLCBTYWdlPC9jcmVhdG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uIGFmZmlsaWF0aW9uSWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzAwYjMweHYxMCIgYWZmaWxpYXRpb25JZGVudGlmaWVyU2NoZW1lPSJST1IiIHNjaGVtZVVSST0iaHR0cHM6Ly9yb3Iub3JnIj5Vbml2ZXJzaXR5IG9mIFBlbm5zeWx2YW5pYTwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+UmFpLCBSYWplZXY8L2NyZWF0b3JOYW1lPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDBiMzB4djEwIiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPlVuaXZlcnNpdHkgb2YgUGVubnN5bHZhbmlhPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5ZYW5nLCBXdXhpYW48L2NyZWF0b3JOYW1lPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDN0YXo3bTYwIiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPlVuaXZlcnNpdHkgb2YgU291dGhlcm4gQ2FsaWZvcm5pYTwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+Q2hpbmcsIFN0ZXBoZW48L2NyZWF0b3JOYW1lPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDBiMzB4djEwIiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPlVuaXZlcnNpdHkgb2YgUGVubnN5bHZhbmlhPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5TdGFjaCwgRXJpYzwvY3JlYXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbiBhZmZpbGlhdGlvbklkZW50aWZpZXI9Imh0dHBzOi8vcm9yLm9yZy8wMGIzMHh2MTAiIGFmZmlsaWF0aW9uSWRlbnRpZmllclNjaGVtZT0iUk9SIiBzY2hlbWVVUkk9Imh0dHBzOi8vcm9yLm9yZyI+VW5pdmVyc2l0eSBvZiBQZW5uc3lsdmFuaWE8L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPlR1cm5lciwgS2V2aW48L2NyZWF0b3JOYW1lPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDBiMzB4djEwIiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPlVuaXZlcnNpdHkgb2YgUGVubnN5bHZhbmlhPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5DaGVuLCBXZW48L2NyZWF0b3JOYW1lPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDN0YXo3bTYwIiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPlVuaXZlcnNpdHkgb2YgU291dGhlcm4gQ2FsaWZvcm5pYTwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+VGVydHVsaWFubywgT3R0bWFuPC9jcmVhdG9yTmFtZT4KICAgICAgPG5hbWVJZGVudGlmaWVyIG5hbWVJZGVudGlmaWVyU2NoZW1lPSJPUkNJRCIgc2NoZW1lVVJJPSJodHRwOi8vb3JjaWQub3JnLyI+MDAwMC0wMDAzLTA1MjQtMzk0NDwvbmFtZUlkZW50aWZpZXI+CiAgICAgIDxhZmZpbGlhdGlvbiBhZmZpbGlhdGlvbklkZW50aWZpZXI9Imh0dHBzOi8vcm9yLm9yZy8wMGIzMHh2MTAiIGFmZmlsaWF0aW9uSWRlbnRpZmllclNjaGVtZT0iUk9SIiBzY2hlbWVVUkk9Imh0dHBzOi8vcm9yLm9yZyI+VW5pdmVyc2l0eSBvZiBQZW5uc3lsdmFuaWE8L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogIDwvY3JlYXRvcnM+CiAgPHRpdGxlcz4KICAgIDx0aXRsZT4KICAgICAgRGF0YSBhbmQgY29kZSBmcm9tOiBNdWx0aXNjYWxlIGZhdGlndWUgY3JhY2sgaW5pdGlhdGlvbiBpbiBoaWVyYXJjaGljYWwKICAgICAgYWRkaXRpdmVseSBtYW51ZmFjdHVyZWQgYWxsb3lzCiAgICA8L3RpdGxlPgogIDwvdGl0bGVzPgogIDxwdWJsaXNoZXIgcHVibGlzaGVySWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzAweDZoNW45NSIgcHVibGlzaGVySWRlbnRpZmllclNjaGVtZT0iUk9SIiBzY2hlbWVVUkk9Imh0dHBzOi8vcm9yLm9yZy8iPkRyeWFkPC9wdWJsaXNoZXI+CiAgPHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJEYXRhc2V0Ij5kYXRhc2V0PC9yZXNvdXJjZVR5cGU+CiAgPHB1YmxpY2F0aW9uWWVhcj4yMDI2PC9wdWJsaWNhdGlvblllYXI+CiAgPHN1YmplY3RzPgogICAgPHN1YmplY3Qgc3ViamVjdFNjaGVtZT0iZm9zIiBzY2hlbWVVUkk9Imh0dHBzOi8vd2ViLWFyY2hpdmUub2VjZC5vcmcvMjAxMi0wNi0xNS8xMzg1NzUtMzgyMzUxNDcucGRmIj5GT1M6IE1lY2hhbmljYWwgZW5naW5lZXJpbmc8L3N1YmplY3Q+CiAgICA8c3ViamVjdCBzdWJqZWN0U2NoZW1lPSJmb3MiIHNjaGVtZVVSST0iaHR0cHM6Ly93ZWItYXJjaGl2ZS5vZWNkLm9yZy8yMDEyLTA2LTE1LzEzODU3NS0zODIzNTE0Ny5wZGYiPkZPUzogTWF0ZXJpYWxzIGVuZ2luZWVyaW5nPC9zdWJqZWN0PgogICAgPHN1YmplY3Qgc3ViamVjdFNjaGVtZT0iZm9zIiBzY2hlbWVVUkk9Imh0dHBzOi8vd2ViLWFyY2hpdmUub2VjZC5vcmcvMjAxMi0wNi0xNS8xMzg1NzUtMzgyMzUxNDcucGRmIj5GT1M6IE5hbm8tdGVjaG5vbG9neTwvc3ViamVjdD4KICAgIDxzdWJqZWN0IHN1YmplY3RTY2hlbWU9IlBMT1MgU3ViamVjdCBBcmVhIFRoZXNhdXJ1cyIgc2NoZW1lVVJJPSJodHRwczovL2dpdGh1Yi5jb20vUExPUy9wbG9zLXRoZXNhdXJ1cyI+RmF0aWd1ZTwvc3ViamVjdD4KICAgIDxzdWJqZWN0IHN1YmplY3RTY2hlbWU9IlBMT1MgU3ViamVjdCBBcmVhIFRoZXNhdXJ1cyIgc2NoZW1lVVJJPSJodHRwczovL2dpdGh1Yi5jb20vUExPUy9wbG9zLXRoZXNhdXJ1cyI+TWV0YWwgZmF0aWd1ZTwvc3ViamVjdD4KICAgIDxzdWJqZWN0PkFkZGl0aXZlIG1hbnVmYWN0dXJpbmc8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5CaW9pbnNwaXJhdGlvbjwvc3ViamVjdD4KICAgIDxzdWJqZWN0PmZyYWN0dXJlPC9zdWJqZWN0PgogIDwvc3ViamVjdHM+CiAgPGZ1bmRpbmdSZWZlcmVuY2VzPgogICAgPGZ1bmRpbmdSZWZlcmVuY2U+CiAgICAgIDxmdW5kZXJOYW1lPkRpcmVjdG9yYXRlIGZvciBTVEVNIEVkdWNhdGlvbiAoRURVKTwvZnVuZGVyTmFtZT4KICAgICAgPGZ1bmRlcklkZW50aWZpZXIgZnVuZGVySWRlbnRpZmllclR5cGU9IlJPUiI+aHR0cHM6Ly9yb3Iub3JnLzAxNGJqNXc1NjwvZnVuZGVySWRlbnRpZmllcj4KICAgICAgPGF3YXJkVGl0bGU+TlNGIEdyYWR1YXRlIFJlc2VhcmNoIEZlbGxvd3NoaXA8L2F3YXJkVGl0bGU+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+RGl2aXNpb24gb2YgQ2l2aWwsIE1lY2hhbmljYWwgJmFtcDsgTWFudWZhY3R1cmluZyBJbm5vdmF0aW9uPC9mdW5kZXJOYW1lPgogICAgICA8ZnVuZGVySWRlbnRpZmllciBmdW5kZXJJZGVudGlmaWVyVHlwZT0iUk9SIj5odHRwczovL3Jvci5vcmcvMDI4eWQ0YzMwPC9mdW5kZXJJZGVudGlmaWVyPgogICAgICA8YXdhcmROdW1iZXI+MjMzOTgzNjwvYXdhcmROdW1iZXI+CiAgICAgIDxhd2FyZFRpdGxlPgogICAgICAgIENBUkVFUjogVW5kZXJzdGFuZGluZyB0aGUgRHluYW1pYyBNZWNoYW5pY2FsIEFkYXB0YXRpb25zIG9mIEJvbmUgVGlzc3VlCiAgICAgICAgYXQgU21hbGwgTGVuZ3RoIFNjYWxlcwogICAgICA8L2F3YXJkVGl0bGU+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+RGl2aXNpb24gb2YgTWF0ZXJpYWxzIFJlc2VhcmNoPC9mdW5kZXJOYW1lPgogICAgICA8ZnVuZGVySWRlbnRpZmllciBmdW5kZXJJZGVudGlmaWVyVHlwZT0iUk9SIj5odHRwczovL3Jvci5vcmcvMDFwYzdrMzA4PC9mdW5kZXJJZGVudGlmaWVyPgogICAgICA8YXdhcmROdW1iZXI+MjUxNjU1MDwvYXdhcmROdW1iZXI+CiAgICAgIDxhd2FyZFRpdGxlPgogICAgICAgIENBUkVFUjogVW5kZXJzdGFuZGluZyBNaWNyb3N0cnVjdHVyZSBFdm9sdXRpb24gYW5kIERlZm9ybWF0aW9uIE1lY2hhbmlzbQogICAgICAgIG9mIFN0cm9uZyB5ZXQgRHVjdGlsZSBOYW5vbGFtZWxsYXIgSGlnaC1FbnRyb3B5IEFsbG95cyBQcm9kdWNlZCBieQogICAgICAgIEFkZGl0aXZlIE1hbnVmYWN0dXJpbmcKICAgICAgPC9hd2FyZFRpdGxlPgogICAgPC9mdW5kaW5nUmVmZXJlbmNlPgogICAgPGZ1bmRpbmdSZWZlcmVuY2U+CiAgICAgIDxmdW5kZXJOYW1lPk5hdGlvbmFsIE51Y2xlYXIgU2VjdXJpdHkgQWRtaW5pc3RyYXRpb248L2Z1bmRlck5hbWU+CiAgICAgIDxmdW5kZXJJZGVudGlmaWVyIGZ1bmRlcklkZW50aWZpZXJUeXBlPSJST1IiPmh0dHBzOi8vcm9yLm9yZy8wM3NrMXdlMzE8L2Z1bmRlcklkZW50aWZpZXI+CiAgICAgIDxhd2FyZE51bWJlcj5ERS1OQTAwMDQxNTQ8L2F3YXJkTnVtYmVyPgogICAgICA8YXdhcmRUaXRsZS8+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+RGl2aXNpb24gb2YgTWF0ZXJpYWxzIFJlc2VhcmNoPC9mdW5kZXJOYW1lPgogICAgICA8ZnVuZGVySWRlbnRpZmllciBmdW5kZXJJZGVudGlmaWVyVHlwZT0iUk9SIj5odHRwczovL3Jvci5vcmcvMDFwYzdrMzA4PC9mdW5kZXJJZGVudGlmaWVyPgogICAgICA8YXdhcmROdW1iZXI+MjMwOTA0MzwvYXdhcmROdW1iZXI+CiAgICAgIDxhd2FyZFRpdGxlPk1hdGVyaWFscyBSZXNlYXJjaCBTY2llbmNlIGFuZCBFbmdpbmVlcmluZyBDZW50ZXJzIChNUlNFQykgVVBFTk48L2F3YXJkVGl0bGU+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+VS5TLiBOYXRpb25hbCBTY2llbmNlIEZvdW5kYXRpb248L2Z1bmRlck5hbWU+CiAgICAgIDxmdW5kZXJJZGVudGlmaWVyIGZ1bmRlcklkZW50aWZpZXJUeXBlPSJST1IiPmh0dHBzOi8vcm9yLm9yZy8wMjFueGhyNjI8L2Z1bmRlcklkZW50aWZpZXI+CiAgICAgIDxhd2FyZE51bWJlcj5OTkNJLTIwMjU2MDg8L2F3YXJkTnVtYmVyPgogICAgICA8YXdhcmRUaXRsZS8+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgPC9mdW5kaW5nUmVmZXJlbmNlcz4KICA8ZGF0ZXM+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iQ3JlYXRlZCI+MjAyNi0wNC0zMFQxNDoyODo1MFo8L2RhdGU+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iU3VibWl0dGVkIj4yMDI2LTA0LTMwVDE0OjI4OjU1WjwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJJc3N1ZWQiPjIwMjYtMDUtMDhUMDA6MDA6MDBaPC9kYXRlPgogICAgPGRhdGUgZGF0ZVR5cGU9IkF2YWlsYWJsZSI+MjAyNi0wNS0wOFQwMDowMDowMFo8L2RhdGU+CiAgPC9kYXRlcz4KICA8bGFuZ3VhZ2U+ZW48L2xhbmd1YWdlPgogIDxzaXplcz4KICAgIDxzaXplPjE0Njc1MDEwNiBieXRlczwvc2l6ZT4KICA8L3NpemVzPgogIDx2ZXJzaW9uPjI8L3ZlcnNpb24+CiAgPHJpZ2h0c0xpc3Q+CiAgICA8cmlnaHRzIHJpZ2h0c1VSST0iaHR0cHM6Ly9zcGR4Lm9yZy9saWNlbnNlcy9DQzAtMS4wLmh0bWwiPkNyZWF0aXZlIENvbW1vbnMgWmVybyB2MS4wIFVuaXZlcnNhbDwvcmlnaHRzPgogIDwvcmlnaHRzTGlzdD4KICA8ZGVzY3JpcHRpb25zPgogICAgPGRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uVHlwZT0iQWJzdHJhY3QiPgogICAgICBCaW8taW5zcGlyZWQgaGllcmFyY2hpY2FsIG1pY3Jvc3RydWN0dXJlcyBvZmZlciBhIHJvdXRlIHRvd2FyZHMgZW5naW5lZXJlZAogICAgICBmYXRpZ3VlIHJlc2lzdGFuY2UgaW4gYWRkaXRpdmVseSBtYW51ZmFjdHVyZWQgYWxsb3lzLiBIb3dldmVyLCBpdCByZW1haW5zCiAgICAgIHVuY2xlYXIgaG93IGRpc2NyZXRlIHN0cnVjdHVyYWwgY29uc3RpdHVlbnRzIGluZGVwZW5kZW50bHkgZ292ZXJuIGRhbWFnZQogICAgICBhY2N1bXVsYXRpb24sIHBhcnRpY3VsYXJseSBkdXJpbmcgdGhlIGNyaXRpY2FsIGZhdGlndWUgaW5pdGlhdGlvbiByZWdpbWUKICAgICAgd2hlcmUgc2hvcnQgY3JhY2tzIHN0cm9uZ2x5IGludGVyYWN0IHdpdGggbG9jYWwgbWljcm9zdHJ1Y3R1cmUuIEhlcmUsIHdlCiAgICAgIGludmVzdGlnYXRlIG11bHRpc2NhbGUgZmF0aWd1ZSBpbml0aWF0aW9uIGluIGEgZHVhbC1waGFzZSwgbmFub2xhbWVsbGFyCiAgICAgIEFsQ29DckZlTmkyLjEgaGlnaC1lbnRyb3B5IGFsbG95LiBCeSBjb21wYXJpbmcgbWljcm9zY2FsZSBzcGVjaW1lbnMgdGhhdAogICAgICBpc29sYXRlIHRoZSBuYW5vbGFtZWxsYXIgc3RydWN0dXJlIGFnYWluc3QgbWFjcm9zY2FsZSBzcGVjaW1lbnMgY29udGFpbmluZwogICAgICB0aGUgZnVsbCBtZWx0LXBvb2wgYXJjaGl0ZWN0dXJlLCB3ZSBpZGVudGlmeSBzaXplLWRlcGVuZGVudCBmYXRpZ3VlCiAgICAgIGluaXRpYXRpb24gbWVjaGFuaXNtcy4gV2UgZmluZCB0aGF0IGZhaWx1cmUgaXMgZGljdGF0ZWQgYnkgbmFub2xhbWVsbGFyCiAgICAgIGludGVyZmFjZXMgYXQgdGhlIG1pY3Jvc2NhbGUsIHdoZXJlYXMgbWVzb3NjYWxlIG1lbHQgcG9vbCBib3VuZGFyaWVzIHNlcnZlCiAgICAgIHRvIGluaXRpYXRlIGZhdGlndWUgYXQgdGhlIG1hY3Jvc2NhbGUuIFRoaXMgbWVjaGFuaXN0aWMgc2hpZnQgaXMKICAgICAgYWNjb21wYW5pZWQgYnkgYSB0cmFuc2l0aW9uIGZyb20gbWFjcm9zY2FsZSBxdWFzaS1icml0dGxlIGZhaWx1cmUgdG8KICAgICAgbWljcm9zY2FsZSBwbGFzdGljaXR5LWRyaXZlbiBjcmFjayBleHRlbnNpb24uIE91ciByZXN1bHRzIHByb3ZpZGUgYQogICAgICBwaHlzaWNhbCBmcmFtZXdvcmsgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHN0cnVjdHVyYWwgaGllcmFyY2h5IGdvdmVybnMgdGhlCiAgICAgIHRyYW5zaXRpb24gZnJvbSBkaXNjcmV0ZSBtaWNyb3N0cnVjdHVyYWwgZGVmb3JtYXRpb24gdG8gY29udGludXVtIGZhdGlndWUKICAgICAgZnJhY3R1cmUgYmVoYXZpb3IsIGluZm9ybWluZyB0aGUgZGVzaWduIG9mIGRhbWFnZS10b2xlcmFudCwgYWRkaXRpdmVseQogICAgICBtYW51ZmFjdHVyZWQgYWxsb3lzLgogICAgPC9kZXNjcmlwdGlvbj4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9Ik1ldGhvZHMiPgogICAgICAmbHQ7cCZndDsmbHQ7c3Ryb25nJmd0O01hdGVyaWFscyBtYW51ZmFjdHVyaW5nJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9wJmd0OwogICAgICAmbHQ7cCZndDtBbENvQ3JGZU5pJmx0O3N1YiZndDsyLjEmbHQ7L3N1YiZndDsgZXV0ZWN0aWMgaGlnaC1lbnRyb3B5IGFsbG95CiAgICAgIChIRUEpIHNhbXBsZXMgd2VyZSBtYW51ZmFjdHVyZWQgdXNpbmcgYW4gRU9TIE0yOTAgTGFzZXIgUG93ZGVyIEJlZCBGdXNpb24KICAgICAgKEwtUEJGKSBzeXN0ZW0gKEVPUyBHbWJILCBHZXJtYW55KSBlcXVpcHBlZCB3aXRoIGEgNDAwIFcgWWItZmliZXIgbGFzZXIuCiAgICAgIFRoZSBsYXNlciBiZWFtIHdhcyBmb2N1c2VkIHRocm91Z2ggYW4gRi10aGV0YSBsZW5zLCBwcm9kdWNpbmcgYSBmaXhlZCBzcG90CiAgICAgIHNpemUgb2YgMTAwIM68bS4gR2FzLWF0b21pemVkIHByZS1hbGxveWVkIHBvd2RlcnMgd2l0aCBwYXJ0aWNsZSBzaXplcwogICAgICByYW5naW5nIGZyb20gMTUgdG8gNTMgzrxtIHdlcmUgZW1wbG95ZWQgYXMgdGhlIGZlZWRzdG9jay4gQWxsIHNhbXBsZXMgd2VyZQogICAgICBwcm9jZXNzZWQgdW5kZXIgYW4gYXJnb24gYXRtb3NwaGVyZSB3aXRoIGFuIG94eWdlbiBjb25jZW50cmF0aW9uCiAgICAgIG1haW50YWluZWQgYmVsb3cgMTAwMCBwcG0uIEEgNDE0MCBzdGVlbCBzdWJzdHJhdGUgd2FzIHByZWhlYXRlZCB0byA4MCDCsEMKICAgICAgdG8gbWl0aWdhdGUgdGhlcm1hbCByZXNpZHVhbCBzdHJlc3NlcyBhbmQgZW5oYW5jZSBpbnRlcmZhY2lhbCBib25kaW5nLiBUaGUKICAgICAgTC1QQkYgcHJvY2VzcyB3YXMgY29uZHVjdGVkIHVzaW5nIGEgbGFzZXIgcG93ZXIgb2YgMzUwIFcsIHNjYW5uaW5nIHNwZWVkCiAgICAgIG9mIDEwMDAgbW0vcywgaGF0Y2ggc3BhY2luZyBvZiAwLjA4IG1tLCBhbmQgbGF5ZXIgdGhpY2tuZXNzIG9mIDAuMDQgbW0uIEEKICAgICAgY29udGludW91cyBzdHJpcGUgc2Nhbm5pbmcgc3RyYXRlZ3kgd2l0aCBmdWxsLWxlbmd0aCBsYXNlciB0cmFja3MgYWNyb3NzCiAgICAgIHRoZSBidWlsZCBhcmVhIHdhcyBhZG9wdGVkLCB0b2dldGhlciB3aXRoIGEgNjfCsCBpbnRlcmxheWVyIHJvdGF0aW9uLCB0bwogICAgICBtaW5pbWl6ZSByZXNpZHVhbCBzdHJlc3MgYWNjdW11bGF0aW9uIGFuZCBwcm9tb3RlIG1pY3Jvc3RydWN0dXJhbAogICAgICB1bmlmb3JtaXR5LiBUaGVzZSBvcHRpbWl6ZWQgcHJpbnRpbmcgcGFyYW1ldGVycyBtYXRjaCB0aG9zZSByZXBvcnRlZCBpbgogICAgICBwcmlvciB3b3JrLiBSZWN0YW5ndWxhciBwbGF0ZXMgd2l0aCBkaW1lbnNpb25zIG9mIDUwIMOXIDIwIMOXIDMKICAgICAgbW0mbHQ7c3VwJmd0OzMmbHQ7L3N1cCZndDsgd2VyZSBmYWJyaWNhdGVkLCBhY2hpZXZpbmcgYSByZWxhdGl2ZSBkZW5zaXR5CiAgICAgIGV4Y2VlZGluZyA5OS41ICUuJmx0Oy9wJmd0OyAmbHQ7cCZndDtBcy1jYXN0IHNhbXBsZXMgd2VyZSBwcmVwYXJlZCBieQogICAgICBhcmMtbWVsdGluZyBhIG1peHR1cmUgb2YgcmF3IGVsZW1lbnRzIHdpdGggYSBwdXJpdHkgb2YgYXBwcm94aW1hdGVseSA5OS45CiAgICAgIHd0LiAlIHVuZGVyIGFuIGFyZ29uIGF0bW9zcGhlcmUuIFRoZSBpbmdvdHMgd2VyZSBpbnZlcnRlZCBhbmQgcmUtbWVsdGVkIGF0CiAgICAgIGxlYXN0IHNpeCB0aW1lcyB0byBlbnN1cmUgY29tcG9zaXRpb25hbCBob21vZ2VuZWl0eSwgZm9sbG93ZWQgYnkgc3VjdGlvbgogICAgICBjYXN0aW5nIGludG8gYSB3YXRlci1jb29sZWQgY29wcGVyIG1vbGQgd2l0aCBkaW1lbnNpb25zIG9mIDUwIMOXIDEwIMOXIDMKICAgICAgbW0mbHQ7c3VwJmd0OzMmbHQ7L3N1cCZndDsuJmx0Oy9wJmd0OyAmbHQ7cCZndDsmbHQ7c3Ryb25nJmd0O1NwZWNpbWVuCiAgICAgIGZhYnJpY2F0aW9uJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9wJmd0OyAmbHQ7cCZndDtUd28gcGVycGVuZGljdWxhciBlZGdlcyBvZgogICAgICBidWxrIEFNIGFuZCBjYXN0IHNhbXBsZXMgd2VyZSBtYW51YWxseSBwb2xpc2hlZCB3aXRoIFNpQyBzYW5kcGFwZXIgKDgwMCwKICAgICAgMTIwMCBncml0KSwgZm9sbG93ZWQgYnkgYSB3YXRlci1iYXNlZCBkaWFtb25kIHN1c3BlbnNpb24gKDkgzrxtLCAxIM68bSkgYW5kCiAgICAgIGNvbGxvaWRhbCBzaWxpY2EgKDAuMDUgzrxtKS4gTWljcm9jYW50aWxldmVycyB3ZXJlIHN1YnNlcXVlbnRseSBmYWJyaWNhdGVkCiAgICAgIHVzaW5nIGEgVGVzY2FuIFM4MjUyWCBGSUItU0VNIChURVNDQU4sIEN6ZWNoIFJlcHVibGljKSB3aXRoIGEKICAgICAgWGUmbHQ7c3VwJmd0OysmbHQ7L3N1cCZndDsgaW9uIHBsYXNtYSBzb3VyY2UgYXQgYSBjb25zdGFudCBhY2NlbGVyYXRpbmcKICAgICAgdm9sdGFnZSBvZiAzMCBrZVYuIFJvdWdoIGN1dHMgd2VyZSBwZXJmb3JtZWQgYXQgMTAwIG5BLCAzMCBuQSwgYW5kIDEwIG5BLAogICAgICBmb2xsb3dlZCBieSBwb2xpc2hpbmcgY3V0cyBhdCAxIG5BIGFuZCAxMDAgcEEgb24gYWxsIGZhY2VzLiBBIG5vdGNoIHdhcwogICAgICBpbnRyb2R1Y2VkIHdpdGggYSB0b3AtZG93biwgMTAwIHBBIGN1dCBpbiB0aGUgZmluYWwgc3RlcC4gRm9yIEFNCiAgICAgIHNwZWNpbWVucywgbm90Y2hlcyB3ZXJlIHBvc2l0aW9uZWQgbmVhciAoYnV0IG5vdCBpbnRlcnNlY3RpbmcpIG1lbHQgcG9vbAogICAgICBib3VuZGFyaWVzIHRvIGFjaGlldmUgYSBwcmVkb21pbmFudGx5IG9ydGhvZ29uYWwgbGFtZWxsYXIgb3JpZW50YXRpb24KICAgICAgcmVsYXRpdmUgdG8gdGhlIGNyYWNrIGZyb250LiBGb2xsb3dpbmcgZmFicmljYXRpb24sIGltYWdpbmcgd2FzIHBlcmZvcm1lZAogICAgICB1c2luZyB0aGUgZWxlY3Ryb24gYmVhbSBvZiB0aGUgc2FtZSBpbnN0cnVtZW50IHdpdGggYSBjb25zdGFudAogICAgICBhY2NlbGVyYXRpbmcgdm9sdGFnZSBvZiA1IGtlViwgMzAwIHBBIGJlYW0gY3VycmVudCB0byBleHRyYWN0IHRoZSBzcGVjaW1lbgogICAgICBkaW1lbnNpb25zLiBBZGRpdGlvbmFsIGhpZ2ggcmVzb2x1dGlvbiBpbWFnaW5nIHdhcyBwZXJmb3JtZWQgdXNpbmcgYSBaZWlzcwogICAgICBPUklPTiBOYW5vRmFiIFNjYW5uaW5nIEhlbGl1bSBJb24gTWljcm9zY29wZSAoWkVJU1MsIEdlcm1hbnkpIGF0IDI1IGtWCiAgICAgIGFjY2VsZXJhdGluZyB2b2x0YWdlLiBGdXJ0aGVyIHBvc3QtbW9ydGVtIGNoYXJhY3Rlcml6YXRpb24gd2FzIHBlcmZvcm1lZAogICAgICB1c2luZyBhIEtleWVuY2UgVkstWDMwMDAgU2VyaWVzIDNEIFN1cmZhY2UgUHJvZmlsZXIgKEtleWVuY2UsCiAgICAgIFVTQSkuJmx0Oy9wJmd0OyAmbHQ7cCZndDtTaW5nbGUtZWRnZSBub3RjaGVkIGJlbmQgKFNFTkIpIHNwZWNpbWVucyB3ZXJlCiAgICAgIG1hY2hpbmVkIGV4Y2x1c2l2ZWx5IGZyb20gdGhlIGFzLWJ1aWx0IEFNIHNhbXBsZXMgdXNpbmcgd2lyZSBFRE0uCiAgICAgIFNwZWNpbWVucyBoYWQgYSBzaWRlLXRvLXNpZGUgdGhpY2tuZXNzIG9mIEIgPSAyLjUgbW0gb3JpZW50ZWQgYWxvbmcgdGhlCiAgICAgIGJ1aWxkIGRpcmVjdGlvbiwgd2lkdGggVyA9IDUuMCBtbSwgbGVuZ3RoIEwgPSAyMi41IG1tLCBhbmQgYW4gaW5pdGlhbAogICAgICBjcmFjayBsZW5ndGggYSZsdDtzdWImZ3Q7MCZsdDsvc3ViJmd0OyA9IDIuNSBtbSwgaW4gY29tcGxpYW5jZSB3aXRoIEFTVE0KICAgICAgRTE4MjAgZ3VpZGVsaW5lcy4gQ3JhY2sgcHJvcGFnYXRpb24gb2NjdXJyZWQgYWxvbmcgVywgb3J0aG9nb25hbCB0byB0aGUKICAgICAgYnVpbGQgZGlyZWN0aW9uLiZsdDsvcCZndDsgJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOYW5vaW5kZW50YXRpb24KICAgICAgZXhwZXJpbWVudHMmbHQ7L3N0cm9uZyZndDsmbHQ7L3AmZ3Q7ICZsdDtwJmd0O05hbm9pbmRlbnRhdGlvbiBleHBlcmltZW50cwogICAgICB3ZXJlIHBlcmZvcm1lZCBvbiBidWxrLCBwb2xpc2hlZCBBTSBhbmQgY2FzdCBzcGVjaW1lbnMgdXNpbmcgYW4gaU1pY3JvCiAgICAgIE5hbm9pbmRlbnRlciAoS0xBLCBVU0EpIHdpdGggYW4gSW5Gb3JjZSA1MCBhY3R1YXRvciBhbmQgYSAxLjg5IM68bSByYWRpdXMKICAgICAgZGlhbW9uZCBjb25pY2FsIHRpcCAoU3ludG9uLU1EUCwgU3dpdHplcmxhbmQpLiBBbGwgdGVzdHMgd2VyZSBwZXJmb3JtZWQgYXQKICAgICAgYSBjb25zdGFudCBzdHJhaW4gcmF0ZSBvZiAxIMOXIDEwJmx0O3N1cCZndDstMyZsdDsvc3VwJmd0OwogICAgICBzJmx0O3N1cCZndDstMSZsdDsvc3VwJmd0OyB0byBhIHBlYWsgbG9hZCBvZiA4IG1OLCB1c2luZyBhIDEwMCBIegogICAgICBjb250aW51b3VzIHN0aWZmbmVzcyBtZWFzdXJlbWVudCAoQ1NNKSBzaWduYWwgYXQgYSB0YXJnZXQgZGlzcGxhY2VtZW50CiAgICAgIGFtcGxpdHVkZSBvZiAyIG5tIHRvIG1vbml0b3Igc3RpZmZuZXNzLiBVc2luZyB0aGUgT2xpdmVyIGFuZCBQaGFyciBtZXRob2QsCiAgICAgIGVsYXN0aWMgbW9kdWxpIG9mIEUgPSAxNDIuOCDCsSAxMy42IEdQYSAobiA9IDMyIG1lYXN1cmVtZW50cykgYW5kIEUgPSA1MC4zCiAgICAgIMKxIDIuOCBHUGEgKG4gPSAyNCkgd2VyZSBtZWFzdXJlZCBmb3IgdGhlIEFNIGFuZCBjYXN0IHN5c3RlbXMsCiAgICAgIHJlc3BlY3RpdmVseS4gSW5kZW50YXRpb24gZGVwdGgsIGgmbHQ7c3ViJmd0O2luZGVudCZsdDsvc3ViJmd0OywgYW5kCiAgICAgIGNvbnRhY3Qgc3RpZmZuZXNzLCBTJmx0O3N1YiZndDtjb250YWN0Jmx0Oy9zdWImZ3Q7LCB3ZXJlIGV4cHJlc3NlZCBhcwogICAgICBmdW5jdGlvbnMgb2YgdGhlIGluZGVudGF0aW9uIGxvYWQsIFAsIGJ5IGZpdHRpbmcgcG93ZXItbGF3IGVxdWF0aW9ucyB0bwogICAgICBhdmVyYWdlZCBuYW5vaW5kZW50YXRpb24gZGF0YS4mbHQ7L3AmZ3Q7ICZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7TWljcm9zY2FsZQogICAgICBmYXRpZ3VlIGV4cGVyaW1lbnRzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9wJmd0OyAmbHQ7cCZndDtNaWNyb2NhbnRpbGV2ZXIKICAgICAgZmF0aWd1ZSBleHBlcmltZW50cyB3ZXJlIHBlcmZvcm1lZCB1c2luZyBhIE5hbm9GbGlwIE5hbm9pbmRlbnRlciAoS0xBLAogICAgICBVU0EpIHdpdGggYW4gSW5Gb3JjZSA1MCBhY3R1YXRvciBhbmQgdGhlIHNhbWUgY29uaWNhbCB0aXAgdXNlZCBmb3IKICAgICAgbmFub2luZGVudGF0aW9uLCBpbnRlZ3JhdGVkIHdpdGggYSBRdWFudGEgNjAwIEZFRyBNYXJrIElJIEVTRU0gKEZFSQogICAgICBDb21wYW55LCBVU0EpLiBUaGUgU0VNIHN0YWdlIHdhcyB0aWx0ZWQgYnkgNS0xMMKwIHJlbGF0aXZlIHRvIHRoZSBlbGVjdHJvbgogICAgICBiZWFtIHRvIGltcHJvdmUgdmlzaWJpbGl0eS4gVmlkZW9zIHdlcmUgY29sbGVjdGVkIGF0IDEwIEZQUyB3aXRoIGEgYmVhbQogICAgICBkd2VsbCB0aW1lIG9mIGVpdGhlciAzMDAgbnMvcGl4ZWwgb3IgMSDOvHMvcGl4ZWwgYXQgMTAga2VWIGFjY2VsZXJhdGluZwogICAgICB2b2x0YWdlLiBFYWNoIG1pY3JvY2FudGlsZXZlciB3YXMgbG9hZGVkIG1vbm90b25pY2FsbHkgdG8gYSB0YXJnZXQgc3RhdGljCiAgICAgIGxvYWQsIFAmbHQ7c3ViJmd0O3N0YXRpYyZsdDsvc3ViJmd0OywgYXQgYSBjb25zdGFudCBkaXNwbGFjZW1lbnQgcmF0ZSBvZgogICAgICAxMCBubS9zLCB3aGljaCB3YXMgYWxsb3dlZCB0byBkZWNheSBhdCAwLjEgbU4vzrxtIHRvIG1haW50YWluIHN0YWJsZQogICAgICBhY3R1YXRvciBjb250cm9sIGR1cmluZyBkeW5hbWljIGxvYWRpbmcuIEEgMTAgSHogc2ludXNvaWRhbCBsb2FkLAogICAgICBQJmx0O3N1YiZndDtkeW5hbWljJmx0Oy9zdWImZ3Q7LCB3aXRoIFJNUyBhbXBsaXR1ZGUgb2YgMiBtTiB3YXMKICAgICAgc3VwZXJpbXBvc2VkIG9uIHRoZSBzdGF0aWMgbG9hZCB0byBpbmR1Y2UgZmF0aWd1ZSBhbmQgbW9uaXRvciBzdGlmZm5lc3MsCiAgICAgIGxlYWRpbmcgdG8gYSB2YXJ5aW5nIHN0cmVzcyByYXRpby4gQWRkaXRpb25hbCBleHBlcmltZW50cyAoQU00LCBDNCkgd2VyZQogICAgICBwZXJmb3JtZWQgdXNpbmcgYSAxIEh6IGN5Y2xpYyBsb2FkaW5nIG1ldGhvZCB3aXRoIGEgY29uc3RhbnQgc3RyZXNzIHJhdGlvLAogICAgICBSID0gMC4xOyBmb3IgdGhlc2UgdGVzdHMsIHN0aWZmbmVzcyB3YXMgbWVhc3VyZWQgZnJvbSB0aGUgdW5sb2FkaW5nIHNsb3BlCiAgICAgIG9mIGVhY2ggY3ljbGUuJmx0Oy9wJmd0OyAmbHQ7cCZndDtTdGlmZm5lc3MgZGF0YSB3ZXJlIGNvcnJlY3RlZCBieQogICAgICB0cmVhdGluZyBtYWNoaW5lIGNvbXBsaWFuY2UsIGNvbnRhY3Qgc3RpZmZuZXNzLCBhbmQgYmVhbSBiZW5kaW5nIHN0aWZmbmVzcwogICAgICBhcyBhIHN5c3RlbSBvZiBzcHJpbmdzIGluIHNlcmllcy4gTWFjaGluZSBjb21wbGlhbmNlIHdhcyBkZXRlcm1pbmVkIGZyb20KICAgICAgaW5zdHJ1bWVudCBjYWxpYnJhdGlvbiwgd2hpbGUgdGhlIGNvbnRhY3Qgc3RpZmZuZXNzIHdhcyBtZWFzdXJlZCBmcm9tCiAgICAgIG5hbm9pbmRlbnRhdGlvbiBkYXRhLiBUaGUgZmlyc3QgY3ljbGUgKE4gPSAxKSB3YXMgZGVmaW5lZCBhdCB0aGUgZmlyc3QKICAgICAgbWVhc3VyYWJsZSBkZWNyZWFzZSBpbiBzdGlmZm5lc3MgZnJvbSB0aGUgaW5pdGlhbCB2YWx1ZS4gQ3JhY2sgbGVuZ3RoLCBhLAogICAgICB3YXMgY29tcHV0ZWQgZnJvbSB0aGUgY29ycmVjdGVkIGJlbmRpbmcgc3RpZmZuZXNzIHVzaW5nIGVsYXN0aWMtcGxhc3RpYwogICAgICBmaW5pdGUgZWxlbWVudCAoRkUpIHNpbXVsYXRpb25zIHJlbGF0aW5nIG5vcm1hbGl6ZWQgc3RpZmZuZXNzCiAgICAgIFMvUyZsdDtzdWImZ3Q7MCZsdDsvc3ViJmd0OyB0byBub3JtYWxpemVkIGNyYWNrIGxlbmd0aCBhL1cuIFRoZSByZXN1bHRpbmcKICAgICAgYSB2cy4gTiBkYXRhIHdlcmUgc21vb3RoZWQgdXNpbmcgYSBmb3VydGgtb3JkZXIgdW5pdmFyaWF0ZSBzcGxpbmUuIENyYWNrCiAgICAgIGdyb3d0aCByYXRlcywgZGEvZE4sIHdlcmUgY29tcHV0ZWQgYXMgdGhlIGFuYWx5dGljYWwgZGVyaXZhdGl2ZSBvZiB0aGlzCiAgICAgIHNwbGluZS4gVGhlIGRyaXZpbmcgZm9yY2Ugd2FzIGVzdGltYXRlZCBmcm9tIHRoZSBjeWNsaWMgcmFuZ2VzIG9mIGxvYWQsCiAgICAgIM6UUCwgYW5kIGRpc3BsYWNlbWVudCwgzpRkLCBmb3IgZWFjaCBjeWNsZS4gVGhlc2UgcmFuZ2VzIHdlcmUgc3Vic3RpdHV0ZWQKICAgICAgaW50byB0aGUgYXJlYS1iYXNlZCBkZWZpbml0aW9ucyBmb3IgSiBzdGFuZGFyZGl6ZWQgaW4gQVNUTQogICAgICBFMTgyMC4mbHQ7L3AmZ3Q7ICZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7TWFjcm9zY2FsZSBmYXRpZ3VlCiAgICAgIGV4cGVyaW1lbnRzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9wJmd0OyAmbHQ7cCZndDtTRU5CIGZhdGlndWUgZXhwZXJpbWVudHMKICAgICAgd2VyZSBwZXJmb3JtZWQgdXNpbmcgYSBNVFMgQ3JpdGVyaW9uIE1vZGVsIDQzIHVuaWF4aWFsIHRlc3RpbmcgbWFjaGluZQogICAgICAoTVRTIFN5c3RlbXMgQ29ycG9yYXRpb24sIFVTQSkgZXF1aXBwZWQgd2l0aCBhIDEwIGtOIGxvYWQgY2VsbC4gU3BlY2ltZW5zCiAgICAgIHdlcmUgdGVzdGVkIHdpdGggYSBjdXN0b20tZmFicmljYXRlZCBzdGVlbCB0aHJlZS1wb2ludCBiZW5kIGZpeHR1cmUgd2l0aCBhCiAgICAgIHN1cHBvcnQgc3BhbiwgUyA9IDIwIG1tLiBCb3RoIHRoZSBzdXBwb3J0IGFuZCBsb2FkaW5nIHBpbnMgd2VyZSBzdGFpbmxlc3MKICAgICAgc3RlZWwgY3lsaW5kZXJzIHdpdGggYSBub21pbmFsIGRpYW1ldGVyIG9mIDEuNSBtbS4gQ3ljbGljIGxvYWRpbmcgd2FzCiAgICAgIHBlcmZvcm1lZCB3aXRoIGEgc3RyZXNzIHJhdGlvLCBSID0gMC4xLCBhbmQgYSBwZWFrIGxvYWQsCiAgICAgIFAmbHQ7c3ViJmd0O21heCZsdDsvc3ViJmd0OyA9IDUyMSBOLCBkZXRlcm1pbmVkIHVzaW5nIHRoZSBBU1RNIEUxODIwCiAgICAgIGZhdGlndWUgcHJlLWNyYWNrIGxvYWQgZm9ybXVsYS4gQVNUTSBFMTgyMCBwZXJtaXRzIGZhdGlndWUgbG9hZGluZyBhdAogICAgICAwLjdQJmx0O3N1YiZndDttYXgmbHQ7L3N1YiZndDsgdG8gcHJldmVudCBwcmVtYXR1cmUgZmFpbHVyZTsgc3BlY2ltZW4gQjEKICAgICAgd2FzIHRlc3RlZCBmb3IgNDAwMCBjeWNsZXMgYXQgdGhpcyByZWR1Y2VkIGxvYWQgd2l0aCBubyBjcmFjayBleHRlbnNpb24sCiAgICAgIHNvIGFsbCBzdWJzZXF1ZW50IHRlc3Rpbmcgd2FzIHBlcmZvcm1lZCBhdCBQJmx0O3N1YiZndDttYXgmbHQ7L3N1YiZndDsuCiAgICAgIEFsbCB0ZXN0cyB3ZXJlIHBlcmZvcm1lZCBhdCBhIGRpc3BsYWNlbWVudCByYXRlIG9mIMKxNSBtbS9taW51dGUsCiAgICAgIGNvcnJlc3BvbmRpbmcgdG8gYSBjeWNsZSBmcmVxdWVuY3kgb2YgYXBwcm94aW1hdGVseSAwLjQgSHouIFRoZSBjcmFjayB0aXAKICAgICAgd2FzIGltYWdlZCBkdXJpbmcgdGVzdGluZyB1c2luZyBhIEJGUy1VMy04OFM2TS1DIFVTQiAzLjEgQmxhY2tmbHkgUyBjYW1lcmEKICAgICAgKFRlbGVkeW5lIEZMSVIsIFVTQSkgd2l0aCBhbiBhZGp1c3RhYmxlIHpvb20gbGVucywgcmVjb3JkaW5nIGF0IGEgZnJhbWUKICAgICAgcmF0ZSBvZiAxNC41IEh6IHdpdGggYSByZXNvbHV0aW9uIG9mIDE5MjAgw5cgMTA4MCBwaXhlbHMuJmx0Oy9wJmd0OwogICAgICAmbHQ7cCZndDtUaGUgbG9hZC1saW5lIGNvbXBsaWFuY2UsIEMsIHdhcyBvYnRhaW5lZCBmcm9tIHRoZSBpbnZlcnNlIHNsb3BlCiAgICAgIG9mIHRoZSB1bmxvYWRpbmcgZGF0YSBmb3IgZWFjaCBjeWNsZSBhbmQgY29ycmVjdGVkIGZvciBtYWNoaW5lIGNvbXBsaWFuY2UuCiAgICAgIE5vcm1hbGl6ZWQgY3JhY2sgbGVuZ3RoLCBhL1csIHdhcyBjb21wdXRlZCBmcm9tIHRoZSBjb3JyZWN0ZWQgY29tcGxpYW5jZQogICAgICBmb2xsb3dpbmcgQVNUTSBFMTgyMCBhbmQgdmFsaWRhdGVkIGFnYWluc3QgY3JhY2sgbW91dGggb3BlbmluZyBjb21wbGlhbmNlCiAgICAgIG1lYXN1cmVtZW50cy4gVGhlIGZpcnN0IGN5Y2xlIChOID0gMSkgd2FzIGRlZmluZWQgYXQgdGhlIGZpcnN0IG1lYXN1cmFibGUKICAgICAgaW5jcmVhc2UgaW4gY29tcGxpYW5jZSBmcm9tIHRoZSBpbml0aWFsIHZhbHVlLiBCb3RoIGNyYWNrIGxlbmd0aCwgYSwgYW5kCiAgICAgIGxvYWQsIFAgdnMuIE4gZGF0YSB3ZXJlIHNtb290aGVkIHVzaW5nIGEgR2F1c3NpYW4gZmlsdGVyIHdpdGggz4MgPSAxMDAKICAgICAgY3ljbGVzLiBDcmFjayBncm93dGggcmF0ZXMsIGRhL2ROLCB3ZXJlIGNvbXB1dGVkIGFzIHRoZSBudW1lcmljYWwKICAgICAgZGVyaXZhdGl2ZSBvZiB0aGUgc21vb3RoZWQgY3JhY2sgbGVuZ3RoIGRhdGEgdXNpbmcgdGhlIEFTVE0gRTY0NwogICAgICBJbmNyZW1lbnRhbCBQb2x5bm9taWFsIE1ldGhvZCB3aXRoIG4gPSA0LiBUaGUgY2hhbmdlIGluIGxpbmVhciBlbGFzdGljCiAgICAgIHN0cmVzcyBpbnRlbnNpdHkgZmFjdG9yIGR1cmluZyBjeWNsaW5nLCDOlEsgPSBLJmx0O3N1YiZndDttYXgmbHQ7L3N1YiZndDsgLQogICAgICBLJmx0O3N1YiZndDttaW4mbHQ7L3N1YiZndDssIHdhcyBjb21wdXRlZCB1c2luZyB0aGUgc21vb3RoZWQgZGF0YSBmcm9tIHRoZQogICAgICBBU1RNIEUxODIwIGV4cHJlc3Npb24gZm9yIFNFTkIgc3BlY2ltZW5zLCB3aXRoIHRoZSBsb2FkIHJhbmdlIHRha2VuIGFzIDAuOQogICAgICBQJmx0O3N1YiZndDttYXgmbHQ7L3N1YiZndDsgZm9yIFIgPSAwLjEuIFRoZSBwcm92aXNpb25hbCBmcmFjdHVyZQogICAgICB0b3VnaG5lc3MsIEsmbHQ7c3ViJmd0O1EmbHQ7L3N1YiZndDssIHdhcyBvYnRhaW5lZCBieSB0cmVhdGluZyB0aGUgZmluYWwKICAgICAgY3ljbGUgYXMgYSBtb25vdG9uaWMgZnJhY3R1cmUgdGVzdCwgZXZhbHVhdGluZyBLIGF0IHRoZSBwZWFrCiAgICAgIGxvYWQuJmx0Oy9wJmd0OyAmbHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0ZhdGlndWUgaW5pdGlhdGlvbiBsZW5ndGgKICAgICAgc2NhbGVzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9wJmd0OyAmbHQ7cCZndDtGYXRpZ3VlIGluaXRpYXRpb24gbGVuZ3RoIHNjYWxlcywKICAgICAgzr4sIHdlcmUgZGV0ZXJtaW5lZCBmcm9tIGN5Y2xpYyBjcmFjayBncm93dGggcmVzaXN0YW5jZSBjdXJ2ZXMgKM6USiB2cy4gzpRhLAogICAgICBvciDOlEsgdnMuIM6UYSBkYXRhKSB0aGF0IGV4aGliaXQgdHdvIGRpc3RpbmN0IHBvd2VyLWxhdyByZWdpbWVzLiBFYWNoCiAgICAgIHJlZ2ltZSB3YXMgZml0IHRvIGEgbGluZWFyIG1vZGVsIG9uIGEgbG9nLWxvZyBzY2FsZSwgYW5kIM6+IHdhcyBkZWZpbmVkIGFzCiAgICAgIHRoZSBjcmFjayBleHRlbnNpb24gYXQgdGhlIGludGVyc2VjdGlvbiBvZiB0aGVzZSBmaXRzLiBGaXR0aW5nIHJhbmdlcyB3ZXJlCiAgICAgIGRldGVybWluZWQgYWxnb3JpdGhtaWNhbGx5IHRvIGVuc3VyZSByZXByb2R1Y2liaWxpdHkuIEZvciB0aGUgbGFyZ2UgY3JhY2sKICAgICAgcmVnaW1lLCBhIGxpbmVhciBmaXQgd2FzIHBlcmZvcm1lZCBzdGFydGluZyBmcm9tIHRoZSBmaW5hbCBkYXRhIHBvaW50LAogICAgICB3aXRoIHRoZSBmaXR0aW5nIHdpbmRvdyBwcm9ncmVzc2l2ZWx5IGV4dGVuZGluZyB0b3dhcmRzIGVhcmxpZXIgZGF0YQogICAgICBwb2ludHMgd2hpbGUgUiZsdDtzdXAmZ3Q7MiZsdDsvc3VwJmd0OyDiiaUgMC45ODsgd2hlbgogICAgICBSJmx0O3N1cCZndDsyJmx0Oy9zdXAmZ3Q7IGZlbGwgYmVsb3cgdGhpcyB0aHJlc2hvbGQsIHRoZSBwcmV2aW91cyB3aW5kb3cKICAgICAgc2l6ZSB3YXMgcmV0YWluZWQuIFRoZSBtaW5pbXVtIHdpbmRvdyBzaXplIHdhcyB0aGUgZ3JlYXRlciBvZiAxMCBkYXRhCiAgICAgIHBvaW50cywgb3IgNSAlIG9mIHRoZSBvdmVyYWxsIGRhdGEuIEZvciB0aGUgc21hbGwgY3JhY2sgcmVnaW1lLCBhIGxpbmVhcgogICAgICBmaXQgd2FzIHBlcmZvcm1lZCBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBkYXRhIHBvaW50LCB3aXRoIHRoZSBmaXR0aW5nCiAgICAgIHdpbmRvdyBwcm9ncmVzc2l2ZWx5IGV4dGVuZGluZyB0b3dhcmRzIGxhdGVyIGRhdGE7IHdpbmRvdyBzaXplcyBmcm9tIDUgJQogICAgICB0byA0MCAlIG9mIHRoZSB0b3RhbCBkYXRhIHdlcmUgdGVzdGVkLCBhbmQgdGhlIHdpbmRvdyBtYXhpbWl6aW5nCiAgICAgIFImbHQ7c3VwJmd0OzImbHQ7L3N1cCZndDsgd2FzIHNlbGVjdGVkLiBUaGUgaW50ZXJzZWN0aW9uIHdhcyBjb21wdXRlZCBhcyDOvgogICAgICA9IGV4cFsoQyZsdDtzdWImZ3Q7MiZsdDsvc3ViJmd0OyAtCiAgICAgIEMmbHQ7c3ViJmd0OzEmbHQ7L3N1YiZndDspLyhtJmx0O3N1YiZndDsxJmx0Oy9zdWImZ3Q7IC0KICAgICAgbSZsdDtzdWImZ3Q7MiZsdDsvc3ViJmd0OyldLCB3aGVyZSAobSZsdDtzdWImZ3Q7MSZsdDsvc3ViJmd0OywKICAgICAgQyZsdDtzdWImZ3Q7MSZsdDsvc3ViJmd0OykgYW5kIChtJmx0O3N1YiZndDsyJmx0Oy9zdWImZ3Q7LAogICAgICBDJmx0O3N1YiZndDsyJmx0Oy9zdWImZ3Q7KSBhcmUgdGhlIHNsb3BlcyBhbmQgaW50ZXJjZXB0cyBvZiB0aGUgc21hbGwKICAgICAgY3JhY2sgYW5kIGxhcmdlIGNyYWNrIGZpdHMsIHJlc3BlY3RpdmVseS4mbHQ7L3AmZ3Q7CiAgICAgICZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7VHJhbnNtaXNzaW9uIGVsZWN0cm9uCiAgICAgIG1pY3Jvc2NvcHkmbHQ7L3N0cm9uZyZndDsmbHQ7L3AmZ3Q7ICZsdDtwJmd0O1RyYW5zbWlzc2lvbiBlbGVjdHJvbgogICAgICBtaWNyb3Njb3B5IChURU0pIGltYWdpbmcgd2FzIGNvbmR1Y3RlZCB1c2luZyBhIEpFT0wgRjIwMCB0cmFuc21pc3Npb24KICAgICAgZWxlY3Ryb24gbWljcm9zY29wZSBvcGVyYXRpbmcgYXQgMjAwIGtWLiBURU0gbWljcm9ncmFwaHMgd2VyZSByZWNvcmRlZAogICAgICB1c2luZyBhIE9uZVZpZXcgY2FtZXJhIChHYXRhbiBJbmMuLCBVU0EpLiBDcm9zcy1zZWN0aW9uYWwgVEVNIGxhbWVsbGFlCiAgICAgIHdlcmUgcHJlcGFyZWQgdXNpbmcgYW4gRkVJIFN0cmF0YSBEQjIzNSBmb2N1c2VkIGlvbiBiZWFtIHNjYW5uaW5nIGVsZWN0cm9uCiAgICAgIG1pY3Jvc2NvcGUgKEZJQi1TRU0pLiBJbml0aWFsIGxhbWVsbGEgcHJlcGFyYXRpb24gd2FzIHBlcmZvcm1lZCB1c2luZyBhCiAgICAgIDEwMCBwQSBiZWFtIGN1cnJlbnQgYXQgMzAga1YsIGZvbGxvd2VkIGJ5IGxvdy12b2x0YWdlIHN1cmZhY2UgY2xlYW5pbmcgYXQKICAgICAgMzAgcEEgYW5kIDUga1YgdG8gbWluaW1pemUgc3VyZmFjZSBkYW1hZ2UgYW5kIGFtb3JwaGl6YXRpb24uJmx0Oy9wJmd0OwogICAgICAmbHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0ZvY3VzZWQgaW9uIGJlYW0KICAgICAgdG9tb2dyYXBoeSZsdDsvc3Ryb25nJmd0OyZsdDsvcCZndDsgJmx0O3AmZ3Q7Rm9jdXNlZCBpb24gYmVhbSB0b21vZ3JhcGh5CiAgICAgIHdhcyBwZXJmb3JtZWQgdXNpbmcgYSBUZXNjYW4gUzgyNTJYIEZJQi1TRU0gKFRFU0NBTiwgQ3plY2ggUmVwdWJsaWMpIHdpdGgKICAgICAgYSBYZSZsdDtzdXAmZ3Q7KyZsdDsvc3VwJmd0OyBpb24gcGxhc21hIHNvdXJjZSBhdCAzMCBrZVYsIDMwMCBwQSB3aXRoIGEgMjAKICAgICAgbm0gc2xpY2UgdGhpY2tuZXNzLiBTRU0gaW1hZ2VzIHdlcmUgYWNxdWlyZWQgd2l0aCBhIHBpeGVsIHNpemUgb2YgMjAgbm0KICAgICAgYW5kIGEgZHdlbGwgdGltZSBvZiAzIM68cy4gVGhyZWUtZGltZW5zaW9uYWwgKDNEKSBjcmFjayBnZW9tZXRyeSB3YXMKICAgICAgcmVjb25zdHJ1Y3RlZCBmcm9tIHRoZXNlIGltYWdlIHN0YWNrcyBhbmQgc2VnbWVudGVkIG9uIGEgc2xpY2UtYnktc2xpY2UKICAgICAgYmFzaXMgdXNpbmcgdGhlIFNlZ21lbnQgRWRpdG9yIG1vZHVsZSBpbiAzRCBTbGljZXIuIEluaXRpYWwgc2VnbWVudGF0aW9uCiAgICAgIHdhcyBwZXJmb3JtZWQgdmlhIGludGVuc2l0eS1iYXNlZCB0aHJlc2hvbGRpbmcgYW5kIG1hbnVhbGx5IGNvcnJlY3RlZCB0bwogICAgICBleGNsdWRlIGNyYWNrIHN1cmZhY2VzIGV4cG9zZWQgaW4gcHJldmlvdXMgc2xpY2VzIGJ1dCBub3QgaW50ZXJzZWN0aW5nIHRoZQogICAgICBjdXJyZW50IHNsaWNlLiBUbyBjb3JyZWN0IGZvciBiZWFtIGRyaWZ0LCB2ZXJ0aWNhbCB0cmFuc2xhdGlvbiBmb3IgZWFjaAogICAgICBzZXF1ZW50aWFsIHNsaWNlIHdhcyBlc3RpbWF0ZWQgYnkgY3Jvc3MtY29ycmVsYXRpbmcgb25lLWRpbWVuc2lvbmFsCiAgICAgIHByb2ZpbGVzIG9mIHRoZSBzaWduZWQgdmVydGljYWwgaW50ZW5zaXR5IGdyYWRpZW50LiBUaGUgY2FsY3VsYXRlZCBvZmZzZXRzCiAgICAgIHdlcmUgYXBwbGllZCB0byB0aGUgZ3JheXNjYWxlIGltYWdlIHN0YWNrIHVzaW5nIGxpbmVhciBpbnRlcnBvbGF0aW9uLCBhbmQKICAgICAgdG8gdGhlIGJpbmFyeSBsYWJlbCBtYXAgdXNpbmcgbmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uIHdpdGgKICAgICAgemVyby1wYWRkaW5nIHRvIG1haW50YWluIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIHNlZ21lbnRlZCBsYWJlbHMuIEZpbmFsbHksIGEKICAgICAgM0QgbWVkaWFuIGZpbHRlciB3aXRoIGEgMyDDlyAzIMOXIDMgdm94ZWwga2VybmVsIHdhcyBhcHBsaWVkIHRvIHRoZSBiaW5hcnkKICAgICAgdm9sdW1lIHRvIHNtb290aCB2b3hlbGF0ZWQgYm91bmRhcmllcy4gU2VxdWVudGlhbCBjb2xvciBtYXBzIHdlcmUKICAgICAgZ2VuZXJhdGVkIGJ5IHZhcnlpbmcgbGlnaHRuZXNzIGluIHRoZSBDQU0wMi1VQ1MgcGVyY2VwdHVhbGx5IHVuaWZvcm0gY29sb3IKICAgICAgc3BhY2Ugd2hpbGUgcHJlc2VydmluZyBodWUsIHdpdGggY2hyb21hIHNjYWxlZCBhdCBsaWdodG5lc3MgZXh0cmVtZXMgdG8KICAgICAgbWF4aW1pemUgY29udHJhc3Qgd2l0aGluIHRoZSBzUkdCIGdhbXV0LiZsdDsvcCZndDsKICAgIDwvZGVzY3JpcHRpb24+CiAgICA8ZGVzY3JpcHRpb24gZGVzY3JpcHRpb25UeXBlPSJUZWNobmljYWxJbmZvIj4KICAgICAgIyBEYXRhIGFuZCBjb2RlIGZyb206IE11bHRpc2NhbGUgZmF0aWd1ZSBjcmFjayBpbml0aWF0aW9uIGluIGhpZXJhcmNoaWNhbAogICAgICBhZGRpdGl2ZWx5IG1hbnVmYWN0dXJlZCBhbGxveXMKICAgICAgW2h0dHBzOi8vZG9pLm9yZy8xMC41MDYxL2RyeWFkLnZxODNiazQ4bl0oaHR0cHM6Ly9kb2kub3JnLzEwLjUwNjEvZHJ5YWQudnE4M2JrNDhuKSBPcGVuIHNvdXJjZSBkYXRhc2V0IGZvciB0aGUgbWFudXNjcmlwdCB0aXRsZWQgIk11bHRpc2NhbGUgZmF0aWd1ZSBjcmFjayBpbml0aWF0aW9uIGluIGhpZXJhcmNoaWNhbCBhZGRpdGl2ZWx5IG1hbnVmYWN0dXJlZCBhbGxveXMiLiBUaGlzIGRhdGFzZXQgY29udGFpbnMgcmF3IGFuZCBwcm9jZXNzZWQgZGF0YSBmcm9tIG1hY3Jvc2NhbGUgYW5kIG1pY3Jvc2NhbGUgZmF0aWd1ZSBmcmFjdHVyZSBleHBlcmltZW50cyAoZmF0aWd1ZV9mcmFjdHVyZS56aXApLCBuYW5vaW5kZW50YXRpb24gZXhwZXJpbWVudHMgKG5hbm9pbmRlbnRhdGlvbi56aXApIGFuZCBtdWx0aXNjYWxlIGZhdGlndWUgZnJhY3R1cmUgc3VyZmFjZSBjaGFyYWN0ZXJpemF0aW9uIChzdXJmYWNlX2NoYXJhY3Rlcml6YXRpb24uemlwKS4gIyMgRGVzY3JpcHRpb24gb2YgdGhlIGRhdGEgYW5kIGZpbGUgc3RydWN0dXJlICMjIyMgZmF0aWd1ZV9mcmFjdHVyZS56aXAgQ29udGFpbnMgYm90aCByYXcgYW5kIHByb2Nlc3NlZCBDU1YgZmlsZXMgZnJvbSBtYWNyb3NjYWxlIGFuZCBtaWNyb3NjYWxlIGZhdGlndWUgZnJhY3R1cmUgZXhwZXJpbWVudHMuIEZpbGUgbmFtZXMgZm9sbG93IHRoZSBmb3JtYXQ6IGBzY2FsZV9zcGVjaW1lbklEX2ZhYnJpY2F0aW9uTWV0aG9kX2ZyZXF1ZW5jeV9yYXdPclByb2Nlc3NlZC5jc3ZgIENvbXByZWhlbnNpdmUgZXhhbXBsZXM6IDEuIGBtaWNyb19DMV9jYXN0XzEwSHpfcmF3LmNzdmAgKiBgbWljcm9gIG1pY3Jvc2NhbGUgc3BlY2ltZW4gKiBgQzFgIHNwZWNpbWVuIGlkZW50aWZpZXIgKiBgY2FzdGAgZmFicmljYXRlZCB2aWEgY2FzdGluZyAqIGAxMEh6YCAxMCBIeiBjeWNsaWMgbG9hZGluZyBmcmVxdWVuY3kgKiBgcmF3YCByYXcgZGF0YSAxLiBgbWFjcm9fQjFfQU1fMHA0SHpfcHJvY2Vzc2VkLmNzdmAgKiBgbWFjcm9gIG1hY3Jvc2NhbGUgc3BlY2ltZW4gKiBgQjFgIHNwZWNpbWVuIGlkZW50aWZpZXIgKiBgQU1gIGZhYnJpY2F0ZWQgdmlhIGFkZGl0aXZlIG1hbnVmYWN0dXJpbmcgKiBgMHA0SHpgIDAuNCBIeiBjeWNsaWMgbG9hZGluZyBmcmVxdWVuY3kgKiBgcHJvY2Vzc2VkYCBwcm9jZXNzZWQgZGF0YSBTb21lIHJhdyBmaWxlcyBhcmUgc3BsaXQgaW50byBjaHJvbm9sb2dpY2FsIHNlZ21lbnRzIGluZGljYXRlZCBieSBhIG51bWVyaWMgc3VmZml4IChlLmcuLCBgXzAwMWAsIGBfMDAyYCkuICoqZmF0aWd1ZV9mcmFjdHVyZS9tYWNyb3NjYWxlL3Jhdy8qKiBSYXcgZGF0YSBmcm9tIHRocmVlIEFNIHNpbmdsZS1lZGdlIG5vdGNoZWQgYmVhbSAoU0VOQikgc3BlY2ltZW5zIChCMSwgQjIsIEIzKSBjb2xsZWN0ZWQgdXNpbmcgYSBNVFMgQ3JpdGVyaW9uIE1vZGVsIDQzIHVuaWF4aWFsIHRlc3RpbmcgbWFjaGluZSBhdCAwLjQgSHouIENvbHVtbnM6ICogYExvYWQgKE4pYCBhcHBsaWVkIGxvYWQgaW4gTmV3dG9ucyAqIGBEaXNwbGFjZW1lbnQgKG1tKWAgY3Jvc3NoZWFkIGRpc3BsYWNlbWVudCBpbiBtaWxsaW1ldGVycyAqIGBUaW1lIChzKWAgZWxhcHNlZCB0aW1lIGluIHNlY29uZHMgKiBgQ3ljbGVgIGN5Y2xlIG51bWJlciAqKmZhdGlndWVfZnJhY3R1cmUvbWFjcm9zY2FsZS9wcm9jZXNzZWQvKiogUHJvY2Vzc2VkIG91dHB1dCBmcm9tIGBmYXRpZ3VlX2ZyYWN0dXJlX2FuYWx5c2lzX21hY3Jvc2NhbGUucHlgLiBDb2x1bW5zOiAqIGBOYCBjeWNsZSBudW1iZXIgKiBgZGVsdGFfSyAoTVBhKnNxcnQobSkpYCBzdHJlc3MgaW50ZW5zaXR5IGZhY3RvciByYW5nZSBpbiBNUGEgc3FydChtKSAqIGDOlGEgKG1tKWAgY3JhY2sgZXh0ZW5zaW9uIGluIG1pbGxpbWV0ZXJzICogYGRhL2ROIChtL2N5Y2xlKWAgY3JhY2sgZ3Jvd3RoIHJhdGUgaW4gbWV0ZXJzL2N5Y2xlICoqZmF0aWd1ZV9mcmFjdHVyZS9taWNyb3NjYWxlL3Jhdy8qKiBSYXcgZGF0YSBmcm9tIGZvdXIgQU0gYW5kIGZvdXIgY2FzdCBtaWNyb2NhbnRpbGV2ZXIgc3BlY2ltZW5zIChBTTEtQU00LCBDMS1DNCkgY29sbGVjdGVkIHVzaW5nIGEgS0xBIE5hbm9mbGlwIG5hbm9pbmRlbnRlci4gRmlsZXMgdGVzdGVkIGF0IDEwIEh6IGNvbnRhaW4gY29sdW1uczogKiBgRHluYW1pYyBGb3JjZSAozrxOKWAgZHluYW1pYyBsb2FkIGFtcGxpdHVkZSBpbiBtaWNyb25ld3RvbnMgKiBgRHluYW1pYyBEaXNwbGFjZW1lbnQgKG5tKWAgZHluYW1pYyBkaXNwbGFjZW1lbnQgYW1wbGl0dWRlIGluIG5hbm9tZXRlcnMgKiBgRHluYW1pYyBTdGlmZm5lc3MgKE4vbSlgIHN0aWZmbmVzcyBpbiBOZXd0b25zL21ldGVyICogYFRpbWUgKHMpYCBlbGFwc2VkIHRpbWUgaW4gc2Vjb25kcyBGaWxlcyB0ZXN0ZWQgYXQgMSBIeiBjb250YWluIGNvbHVtbnM6ICogYExvYWQgKG1OKWAgYXBwbGllZCBsb2FkIGluIG1pbGxpbmV3dG9ucyAqIGBEaXNwbGFjZW1lbnQgKG5tKWAgZGlzcGxhY2VtZW50IGluIG5hbm9tZXRlcnMgKiBgU3RpZmZuZXNzIChOL20pYCBzdGlmZm5lc3MgaW4gTmV3dG9ucy9tZXRlciAqIGBDeWNsZSBOdW1iZXJgIGN5Y2xlIG51bWJlciAqKmZhdGlndWVfZnJhY3R1cmUvbWljcm9zY2FsZS9mZWEvKiogRkVBIGNhbGlicmF0aW9uIGZpbGVzIHJlbGF0aW5nIGNyYWNrIGxlbmd0aCByYXRpbyB0byBzcGVjaW1lbiBzdGlmZm5lc3MsIHVzZWQgdG8gY29tcHV0ZSBjcmFjayBsZW5ndGggZnJvbSBtZWFzdXJlZCBzdGlmZm5lc3MuIE9uZSBmaWxlIHBlciBtYXRlcmlhbCB0eXBlIChgZmVhX2NhbGlicmF0aW9uX0FNLmNzdmAsIGBmZWFfY2FsaWJyYXRpb25fY2FzdC5jc3ZgKS4gQ29sdW1uczogKiBgYS9XYCBjcmFjayBsZW5ndGggdG8gc3BlY2ltZW4gd2lkdGggcmF0aW8gKiBgayAoTi9tKWAgc3BlY2ltZW4gc3RpZmZuZXNzIGluIE5ld3RvbnMvbWV0ZXIgKipmYXRpZ3VlX2ZyYWN0dXJlL21pY3Jvc2NhbGUvcHJvY2Vzc2VkLyoqIFByb2Nlc3NlZCBvdXRwdXQgZnJvbSBgZmF0aWd1ZV9mcmFjdHVyZV9hbmFseXNpc19taWNyb3NjYWxlLnB5YC4gQ29sdW1uczogKiBgTmAgY3ljbGUgbnVtYmVyICogYEogKEovbV4yKWAgY3ljbGljIEotaW50ZWdyYWwgaW4gSm91bGVzL21ldGVyIHNxdWFyZWQgKiBgzpRhICh1bSlgIGNyYWNrIGV4dGVuc2lvbiBpbiBtaWNyb21ldGVycyAqIGBkYS9kTiAobS9jeWNsZSlgIGNyYWNrIGdyb3d0aCByYXRlIGluIG1ldGVycy9jeWNsZSAjIyMjIG5hbm9pbmRlbnRhdGlvbi56aXAgQ29udGFpbnMgQ1NWIGZpbGVzIGZyb20gbmFub2luZGVudGF0aW9uIGV4cGVyaW1lbnRzIG9uIEFNIGFuZCBjYXN0IG1hdGVyaWFsLCBjb2xsZWN0ZWQgdXNpbmcgYSBLTEEgaU1pY3JvIG5hbm9pbmRlbnRlci4gRmlsZXMgYXJlIG9yZ2FuaXplZCBpbnRvIGBBTS9gIGFuZCBgY2FzdC9gIHN1YmRpcmVjdG9yaWVzIGFuZCBuYW1lZCBhcyBmb2xsb3dzOiBgbmFub2luZGVudGF0aW9uX21hdGVyaWFsX3Rlc3RYWC5DU1ZgIHdoZXJlIGBtYXRlcmlhbGAgaXMgYEFNYCBvciBgY2FzdGAgYW5kIGBYWGAgaXMgYSB6ZXJvLXBhZGRlZCB0ZXN0IGluZGV4IChlLmcuLCBgbmFub2luZGVudGF0aW9uX0FNX3Rlc3QwMS5DU1ZgKS4gQ29sdW1ucyBpbiBhbGwgbmFub2luZGVudGF0aW9uIGZpbGVzOiAqIGBNYXJrZXJzYCBldmVudCBtYXJrZXJzIChlLmcuLCBgU3VyZmFjZSBJbmRleGAsIGBFbmQgT2YgTG9hZGluZyBJbmRleGApICogYERFUFRIYCBpbmRlbnRhdGlvbiBkZXB0aCBpbiBuYW5vbWV0ZXJzICogYExPQURgIGFwcGxpZWQgbG9hZCBpbiBtaWxsaW5ld3RvbnMgKiBgU1RJRkZORVNTYCBzdGlmZm5lc3MgaW4gTmV3dG9ucy9tZXRlciAqIGBUSU1FYCBlbGFwc2VkIHRpbWUgaW4gc2Vjb25kcyBEYXRhIGNhbiBiZSBwcm9jZXNzZWQgdXNpbmcgYHByb2Nlc3NfbmFub2luZGVudGF0aW9uX2RhdGEucHlgLCB3aGljaCBpbXBsZW1lbnRzIHRoZSBPbGl2ZXItUGhhcnIgbWV0aG9kIChPbGl2ZXIgYW5kIFBoYXJyLCBKTVIgMjAwNCwgW2h0dHBzOi8vZG9pLm9yZy8xMC4xNTU3L2ptci4yMDA0LjE5LjEuM10oaHR0cHM6Ly9kb2kub3JnLzEwLjE1NTcvam1yLjIwMDQuMTkuMS4zKSkgdG8gY29tcHV0ZSBlbGFzdGljIG1vZHVsdXMuICMjIyMgc3VyZmFjZV9jaGFyYWN0ZXJpemF0aW9uLnppcCBDb250YWlucyBzdXJmYWNlIHRvcG9ncmFwaHkgZGF0YSBmcm9tIG1hY3JvLSBhbmQgbWljcm9zY2FsZSBmYXRpZ3VlIGZyYWN0dXJlIHN1cmZhY2VzLiAqIGBtYWNyb19mYXRpZ3VlX2ZyYWN0dXJlX3N1cmZhY2UudHh0YCB0YWItc2VwYXJhdGVkIGhlaWdodCBtYXAgKHZhbHVlcyBpbiBtZXRlcnMpIG9mIHRoZSBtYWNyb3NjYWxlIGZyYWN0dXJlIHN1cmZhY2UuIEhlYWRlciBsaW5lcyAocHJlZml4ZWQgd2l0aCBgI2ApIHNwZWNpZnkgdGhlIHNjYW4gZGltZW5zaW9ucyBhbmQgdmFsdWUgdW5pdHMuICogYG1pY3JvX2ZhdGlndWVfZnJhY3R1cmVfc3VyZmFjZV9zbW9vdGhlZC52dGtgIDNEIHN1cmZhY2UgbWVzaCBvZiB0aGUgbWljcm9zY2FsZSBmcmFjdHVyZSBzdXJmYWNlIGFmdGVyIEdhdXNzaWFuIHNtb290aGluZywgaW4gVlRLIGZvcm1hdC4gKiBgbWljcm9fZmF0aWd1ZV9mcmFjdHVyZV9zdXJmYWNlX3Vuc21vb3RoZWQudnRrYCAzRCBzdXJmYWNlIG1lc2ggb2YgdGhlIG1pY3Jvc2NhbGUgZnJhY3R1cmUgc3VyZmFjZSBwcmlvciB0byBzbW9vdGhpbmcsIGluIFZUSyBmb3JtYXQuIFZUSyBmaWxlcyBjYW4gYmUgb3BlbmVkIHdpdGggUGFyYVZpZXcgb3IgYW55IHNvZnR3YXJlIHN1cHBvcnRpbmcgdGhlIFZUSyBsZWdhY3kgZm9ybWF0LiAjIyBTaGFyaW5nL0FjY2VzcyBJbmZvcm1hdGlvbiBBbGwgZGF0YSBpcyBhdmFpbGFibGUgaGVyZS4gSWYgYW55dGhpbmcgYXBwZWFycyB0byBiZSBtaXNzaW5nLCBwbGVhc2UgY29udGFjdCB0aGUgY29ycmVzcG9uZGluZyBhdXRob3IuICMjIENvZGUvU29mdHdhcmUgUHl0aG9uIHNjcmlwdHMgZm9yIHByb2Nlc3NpbmcgYWxsIGRhdGEgdHlwZXMgYXJlIGluY2x1ZGVkIGFsb25nc2lkZSB0aGUgZGF0YTogKiBgZmF0aWd1ZV9mcmFjdHVyZS9tYWNyb3NjYWxlL2ZhdGlndWVfZnJhY3R1cmVfYW5hbHlzaXNfbWFjcm9zY2FsZS5weWAgcHJvY2Vzc2VzIHJhdyBtYWNyb3NjYWxlIFNFTkIgZGF0YS4gQ29tcHV0ZXMgSywgzpRhLCBkYS9kTiwgS19RLCBhbmQgdGhlIGNyYWNrIGluaXRpYXRpb24gbGVuZ3RoIHNjYWxlLiAqIGBmYXRpZ3VlX2ZyYWN0dXJlL21pY3Jvc2NhbGUvZmF0aWd1ZV9mcmFjdHVyZV9hbmFseXNpc19taWNyb3NjYWxlLnB5YCBwcm9jZXNzZXMgcmF3IG1pY3Jvc2NhbGUgZGF0YS4gQ29tcHV0ZXMgSiwgzpRhLCBhbmQgZGEvZE4uICogYGZhdGlndWVfZnJhY3R1cmUvbWljcm9zY2FsZS9maXRfaW5pdGlhdGlvbl9sZW5ndGhfc2NhbGVfbWljcm9zY2FsZS5weWAgZml0cyB0aGUgY3JhY2sgaW5pdGlhdGlvbiBsZW5ndGggc2NhbGUgZnJvbSBtaWNyb3NjYWxlIGZhdGlndWUgZGF0YS4gKiBgbmFub2luZGVudGF0aW9uL3Byb2Nlc3NfbmFub2luZGVudGF0aW9uX2RhdGEucHlgIGNvbXB1dGVzIGVsYXN0aWMgbW9kdWx1cyB2aWEgdGhlIE9saXZlci1QaGFyciBtZXRob2QgYW5kIGZpdHMgcG93ZXItbGF3IHJlbGF0aW9ucyBmb3IgYXZlcmFnZWQgZGVwdGggYW5kIHN0aWZmbmVzcyBhcyBhIGZ1bmN0aW9uIG9mIGxvYWQuIEFsbCBzY3JpcHRzIGFyZSBhbm5vdGF0ZWQgYW5kIGluY2x1ZGUgc2VjdGlvbnMgZm9yICgxKSBsb2FkaW5nIHJhdyBkYXRhLCAoMikgcHJvY2Vzc2luZyBhbmQgcGVyZm9ybWluZyByZWxldmFudCBjYWxjdWxhdGlvbnMsIGFuZCAoMykgZXhwb3J0aW5nIGNsZWFuZWQvcHJvY2Vzc2VkIGRhdGFzZXRzLgogICAgPC9kZXNjcmlwdGlvbj4KICA8L2Rlc2NyaXB0aW9ucz4KPC9yZXNvdXJjZT4=","url":"https://datadryad.org/dataset/doi:10.5061/dryad.vq83bk48n","contentUrl":null,"metadataVersion":0,"schemaVersion":"http://datacite.org/schema/kernel-4","source":"mds","isActive":true,"state":"findable","reason":null,"viewCount":32,"viewsOverTime":[{"yearMonth":"2026-05","total":32}],"downloadCount":2,"downloadsOverTime":[{"yearMonth":"2026-05","total":2}],"referenceCount":0,"citationCount":0,"citationsOverTime":[],"partCount":0,"partOfCount":0,"versionCount":0,"versionOfCount":0,"created":"2026-05-08T22:00:47.000Z","registered":"2026-05-08T22:00:48.000Z","published":"2026","updated":"2026-05-08T22:00:48.000Z"},"relationships":{"client":{"data":{"id":"dryad.dryad","type":"clients"}},"provider":{"data":{"id":"dryad","type":"providers"}},"media":{"data":{"id":"10.5061/dryad.vq83bk48n","type":"media"}},"references":{"data":[]},"citations":{"data":[]},"parts":{"data":[]},"partOf":{"data":[]},"versions":{"data":[]},"versionOf":{"data":[]}}}}