import io p = "index.html" s = open(p).read() # 1. Add WA tab to VIEWS old_views = 'const VIEWS=[["home","Suite"],["field","Field Guide"],["keys","Keys"],["house","22 Points"],["cards","Flashcards"],["exam","Exam"],["gloss","Glossary"]];' new_views = 'const VIEWS=[["home","Suite"],["field","Field Guide"],["keys","Keys"],["house","22 Points"],["cards","Flashcards"],["exam","Exam"],["gloss","Glossary"],["wa","WA Cert"]];' assert old_views in s, "VIEWS not found" s = s.replace(old_views, new_views) # 2. Add the WA section element after v-gloss old_sec = '
' new_sec = old_sec + '\n
' assert old_sec in s, "v-gloss section not found" s = s.replace(old_sec, new_sec) # 3. Build the WA view render block (factual WSDA content + original questions) WA_RENDER = r''' /* ---- WA CERTIFICATION ---- */ $('#v-wa').innerHTML=`
Washington State Department of Agriculture · agr.wa.gov

The license itself,Washington
Certification

The WSU EM019 manual teaches you the pests — this is the paperwork that stands between you and the applicator's license. Everything below is the current WSDA requirement, in one place.

Who runs it

Regulatory agency

${[["Agency","Washington State Department of Agriculture (WSDA)"],["Phone","(360) 902-2020"],["Website","agr.wa.gov"],["Address","Olympia, WA 98504"]].map(([k,v])=>`
${k}${v}
`).join('')}
The exam

Format, fees & renewal

${[["Questions","50–100 multiple choice"],["Time limit","120 minutes"],["Passing score","70%"],["Book","Closed book"],["Exam fee","$33"],["License fee","$73"],["Renewal fee","$73"],["Renewal period","5 years"],["Continuing education","40 CEUs per 5-year period"]].map(([k,v])=>`
${k}${v}
`).join('')}
Licensed categories

Seven categories — each needs its own exam

${["Agricultural","Ornamental & Turf","Structural","Right-of-Way","Aquatic","Forest","Public Health"].map((c,i)=>`
0${i+1}

${c}

Separate category-specific exam, in addition to the core exam.

`).join('')}
What the core exam tests

Ten areas of knowledge

${[["Pesticide Safety","Handling, storage, formulations, and core safety principles."],["Label Reading","Signal words, directions for use, and legal requirements."],["Environmental Protection","Buffer zones, drift, groundwater, and endangered species."],["Laws & Regulations","FIFRA, WPS, recordkeeping, and certification requirements."],["Integrated Pest Management","Monitoring, thresholds, biological control, and IPM strategy."],["Toxicology","LD50, exposure routes, symptoms, and first aid."],["Application Equipment","Calibration, nozzles, sprayers, and drift management."],["PPE","Respirators, gloves, coveralls, and decontamination."],["Worker Protection Standard","WPS requirements, REIs, notifications, and employer obligations."],["Calibration & Math","GPA calculations, mixing ratios, and nozzle output."]].map(([t,d],i)=>`
${String(i+1).padStart(2,'0')}

${t}

${d}

`).join('')}
Study resources

Where to go deeper

${[["Primary resource","Washington State University Extension — extension.wsu.edu"],["This suite","The EM019 manual, 13 chapters of it, is right here in the Field Guide"],["The drills","Flashcards and the practice exam above are your prep engine"]].map(([k,v])=>`
${k}${v}
`).join('')}
Check yourself

WA certification quick test

Eight questions, straight from the same material — written here, not lifted from anywhere.

${[["Which agency regulates pesticide use in Washington?","The Washington State Department of Agriculture (WSDA)."],["What federal law governs pesticide use nationwide?","FIFRA — the Federal Insecticide, Fungicide, and Rodenticide Act."],["What does the signal word DANGER mean?","Category I — highly toxic."],["How long do you keep RUP application records?","At least 2 years from the application date."],["Most common exposure route for an applicator?","Dermal — through the skin."],["What does the REI do?","Restricts re-entry into a treated area until residues drop to a safe level."],["First thing before mixing any pesticide?","Read the entire label."],["Poison Control number?","1-800-222-1222."]].map(([q,a],i)=>`
Q${i+1}. ${q}${a}
`).join('')}
`; ''' s = s.rstrip() + '\n' + WA_RENDER + '\n' open(p, 'w').write(s) print(f"added WA Certification view; new size {len(s)}")