General
Eligible vs. Ineligible
EligibleX <- AU_SAH_INTAKE_COMPLETED_DELL%>%
select(IneligibleReasons)%>%
filter(is.na(IneligibleReasons))
print(EligibleX)
(7299/11361)*100
#TOTAL AMOUNT OF ELIGIBLE PEOPLE: 7,299
#PERCENT OF ELIGIBLE PEOPLE: 64.2%
IneligibleX <- AU_SAH_INTAKE_COMPLETED_DELL%>%
select(IneligibleReasons)
print(na.omit(IneligibleX))
(4062/11361)*100
#TOTAL AMOUNT OF INELIGIBLE PEOPLE: 4,062
#PERCENT OF INELIGIBLE PEOPLE: 35.8%
Ineligible60AndAboveX <- AU_SAH_INTAKE_COMPLETED_DELL %>%
select(AGE, IneligibleReasons)%>%
filter(AGE >=60)
print(na.omit(Ineligible60AndAboveX))
(3718/4062)*100
#TOTAL AMOUNT OF INELIBLE PEOPLE AGED 60 AND OLDER: 3,718
#PERCENT OF PEOPLE AGED 60 AND OLDER DEEMED INELIGIBLE: 32.0%
- Of the ineligibles, what percentage were aged below 60?
IneligibleBelow60X <- AU_SAH_INTAKE_COMPLETED_DELL %>%
select(AGE, IneligibleReasons)%>%
filter(AGE <60)
print(na.omit(IneligibleBelow60X))
(339/4062)*100
#TOTAL AMOUNT OF INELIGBLE PEOPLE BELOW 60: 339
#PERCENT OF INELIGIBLE PEOPLE BELOW 60: 8.35%
5.59+0.54
[1] 6.13
- Is there a difference between ineligibility and DC Healthy
Benefits
HaveDCPBIneligible <- AU_SAH_INTAKE_COMPLETED_DELL %>%
select(CSTAR, DCPublicBenefits, IneligibleReasons)%>%
na.omit(filter(DCPublicBenefits == "Yes"))
print(HaveDCPBIneligible)
(1528/4062)*100
#TOTAL AMOUNT OF INELIGIBLES WHO HAVE DC PUBLIC BENEFITS: 1,528
#PERCENT OF INELIGIBLES WHO HAVE DC PUBLIC BENEFITS: 37.6%
NoDCPBIneligible <- AU_SAH_INTAKE_COMPLETED_DELL %>%
na.omit(select(CSTAR, DCPublicBenefits, IneligibleReasons))%>%
filter(is.na(DCPublicBenefits))
(2534/4062)*100
#TOTAL AMOUNT OF INELIGIBLES WHO DO NOT HAVE DC PUBLIC BENEFITS: 2,534
#PERCENT OF INELGIBLES WHO DO NOT HAVE DC PUBLIC BENEFITS: 62.4%
HaveDCPBEligible <- AU_SAH_INTAKE_COMPLETED_DELL %>%
select(DCPublicBenefits, IneligibleReasons)%>%
filter(DCPublicBenefits == "Yes",is.na(IneligibleReasons))
print(HaveDCPBEligible)
(2797/7299)*100
#TOTAL AMOUNT OF ELIGIBLES WHO HAVE DC PUBLIC BENEFITS: 2,797
#PERCENT OF ELIGIBLES WHO HAVE DC PUBLIC BENEFITS: 38.3%
NoDCPBEligible <- AU_SAH_INTAKE_COMPLETED_DELL %>%
select(DCPublicBenefits, IneligibleReasons)%>%
filter(is.na(DCPublicBenefits), is.na(IneligibleReasons))
print(NoDCPBEligible)
(4502/7922)*100
#TOTAL AMOUNT OF ELIGIBLES WHO DO NOT HAVE PUBLIC BENEFITS: 4,502
#PERCENT OF ELIGIBLES WHO DO NOT HAVE PUBLIC BENEFITS: 56.8%
GENDER
FemaleClients <- AU_SAH_DELL%>%
select(Gender)%>%
filter(Gender == "Female")
print(FemaleClients)
(3766/4741)*100
femaleClient <- AU_SAH_DELL %>%
select(Gender)%>%
filter(Gender == "female")
print(femaleClient)
FEMALEClient <- AU_SAH_DELL %>%
select(Gender)%>%
filter(Gender == "FEMALE")
print(FEMALEClient)
#TOTAL AMOUNT OF FEMALE CLIENTS: 3,766
#PERCENT OF FEMALE SERVED CLIENTS: 79.4%
- What percent of served clients were male?
MaleClients <- AU_SAH_DELL%>%
select(Gender)%>%
filter(Gender == "Male")
print(MaleClients)
(974/4741)*100
#TOTAL AMOUNT OF MALE CLIENTS: 974
#PERCENT OF MALE SERVED CLIENTS: 20.5%
AGE
(3766/4741)*100
[1] 79.43472
- What percent of clients were below 60?
BelowSixty <- AU_SAH_DELL%>%
select(Age)%>%
filter(Age <60)
print(BelowSixty)
(360/4741)*100
#TOTAL AMOUNT OF CLIENTS YOUNGER THAN 60: 360
#PERCENT OF CLIENTS UNDER 60 YEARS OF AGE: 7.59%
##IMPORTANT## INDIVIDUAL WITH CSTAR 251515 HAS AGE LISTED AS 0!
NewborneElder <- AU_SAH_DELL %>%
select(CSTAR, Age)%>%
filter(Age == 0)
print(NewborneElder)
WARD
Ward1 <- AU_SAH_DELL%>%
select(Ward)%>%
filter(Ward == 1)
print(Ward1)
(212/4741)*100
#TOTAL AMOUNT OF CLIENTS RESIDING IN WARD 1: 212
#PERCENT OF CLIENTS RESIDING IN WARD 1: 4.47%
Ward2 <- AU_SAH_DELL %>%
select(Ward)%>%
filter(Ward == 2)
print(Ward2)
(80/4741)*100
#TOTAL AMOUNT OF CLIENTS RESIDING IN WARD 2: 80
#PERCENT OF CLIENTS RESIDING IN WARD 2: 1.69%
Ward3 <- AU_SAH_DELL %>%
select(Ward)%>%
filter(Ward == 3)
print(Ward3)
(83/4741)*100
#TOTAL AMOUNT OF CLIENTS RESIDING IN WARD 3: 83
#PERCENT OF CLIENTS RESIDING IN WARD 3: 1.75%
Ward4 <- AU_SAH_DELL %>%
select(Ward)%>%
filter(Ward == 4)
print(Ward4)
(844/4741)*100
#TOTAL AMOUNT OF CLIENTS RESIDING IN WARD 4: 844
#PERCENT OF CLIENTS RESIDING IN WARD 4: 17.8%
Ward5 <- AU_SAH_DELL %>%
select(Ward)%>%
filter(Ward == 5)
print(Ward5)
(981/4741)*100
#TOTAL AMOUNT OF CLIENTS RESIDING IN WARD 5: 981
#PERCENT OF CLIENTS RESIDING IN WARD 5: 20.7%
Ward6 <- AU_SAH_DELL %>%
select(Ward)%>%
filter(Ward == 6)
print(Ward6)
(452/4741)*100
#TOTAL AMOUNT OF CLIENTS RESIDING IN WARD 6: 452
#PERCENT OF CLIENTS RESIDING IN WARD 6: 9.53%
Ward7 <- AU_SAH_DELL %>%
select(Ward)%>%
filter(Ward == 7)
print(Ward7)
(1197/4741)*100
#TOTAL AMOUNT OF CLIENTS RESIDING IN WARD 7: 1,197
#PERCENT OF CLIENTS RESIDING IN WARD 7: 25.2%
Ward8 <- AU_SAH_DELL %>%
select(Ward)%>%
filter(Ward == 8)
print(Ward8)
(890/4741)*100
#TOTAL AMOUNT OF CLIENTS RESIDING IN WARD 8: 890
#PERCENT OF CLIENTS RESIDING IN WARD 8: 18.8%
##IMPORTANT## INDIVIDUAL WITH CSTAR 247745 HAVE WARD LISTED AS 0!
Ward0 <- AU_SAH_DELL %>%
select(CSTAR, Ward)%>%
filter(Ward == 0)
print(Ward0)
Fiscal Years
NADateOfVisit <- DateOfVisit %>%
filter(is.na(DateOfVisit))
print(NADateOfVisit)
Second Episode
- What percent of clients needed a second episode?
SecondEpisode <- AU_SAH_Date_Visit %>%
select(SecondEpisode) %>%
filter(SecondEpisode == "Yes")
print(SecondEpisode)
(572/4741)*100
#TOTAL AMOUNT OF CLIENTS WHO NEEDED A SECOND EPISODE: 572
#PERCENT OF CLIENTS WHO NEEDED A SECOND EPISODE: 12.1%
LS0tDQp0aXRsZTogIkFVX1NBSF9ERUxMX1giDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoqKkdlbmVyYWwqKg0KDQotICAgSG93IG1hbnkgY2xpZW50cyB3ZXJlIHNlcnZlZCBiZXR3ZWVuIDIwMTYgYW5kIDIwMjI/DQoNCiAgICAtICAgIlRoZSBTQUggUHJvZ3JhbSBzZXJ2ZWQgNCw3NTMuLi5pbiBGWSAyMDE2LTIwMjIuLi4iDQoNCiAgICAgICAgLSAgIERJU0FHUkVFOyB0aGUgcHJvZ3JhbSBzZXJ2ZWQgNCw3NDENCiAgICAgICAgLSAgICMjSU1QT1JUQU5UIyMgQ1NUQVIxMjU1NzcgSEFTIE5PIFdBUkQsIEFHRSwgT1IgU0VYIExJU1RFRFwtXC0tREVTUElURSBCRUlORyBPTkUgT0YgNCw3NDEgU0VSVkVEDQoNCioqRWxpZ2libGUgdnMuIEluZWxpZ2libGUqKg0KDQotICAgSG93IG1hbnkgYXBwbGljYXRpb25zIHdlcmUgY29tcGxldGVkPw0KDQogICAgLSAgICIuLi4gdGhlcmUgd2VyZSAxMSwzNjEgaW50YWtlIGFwcGxpY2F0aW9ucyBjb21wbGV0ZWQuLi4iDQoNCiAgICAgICAgLSAgIEFHUkVFDQoNCi0gICBXaGF0IHBlcmNlbnQgb2YgcGVvcGxlIHdlcmUgZGVlbWVkIGVsaWdpYmxlPw0KDQpgYGB7cn0NCkVsaWdpYmxlWCA8LSBBVV9TQUhfSU5UQUtFX0NPTVBMRVRFRF9ERUxMJT4lDQogIHNlbGVjdChJbmVsaWdpYmxlUmVhc29ucyklPiUNCiAgZmlsdGVyKGlzLm5hKEluZWxpZ2libGVSZWFzb25zKSkNCnByaW50KEVsaWdpYmxlWCkNCig3Mjk5LzExMzYxKSoxMDANCg0KI1RPVEFMIEFNT1VOVCBPRiBFTElHSUJMRSBQRU9QTEU6IDcsMjk5DQojUEVSQ0VOVCBPRiBFTElHSUJMRSBQRU9QTEU6IDY0LjIlDQpgYGANCg0KLSAgIFdoYXQgcGVyY2VudCBvZiBwZW9wbGUgd2VyZSBkZWVtZWQgaW5lbGlnaWJsZT8NCg0KICAgIC0gICAiSW4gRlkgMjAxNiAtMjAyMiB0aGVyZSB3ZXJlIDExLDM2MSBpbnRha2UgYXBwbGljYXRpb25zIGNvbXBsZXRlZCBvZiB3aGljaCA1OCUgd2VyZSBpbmVsaWdpYmxlLi4uKG4gPSA2LDYyMCkuIg0KDQogICAgICAgIC0gICBESVNBR1JFRTsgMzUuOCUgd2VyZSBpbmVsaWdpYmxlIChuID0gNCwwNjIpDQoNCmBgYHtyfQ0KSW5lbGlnaWJsZVggPC0gQVVfU0FIX0lOVEFLRV9DT01QTEVURURfREVMTCU+JQ0KICBzZWxlY3QoSW5lbGlnaWJsZVJlYXNvbnMpDQpwcmludChuYS5vbWl0KEluZWxpZ2libGVYKSkNCig0MDYyLzExMzYxKSoxMDANCg0KI1RPVEFMIEFNT1VOVCBPRiBJTkVMSUdJQkxFIFBFT1BMRTogNCwwNjINCiNQRVJDRU5UIE9GIElORUxJR0lCTEUgUEVPUExFOiAzNS44JQ0KYGBgDQoNCi0gICBPZiB0aGUgaW5lbGlnaWJsZXMsIHdoYXQgcGVyY2VudGFnZSB3ZXJlIGFnZWQgNjAgYW5kIG92ZXI/DQoNCiAgICAtICAgIi4uLm9mIGluZWxpZ2libGUgcGFydGljaXBhbnRzLCA5NC41JSAobiA9IDM3MTkpIHdlcmUgYWdlZCA2MCBvciBvbGRlci4iDQoNCiAgICAgICAgLSAgIERJU0FHUkVFOyA5MS41JSAobiA9IDMsNzE4KQ0KDQpgYGB7cn0NCkluZWxpZ2libGU2MEFuZEFib3ZlWCA8LSBBVV9TQUhfSU5UQUtFX0NPTVBMRVRFRF9ERUxMICU+JQ0KICBzZWxlY3QoQUdFLCBJbmVsaWdpYmxlUmVhc29ucyklPiUNCiAgZmlsdGVyKEFHRSA+PTYwKQ0KcHJpbnQobmEub21pdChJbmVsaWdpYmxlNjBBbmRBYm92ZVgpKQ0KKDM3MTgvNDA2MikqMTAwDQoNCiNUT1RBTCBBTU9VTlQgT0YgSU5FTElCTEUgUEVPUExFIEFHRUQgNjAgQU5EIE9MREVSOiAzLDcxOA0KI1BFUkNFTlQgT0YgUEVPUExFIEFHRUQgNjAgQU5EIE9MREVSIERFRU1FRCBJTkVMSUdJQkxFOiAzMi4wJQ0KYGBgDQoNCi0gICBPZiB0aGUgaW5lbGlnaWJsZXMsIHdoYXQgcGVyY2VudGFnZSB3ZXJlIGFnZWQgYmVsb3cgNjA/DQoNCmBgYHtyfQ0KSW5lbGlnaWJsZUJlbG93NjBYIDwtIEFVX1NBSF9JTlRBS0VfQ09NUExFVEVEX0RFTEwgJT4lDQogIHNlbGVjdChBR0UsIEluZWxpZ2libGVSZWFzb25zKSU+JQ0KICBmaWx0ZXIoQUdFIDw2MCkNCnByaW50KG5hLm9taXQoSW5lbGlnaWJsZUJlbG93NjBYKSkNCigzMzkvNDA2MikqMTAwDQoNCiNUT1RBTCBBTU9VTlQgT0YgSU5FTElHQkxFIFBFT1BMRSBCRUxPVyA2MDogMzM5DQojUEVSQ0VOVCBPRiBJTkVMSUdJQkxFIFBFT1BMRSBCRUxPVyA2MDogOC4zNSUNCmBgYA0KDQotICAgV2hhdCB3ZXJlIHRoZSBtb3N0IGNvbW1vbiByZWFzb25zIGZvciBpbmVsaWdpYmlsaXR5Pw0KDQogICAgLSAgICJUaGUgbW9zdCBjb21tb24gcmVhc29ucyBmb3IgaW5lbGlnaWJpbGl0eSB3ZXJlIGluY29tcGxldGUgZG9jdW1lbnRzICg1OCUpIGFuZCB1bnJlc3BvbnNpdmUvbm8gbG9uZ2VyIGludGVyZXN0ZWQgKDMxJSkuIg0KDQogICAgICAgIC0gICBESVNBR1JFRTsgSW5jb21wbGV0ZSBkb2N1bWVudHMgKDU2LjUlKSwgdW5yZXNwb25zaXZlbmVzcyAvIGxhY2sgb2YgaW50ZXJlc3QgKDI3LjMlKS4NCg0KYGBge3J9DQpJbmNvbXBsZXRlRG9jdW1lbnRzWCA8LSBBVV9TQUhfSU5UQUtFX0NPTVBMRVRFRF9ERUxMICU+JQ0KICBzZWxlY3QoSW5lbGlnaWJsZVJlYXNvbnMpJT4lDQogIGZpbHRlcihJbmVsaWdpYmxlUmVhc29ucyA9PSAiSW5jb21wbGV0ZSBkb2N1bWVudHMiKQ0KcHJpbnQoSW5jb21wbGV0ZURvY3VtZW50c1gpDQooMjI5Ny80MDYyKSoxMDANCg0KI1RPVEFMIEFNT1VOVCBPRiBSRUFTT04gSU5DT01QTEVURSBET0NVTUVOVFM6IDIsMjk3DQojUEVSQ0VOVCBPRiBJTkNPTVBMRVRFIERPQ1VNRU5UUyBSRUFTT05TOiA1Ni41JQ0KDQpVbnJlc3BvbnNpdmVYIDwtIEFVX1NBSF9JTlRBS0VfQ09NUExFVEVEX0RFTEwgJT4lDQogIHNlbGVjdChJbmVsaWdpYmxlUmVhc29ucyklPiUNCiAgZmlsdGVyKEluZWxpZ2libGVSZWFzb25zID09ICJVbnJlc3BvbnNpdmUiKQ0KcHJpbnQoVW5yZXNwb25zaXZlWCkNCig4NjEvNDA2MikqMTAwDQoNCiNUT1RBTCBBTU9VTlQgT0YgUkVBU09OIFVOUkVTUE9OU0lWRTogODYxDQojUEVSQ0VOVCBPRiBVTlJFU1BPTlNJVkUgUkVBU09OUzogMjEuMiUNCg0KTm9Mb25nZXJJbnRlcmVzdGVkWCA8LSBBVV9TQUhfSU5UQUtFX0NPTVBMRVRFRF9ERUxMICU+JQ0KICBzZWxlY3QoSW5lbGlnaWJsZVJlYXNvbnMpJT4lDQogIGZpbHRlcihJbmVsaWdpYmxlUmVhc29ucyA9PSAiTm8gbG9uZ2VyIEludGVyZXN0ZWQiKQ0KcHJpbnQoTm9Mb25nZXJJbnRlcmVzdGVkWCkNCigyMjcvNDA2MikqMTAwDQo1LjU5KzAuNTQNCg0KI1RPVEFMIEFNT1VOVCBPRiBSRUFTT04gTm8gbG9uZ2VyIEludGVyZXN0ZWQ6IDIyNw0KI1BFUkNFTlQgT0YgTk8gTE9OR0VSIElOVEVSRVNURUQgUkVBU09OUzogNS41OSUNCg0KTm90SW5jb21lRWxpZ2libGUgPC0gQVVfU0FIX0lOVEFLRV9DT01QTEVURURfREVMTCU+JQ0KICBzZWxlY3QoSW5lbGlnaWJsZVJlYXNvbnMpJT4lDQogIGZpbHRlcihJbmVsaWdpYmxlUmVhc29ucyA9PSAiTm90IGluY29tZSBlbGlnaWJsZSIpDQpwcmludChOb3RJbmNvbWVFbGlnaWJsZSkNCigxMjQvNDA2MikqMTAwDQoNCiNUT1RBTCBBTU9VTlQgT0YgUkVBU09OIE5PVCBJTkNPTUUgRUxJR0lCTEU6IDEyNA0KI1BFUkNFTlQgT0YgTk9UIElOQ09NRSBFTElHSUJMRSBSRUFTT05TOiAzLjA1JQ0KDQpPdGhlciA8LSBBVV9TQUhfSU5UQUtFX0NPTVBMRVRFRF9ERUxMICU+JQ0KICBzZWxlY3QoSW5lbGlnaWJsZVJlYXNvbnMpJT4lDQogIGZpbHRlcihJbmVsaWdpYmxlUmVhc29ucyA9PSAiT3RoZXIiKQ0KcHJpbnQoT3RoZXIpDQooMTA2LzQwNjIpKjEwMA0KDQojVE9UQUwgQU1PVU5UIE9GIFJFQVNPTiBPVEhFUjogMTA2DQojUEVSQ0VOVCBPRiBPVEhFUiBSRUFTT046IDIuNjElIA0KDQpEZWNlYXNlZCA8LSBBVV9TQUhfSU5UQUtFX0NPTVBMRVRFRF9ERUxMICU+JQ0KICBzZWxlY3QoSW5lbGlnaWJsZVJlYXNvbnMpJT4lDQogIGZpbHRlcihJbmVsaWdpYmxlUmVhc29ucyA9PSAiRGllZCIpDQpwcmludChEZWNlYXNlZCkNCigxMDIvNDA2MikqMTAwDQoNCiNUT1RBTCBBTU9VTlQgUkVBU09OIERFQVRIOiAxMDINCiNQRVJDRU5UIE9GIERFQVRIIFJFQVNPTlM6IDIuNTElDQoNCk5vTW9kc05lZWRlZCA8LUFVX1NBSF9JTlRBS0VfQ09NUExFVEVEX0RFTEwgJT4lDQogIHNlbGVjdChJbmVsaWdpYmxlUmVhc29ucyklPiUNCiAgZmlsdGVyKEluZWxpZ2libGVSZWFzb25zID09ICJObyBtb2RzIG5lZWRlZCIpDQpwcmludChOb01vZHNOZWVkZWQpDQooNTgvNDA2MikqMTAwDQoNCiNUT1RBTCBBTU9VTlQgT0YgUkVBU09OIE5PIE1PRFMgTkVFREVEOiA1OA0KI1BFUkNFTlQgT0YgTk8gTU9EUyBORUVERUQgUkVBU09OOiAxLjQzJQ0KDQpOb3RJbnRlcmVzdGVkQVRNIDwtIEFVX1NBSF9JTlRBS0VfQ09NUExFVEVEX0RFTEwlPiUNCiAgc2VsZWN0KEluZWxpZ2libGVSZWFzb25zKSU+JQ0KICBmaWx0ZXIoSW5lbGlnaWJsZVJlYXNvbnMgPT0gIk5vdCBpbnRlcmVzdGVkIGF0IHRoaXMgdGltZSIpDQpwcmludChOb3RJbnRlcmVzdGVkKQ0KKDIyLzQwNjIpKjEwMA0KDQojVE9UQUwgQU1PVU5UIE9GIFJFQVNPTiBOT1QgSU5URVJFU1RFRCBBVCBUSElTIFRJTUU6IDIyDQojUEVSQ0VOVCBPRiBOT1QgSU5URVJFU1RFRCBSRUFTT05TOiAwLjU0JQ0KDQpNb3ZlZCA8LSBBVV9TQUhfSU5UQUtFX0NPTVBMRVRFRF9ERUxMJT4lDQogIHNlbGVjdChJbmVsaWdpYmxlUmVhc29ucyklPiUNCiAgZmlsdGVyKEluZWxpZ2libGVSZWFzb25zID09ICJNb3ZlZCIpDQpwcmludChNb3ZlZCkNCigxMy80MDYyKSoxMDANCg0KI1RPVEFMIEFNT1VOVCBPRiBSRUFTT04gTU9WRUQ6IDEzDQojUEVSQ0VOVCBPRiBNT1ZFRCBSRUFTT046IDAuMzIlDQpgYGANCg0KLSAgIElzIHRoZXJlIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGluZWxpZ2liaWxpdHkgYW5kIERDIEhlYWx0aHkgQmVuZWZpdHNcDQoNCmBgYHtyfQ0KSGF2ZURDUEJJbmVsaWdpYmxlIDwtIEFVX1NBSF9JTlRBS0VfQ09NUExFVEVEX0RFTEwgJT4lDQogIHNlbGVjdChDU1RBUiwgRENQdWJsaWNCZW5lZml0cywgSW5lbGlnaWJsZVJlYXNvbnMpJT4lDQogIG5hLm9taXQoZmlsdGVyKERDUHVibGljQmVuZWZpdHMgPT0gIlllcyIpKQ0KcHJpbnQoSGF2ZURDUEJJbmVsaWdpYmxlKQ0KKDE1MjgvNDA2MikqMTAwDQoNCiNUT1RBTCBBTU9VTlQgT0YgSU5FTElHSUJMRVMgV0hPIEhBVkUgREMgUFVCTElDIEJFTkVGSVRTOiAxLDUyOA0KI1BFUkNFTlQgT0YgSU5FTElHSUJMRVMgV0hPIEhBVkUgREMgUFVCTElDIEJFTkVGSVRTOiAzNy42JQ0KDQpOb0RDUEJJbmVsaWdpYmxlIDwtIEFVX1NBSF9JTlRBS0VfQ09NUExFVEVEX0RFTEwgJT4lDQogIG5hLm9taXQoc2VsZWN0KENTVEFSLCBEQ1B1YmxpY0JlbmVmaXRzLCBJbmVsaWdpYmxlUmVhc29ucykpJT4lDQogIGZpbHRlcihpcy5uYShEQ1B1YmxpY0JlbmVmaXRzKSkNCigyNTM0LzQwNjIpKjEwMA0KDQojVE9UQUwgQU1PVU5UIE9GIElORUxJR0lCTEVTIFdITyBETyBOT1QgSEFWRSBEQyBQVUJMSUMgQkVORUZJVFM6IDIsNTM0DQojUEVSQ0VOVCBPRiBJTkVMR0lCTEVTIFdITyBETyBOT1QgSEFWRSBEQyBQVUJMSUMgQkVORUZJVFM6IDYyLjQlDQoNCkhhdmVEQ1BCRWxpZ2libGUgPC0gQVVfU0FIX0lOVEFLRV9DT01QTEVURURfREVMTCAlPiUNCiAgc2VsZWN0KERDUHVibGljQmVuZWZpdHMsIEluZWxpZ2libGVSZWFzb25zKSU+JQ0KICBmaWx0ZXIoRENQdWJsaWNCZW5lZml0cyA9PSAiWWVzIixpcy5uYShJbmVsaWdpYmxlUmVhc29ucykpDQpwcmludChIYXZlRENQQkVsaWdpYmxlKQ0KKDI3OTcvNzI5OSkqMTAwDQoNCiNUT1RBTCBBTU9VTlQgT0YgRUxJR0lCTEVTIFdITyBIQVZFIERDIFBVQkxJQyBCRU5FRklUUzogMiw3OTcgDQojUEVSQ0VOVCBPRiBFTElHSUJMRVMgV0hPIEhBVkUgREMgUFVCTElDIEJFTkVGSVRTOiAzOC4zJQ0KDQpOb0RDUEJFbGlnaWJsZSA8LSBBVV9TQUhfSU5UQUtFX0NPTVBMRVRFRF9ERUxMICU+JQ0KICBzZWxlY3QoRENQdWJsaWNCZW5lZml0cywgSW5lbGlnaWJsZVJlYXNvbnMpJT4lDQogIGZpbHRlcihpcy5uYShEQ1B1YmxpY0JlbmVmaXRzKSwgaXMubmEoSW5lbGlnaWJsZVJlYXNvbnMpKQ0KcHJpbnQoTm9EQ1BCRWxpZ2libGUpDQooNDUwMi83OTIyKSoxMDANCg0KI1RPVEFMIEFNT1VOVCBPRiBFTElHSUJMRVMgV0hPIERPIE5PVCBIQVZFIFBVQkxJQyBCRU5FRklUUzogNCw1MDINCiNQRVJDRU5UIE9GIEVMSUdJQkxFUyBXSE8gRE8gTk9UIEhBVkUgUFVCTElDIEJFTkVGSVRTOiA1Ni44JQ0KYGBgDQoNCioqR0VOREVSKioNCg0KLSAgIFdoYXQgcGVyY2VudCBvZiBzZXJ2ZWQgY2xpZW50cyB3ZXJlIGZlbWFsZT8NCg0KICAgIC0gICAiLi4udGhlIG1ham9yaXR5IG9mIFtzZXJ2ZWQgY2xpZW50c10gd2VyZSB3b21lbiAoNzklKS4uLiINCg0KICAgICAgICAtICAgQUdSRUUNCg0KYGBge3J9DQpGZW1hbGVDbGllbnRzIDwtIEFVX1NBSF9ERUxMJT4lDQogIHNlbGVjdChHZW5kZXIpJT4lDQogIGZpbHRlcihHZW5kZXIgPT0gIkZlbWFsZSIpDQpwcmludChGZW1hbGVDbGllbnRzKQ0KKDM3NjYvNDc0MSkqMTAwDQoNCmZlbWFsZUNsaWVudCA8LSBBVV9TQUhfREVMTCAlPiUNCiAgc2VsZWN0KEdlbmRlciklPiUNCiAgZmlsdGVyKEdlbmRlciA9PSAiZmVtYWxlIikNCnByaW50KGZlbWFsZUNsaWVudCkNCg0KRkVNQUxFQ2xpZW50IDwtIEFVX1NBSF9ERUxMICU+JQ0KICBzZWxlY3QoR2VuZGVyKSU+JQ0KICBmaWx0ZXIoR2VuZGVyID09ICJGRU1BTEUiKQ0KcHJpbnQoRkVNQUxFQ2xpZW50KQ0KDQojVE9UQUwgQU1PVU5UIE9GIEZFTUFMRSBDTElFTlRTOiAzLDc2Ng0KI1BFUkNFTlQgT0YgRkVNQUxFIFNFUlZFRCBDTElFTlRTOiA3OS40JQ0KYGBgDQoNCi0gICBXaGF0IHBlcmNlbnQgb2Ygc2VydmVkIGNsaWVudHMgd2VyZSBtYWxlPw0KDQpgYGB7cn0NCk1hbGVDbGllbnRzIDwtIEFVX1NBSF9ERUxMJT4lDQogIHNlbGVjdChHZW5kZXIpJT4lDQogIGZpbHRlcihHZW5kZXIgPT0gIk1hbGUiKQ0KcHJpbnQoTWFsZUNsaWVudHMpDQooOTc0LzQ3NDEpKjEwMA0KDQojVE9UQUwgQU1PVU5UIE9GIE1BTEUgQ0xJRU5UUzogOTc0DQojUEVSQ0VOVCBPRiBNQUxFIFNFUlZFRCBDTElFTlRTOiAyMC41JQ0KYGBgDQoNCioqQUdFKioNCg0KLSAgIFdoYXQgcGVyY2VudCBvZiBjbGllbnRzIHdlcmUgNjAgYW5kIG9sZGVyPw0KDQogICAgLSAgICIuLi5zZXJ2ZWQgW2NsaWVudHNdLi4ub3ZlciBhZ2UgNjAgKDkyJSkuIg0KDQogICAgICAgIC0gICBBR1JFRTsgU0hPVUxEIE1FTlRJT04gSU4gRE9DVU1FTlQgVEhBVCBZT1UgTUVBTiBbNjAgQU5EIE9WRVJdey51bmRlcmxpbmV9XC0tTk9UIEpVU1QgVEhPU0UgT1ZFUiBUSEUgQUdFIE9GIDYwLg0KDQpgYGB7cn0NClNpeHR5QW5kT2xkZXIgPC0gQVVfU0FIX0RFTEwlPiUNCiAgc2VsZWN0KEFnZSklPiUNCiAgZmlsdGVyKEFnZSA+PSA2MCkNCnByaW50KFNpeHR5QW5kT2xkZXIpDQooNDM4MC80NzQxKSoxMDANCg0KI1RPVEFMIEFNT1VOVCBPRiBDTElFTlRTIEFHRUQgNjAgQU5EIE9MREVSOiA0LDM4MA0KI1BFUkNFTlQgT0YgQ0xJRU5UUyBBR0VEIDYwIEFORCBPTERFUjogOTIuNCUNCmBgYA0KDQotICAgV2hhdCBwZXJjZW50IG9mIGNsaWVudHMgd2VyZSBiZWxvdyA2MD8NCg0KYGBge3J9DQpCZWxvd1NpeHR5IDwtIEFVX1NBSF9ERUxMJT4lDQogIHNlbGVjdChBZ2UpJT4lDQogIGZpbHRlcihBZ2UgPDYwKQ0KcHJpbnQoQmVsb3dTaXh0eSkNCigzNjAvNDc0MSkqMTAwDQoNCiNUT1RBTCBBTU9VTlQgT0YgQ0xJRU5UUyBZT1VOR0VSIFRIQU4gNjA6IDM2MA0KI1BFUkNFTlQgT0YgQ0xJRU5UUyBVTkRFUiA2MCBZRUFSUyBPRiBBR0U6IDcuNTklDQoNCiMjSU1QT1JUQU5UIyMgSU5ESVZJRFVBTCBXSVRIIENTVEFSIDI1MTUxNSBIQVMgQUdFIExJU1RFRCBBUyAwIQ0KTmV3Ym9ybmVFbGRlciA8LSBBVV9TQUhfREVMTCAlPiUNCiAgc2VsZWN0KENTVEFSLCBBZ2UpJT4lDQogIGZpbHRlcihBZ2UgPT0gMCkNCnByaW50KE5ld2Jvcm5lRWxkZXIpDQpgYGANCg0KKipXQVJEKioNCg0KLSAgIFdoYXQgcGVyY2VudGFnZSBvZiBjbGllbnRzIHdlcmUgc2VydmVkIGJ5IGdpdmVuIHdhcmQ/DQoNCiAgICAtICAgIkFsbW9zdCA1MCUgb2YgY2xpZW50cyBsaXZlIGluIFdhcmQgNyBhbmQgV2FyZCA1LiINCg0KICAgICAgICAtICAgQUdSRUU7IDQ1LjklDQoNCmBgYHtyfQ0KV2FyZDEgPC0gQVVfU0FIX0RFTEwlPiUNCiAgc2VsZWN0KFdhcmQpJT4lDQogIGZpbHRlcihXYXJkID09IDEpDQpwcmludChXYXJkMSkNCigyMTIvNDc0MSkqMTAwDQoNCiNUT1RBTCBBTU9VTlQgT0YgQ0xJRU5UUyBSRVNJRElORyBJTiBXQVJEIDE6IDIxMg0KI1BFUkNFTlQgT0YgQ0xJRU5UUyBSRVNJRElORyBJTiBXQVJEIDE6IDQuNDclDQoNCldhcmQyIDwtIEFVX1NBSF9ERUxMICU+JQ0KICBzZWxlY3QoV2FyZCklPiUNCiAgZmlsdGVyKFdhcmQgPT0gMikNCnByaW50KFdhcmQyKQ0KKDgwLzQ3NDEpKjEwMA0KDQojVE9UQUwgQU1PVU5UIE9GIENMSUVOVFMgUkVTSURJTkcgSU4gV0FSRCAyOiA4MA0KI1BFUkNFTlQgT0YgQ0xJRU5UUyBSRVNJRElORyBJTiBXQVJEIDI6IDEuNjklDQoNCldhcmQzIDwtIEFVX1NBSF9ERUxMICU+JQ0KICBzZWxlY3QoV2FyZCklPiUNCiAgZmlsdGVyKFdhcmQgPT0gMykNCnByaW50KFdhcmQzKQ0KKDgzLzQ3NDEpKjEwMA0KDQojVE9UQUwgQU1PVU5UIE9GIENMSUVOVFMgUkVTSURJTkcgSU4gV0FSRCAzOiA4MyANCiNQRVJDRU5UIE9GIENMSUVOVFMgUkVTSURJTkcgSU4gV0FSRCAzOiAxLjc1JQ0KDQpXYXJkNCA8LSBBVV9TQUhfREVMTCAlPiUNCiAgc2VsZWN0KFdhcmQpJT4lDQogIGZpbHRlcihXYXJkID09IDQpDQpwcmludChXYXJkNCkNCig4NDQvNDc0MSkqMTAwDQoNCiNUT1RBTCBBTU9VTlQgT0YgQ0xJRU5UUyBSRVNJRElORyBJTiBXQVJEIDQ6IDg0NA0KI1BFUkNFTlQgT0YgQ0xJRU5UUyBSRVNJRElORyBJTiBXQVJEIDQ6IDE3LjglDQoNCldhcmQ1IDwtIEFVX1NBSF9ERUxMICU+JQ0KICBzZWxlY3QoV2FyZCklPiUNCiAgZmlsdGVyKFdhcmQgPT0gNSkNCnByaW50KFdhcmQ1KQ0KKDk4MS80NzQxKSoxMDANCg0KI1RPVEFMIEFNT1VOVCBPRiBDTElFTlRTIFJFU0lESU5HIElOIFdBUkQgNTogOTgxDQojUEVSQ0VOVCBPRiBDTElFTlRTIFJFU0lESU5HIElOIFdBUkQgNTogMjAuNyUNCg0KV2FyZDYgPC0gQVVfU0FIX0RFTEwgJT4lDQogIHNlbGVjdChXYXJkKSU+JQ0KICBmaWx0ZXIoV2FyZCA9PSA2KQ0KcHJpbnQoV2FyZDYpDQooNDUyLzQ3NDEpKjEwMA0KDQojVE9UQUwgQU1PVU5UIE9GIENMSUVOVFMgUkVTSURJTkcgSU4gV0FSRCA2OiA0NTINCiNQRVJDRU5UIE9GIENMSUVOVFMgUkVTSURJTkcgSU4gV0FSRCA2OiA5LjUzJQ0KDQpXYXJkNyA8LSBBVV9TQUhfREVMTCAlPiUNCiAgc2VsZWN0KFdhcmQpJT4lDQogIGZpbHRlcihXYXJkID09IDcpDQpwcmludChXYXJkNykNCigxMTk3LzQ3NDEpKjEwMA0KDQojVE9UQUwgQU1PVU5UIE9GIENMSUVOVFMgUkVTSURJTkcgSU4gV0FSRCA3OiAxLDE5Nw0KI1BFUkNFTlQgT0YgQ0xJRU5UUyBSRVNJRElORyBJTiBXQVJEIDc6IDI1LjIlDQoNCldhcmQ4IDwtIEFVX1NBSF9ERUxMICU+JQ0KICBzZWxlY3QoV2FyZCklPiUNCiAgZmlsdGVyKFdhcmQgPT0gOCkNCnByaW50KFdhcmQ4KQ0KKDg5MC80NzQxKSoxMDANCg0KI1RPVEFMIEFNT1VOVCBPRiBDTElFTlRTIFJFU0lESU5HIElOIFdBUkQgODogODkwIA0KI1BFUkNFTlQgT0YgQ0xJRU5UUyBSRVNJRElORyBJTiBXQVJEIDg6IDE4LjglDQoNCiMjSU1QT1JUQU5UIyMgSU5ESVZJRFVBTCBXSVRIIENTVEFSIDI0Nzc0NSBIQVZFIFdBUkQgTElTVEVEIEFTIDAhDQpXYXJkMCA8LSBBVV9TQUhfREVMTCAlPiUNCiAgc2VsZWN0KENTVEFSLCBXYXJkKSU+JQ0KICBmaWx0ZXIoV2FyZCA9PSAwKQ0KcHJpbnQoV2FyZDApDQpgYGANCg0KKipGaXNjYWwgWWVhcnMqKg0KDQotICAgT2YgdGhlIGZpc2NhbCB5ZWFycywgd2hpY2ggeWVhciBoYWQgdGhlIGhpZ2hlc3QgY29udHJhY3RvciB2aXNpdHMNCg0KICAgIC0gICAyMDE2OiAxIGNvbnRyYWN0b3IgdmlzaXQ7IDAuMDIxJQ0KDQogICAgICAgIC0gICAoMS80NzQxKVwqMTAwDQoNCiAgICAtICAgMjAxNzogMzAyIGNvbnRyYWN0b3IgdmlzaXRzOyA2LjM3JQ0KDQogICAgICAgIC0gICAoMzAyLzQ3NDEpXCoxMDANCg0KICAgIC0gICAyMDE4OiAxLDAwNCBjb250cmFjdG9yIHZpc2l0czsgMjEuMiUNCg0KICAgICAgICAtICAgKDEwMDQvNDc0MSlcKjEwMA0KDQogICAgLSAgIDIwMTk6IDEsMTc0IGNvbnRyYWN0b3IgdmlzaXRzOyAyNC43JQ0KDQogICAgICAgIC0gICAoMTE3My80NzQxKVwqMTAwDQoNCiAgICAtICAgMjAyMDogNjI0IGNvbnRyYWN0b3IgdmlzaXRzOyAxMy4yJQ0KDQogICAgICAgIC0gICAoNjI0LzQ3NDEpXCoxMDANCg0KICAgIC0gICAyMDIxOiA5NjEgY29udHJhY3RvciB2aXNpdHM7IDIwLjMlDQoNCiAgICAgICAgLSAgICg5NjEvNDc0MSlcKjEwMA0KDQogICAgLSAgIDIwMjI6IDU5NCBjb250cmFjdG9yIHZpc2l0czsgMTIuNSUNCg0KICAgICAgICAtICAgKDU5NC80NzQxKVwqMTAwDQoNCiAgICAtICAgTkE6IDgxOyAxLjcxJQ0KDQogICAgICAgIC0gICAoODEvNDc0MSlcKjEwMA0KDQpgYGB7cn0NCk5BRGF0ZU9mVmlzaXQgPC0gRGF0ZU9mVmlzaXQgJT4lDQogIGZpbHRlcihpcy5uYShEYXRlT2ZWaXNpdCkpDQpwcmludChOQURhdGVPZlZpc2l0KQ0KYGBgDQoNCioqU2Vjb25kIEVwaXNvZGUqKg0KDQotICAgV2hhdCBwZXJjZW50IG9mIGNsaWVudHMgbmVlZGVkIGEgc2Vjb25kIGVwaXNvZGU/DQoNCmBgYHtyfQ0KU2Vjb25kRXBpc29kZSA8LSBBVV9TQUhfRGF0ZV9WaXNpdCAlPiUNCiAgc2VsZWN0KFNlY29uZEVwaXNvZGUpICU+JQ0KICBmaWx0ZXIoU2Vjb25kRXBpc29kZSA9PSAiWWVzIikNCnByaW50KFNlY29uZEVwaXNvZGUpDQooNTcyLzQ3NDEpKjEwMA0KDQojVE9UQUwgQU1PVU5UIE9GIENMSUVOVFMgV0hPIE5FRURFRCBBIFNFQ09ORCBFUElTT0RFOiA1NzINCiNQRVJDRU5UIE9GIENMSUVOVFMgV0hPIE5FRURFRCBBIFNFQ09ORCBFUElTT0RFOiAxMi4xJQ0KYGBgDQo=