The IRS has released data on 990 tax returns from electronic nonprofit and foundation filers. The data is reported as XML documents for each return.
In order to make the data accessible, we are working to
Data used for statistical analysis often comes in flat, two-dimensional spreadsheets. Rows represent observations, and columns represent variables.
Out in the real world, however, data is often generated through relational databases that can capture the one-to-many relationships inherent in systems.
As an example, if you have shopped on Amazon your customer information has been stored in their database, and information about each transaction has been captured. They use two different tables for this information - one for customers and one for transactions. If they tried to store all of this information in a single spreadsheet much of the static information (your name and address) would have to be repeated. Since they have billions of transactions, each with hundreds of fields, that spreadsheet would quickly become large and slow (computationally expensive, as they say in the industry).
Relational databases - storing information that has a one-to-many relationship in different tables - simplifies life and makes for robust systems. If the information needs to be combined, for example for market analysis to look at the relationship between products and zip codes, it can be done through a query.
customer.info
## CUSTOMER.ID FIRST.NAME LAST.NAME ADDRESS ZIP.CODE
## 1 178 Alvaro Jaurez 123 Park Ave 57701
## 2 934 Janette Johnson 456 Candy Ln 57701
## 3 269 Latisha Shane 1600 Penn Ave 20500
purchases
## CUSTOMER.ID PRODUCT PRICE
## 1 178 video 5.38
## 2 178 shovel 12.00
## 3 269 book 3.99
## 4 269 purse 8.00
## 5 934 mirror 7.64
merge( customer.info, purchases )
## CUSTOMER.ID FIRST.NAME LAST.NAME ADDRESS ZIP.CODE PRODUCT PRICE
## 1 178 Alvaro Jaurez 123 Park Ave 57701 video 5.38
## 2 178 Alvaro Jaurez 123 Park Ave 57701 shovel 12.00
## 3 269 Latisha Shane 1600 Penn Ave 20500 book 3.99
## 4 269 Latisha Shane 1600 Penn Ave 20500 purse 8.00
## 5 934 Janette Johnson 456 Candy Ln 57701 mirror 7.64
The world of web programming requires a different way of representing data. If we want to build smart websites, browsers and web applications need to be able to make sense of data. As a result, eXtensible Markup Langauge was invented in order to (1) provide context for informaton so it can be made more useful, and (2) provide a flat, linear representation of relational databases.
XML works by adding tags to information so that computers can make sense of it:
<ANIMAL>DOG</ANIMAL>
<PLANT>FLOWER</PLANT>
This scheme also allows for the creation of sets of things.
<ANIMALS>
<FISH>Tuna</FISH>
<MAMMAL>Dog</MAMMAL>
<SNAKE>Viper</SNAKE>
</ANIMALS>
We can now describe the world in a couple of different ways - we can ask for the set of all animals, or we can ask for specific types of animals.
Similarly, here is what part of the relational database above would look like.
<MEMBERS>
<CUSTOMER>
<ID>178</ID>
<FIRST.NAME>Alvaro</FIRST.NAME>
<LAST.NAME>Juarez</LAST.NAME>
<ADDRESS>123 Park Ave</ADDRESS>
<ZIP>57701</ZIP>
</CUSTOMER>
<CUSTOMER>
<ID>934</ID>
<FIRST.NAME>Janette</FIRST.NAME>
<LAST.NAME>Johnson</LAST.NAME>
<ADDRESS>456 Candy Ln</ADDRESS>
<ZIP>57701</ZIP>
</CUSTOMER>
</MEMBERS>
<PURCHASES>
<TRANSCTION>
<ID>178</ID>
<PRODUCT>video</PRODUCT>
<PRICE>5.38</PRICE>
</TRANSACTION>
<TRANSCTION>
<ID>178</ID>
<PRODUCT>shovel</PRODUCT>
<PRICE>12.00</PRICE>
</TRANSACTION>
</PURCHAES>
Accessing data in the XML format requires a basic understanding of two principles - nodes and paths.
Let’s return to the example above:
<MEMBERS>
<CUSTOMER>
<ID>178</ID>
<FIRST.NAME>Alvaro</FIRST.NAME>
<LAST.NAME>Juarez</LAST.NAME>
<ADDRESS>123 Park Ave</ADDRESS>
<ZIP>57701</ZIP>
</CUSTOMER>
<CUSTOMER>
<ID>934</ID>
<FIRST.NAME>Janette</FIRST.NAME>
<LAST.NAME>Johnson</LAST.NAME>
<ADDRESS>456 Candy Ln</ADDRESS>
<ZIP>57701</ZIP>
</CUSTOMER>
</MEMBERS>
Here each tag represents a separate node, so this XML document contains three layers of nodes - members, customers, and the set of nodes related to customer information.
You can start to see that the nested nature of data creates a tree structure. Since it is hierarchical, each parent node contains children nodes. MEMBERS contains CUSTOMER nodes. CUSTOMER contains ID, NAME, and ADDRESS nodes.
To manipulate the data, we can grab a single node at once, and work with all of its sub-elements.
We will use the xml2 package and the xml_parent() and xml_children() functions. The function xml_name() prints the name of the node.
# install.packages( "xlm2" )
# install.packages( "dplyr" )
library( xml2 )
## Warning: package 'xml2' was built under R version 3.3.1
library( dplyr )
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
dat <- read_xml( "<MEMBERS>
<CUSTOMER>
<ID>178</ID>
<FIRST.NAME>Alvaro</FIRST.NAME>
<LAST.NAME>Juarez</LAST.NAME>
<ADDRESS>123 Park Ave</ADDRESS>
<ZIP>57701</ZIP>
</CUSTOMER>
<CUSTOMER>
<ID>934</ID>
<FIRST.NAME>Janette</FIRST.NAME>
<LAST.NAME>Johnson</LAST.NAME>
<ADDRESS>456 Candy Ln</ADDRESS>
<ZIP>57701</ZIP>
</CUSTOMER>
</MEMBERS>" )
xml_name( dat )
## [1] "MEMBERS"
xml_name( xml_parent( dat ) ) # no parents - it is a root node
## [1] ""
xml_name( xml_children( dat ) )
## [1] "CUSTOMER" "CUSTOMER"
# print the full path directory:
dat %>% xml_find_all( '//*') %>% xml_path()
## [1] "/MEMBERS" "/MEMBERS/CUSTOMER[1]"
## [3] "/MEMBERS/CUSTOMER[1]/ID" "/MEMBERS/CUSTOMER[1]/FIRST.NAME"
## [5] "/MEMBERS/CUSTOMER[1]/LAST.NAME" "/MEMBERS/CUSTOMER[1]/ADDRESS"
## [7] "/MEMBERS/CUSTOMER[1]/ZIP" "/MEMBERS/CUSTOMER[2]"
## [9] "/MEMBERS/CUSTOMER[2]/ID" "/MEMBERS/CUSTOMER[2]/FIRST.NAME"
## [11] "/MEMBERS/CUSTOMER[2]/LAST.NAME" "/MEMBERS/CUSTOMER[2]/ADDRESS"
## [13] "/MEMBERS/CUSTOMER[2]/ZIP"
We can break the document apart into individual nodes, and treat them separately using xml_find_first() and xml_find_all().
customer1 <- xml_find_first( dat, "//CUSTOMER" )
xml_name( customer1 )
## [1] "CUSTOMER"
xml_name( xml_parent( customer1 ) )
## [1] "MEMBERS"
xml_name( xml_children( customer1 ) )
## [1] "ID" "FIRST.NAME" "LAST.NAME" "ADDRESS" "ZIP"
And finally, we can access data within a “leaf” node using the xml_text(), xml_double(), and xml_integer() commands.
xml_text( xml_find_first( dat, "//ADDRESS" ) )
## [1] "123 Park Ave"
xml_text( xml_find_all( dat, "//ADDRESS" ) )
## [1] "123 Park Ave" "456 Candy Ln"
Putting it together, we can start to build datasets:
first.name <- xml_text( xml_find_all( dat, "//FIRST.NAME" ) )
last.name <- xml_text( xml_find_all( dat, "//LAST.NAME" ) )
address <- xml_text( xml_find_all( dat, "//ADDRESS" ) )
zip <- xml_text( xml_find_all( dat, "//ZIP" ) )
data.frame( first.name, last.name, address, zip )
## first.name last.name address zip
## 1 Alvaro Juarez 123 Park Ave 57701
## 2 Janette Johnson 456 Candy Ln 57701
The header information in an XML document - the root node - may contain information on “name spaces”.
# contains no name spaces
<Return returnVersion="2014v5.0">
# contains name spaces
<Return xmlns="http://www.irs.gov/efile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.irs.gov/efile" returnVersion="2014v5.0">
This topic is beyond this short intro to XML, other than to note you do not need them to access the data and they will give you a headache, so remove them using the xml_ns_strip() function.
# LOAD DATA FROM A PC FILING FULL 990
dat <- read_xml( x="https://s3.amazonaws.com/irs-form-990/201541349349307794_public.xml", options=NULL )
# STRIP THE NAMESPACE
xml_ns_strip( dat )
In the XML structure there is a specific convention for referencing nodes called xpath. You can create sophisticated statements to access specific elements of your data, but the basic principles of a search statement are:
Node that arguments to the search functions xml_find_all() and xml_find_first() are a nodeset, and an xpath.
xml_text( xml_find_first( dat, "//ADDRESS" ))
## [1] "123 Park Ave"
# if the ADDRESS field name is used in other parts of the data
# you will need to be more specific
xml_text( xml_find_first( dat, "//CUSTOMER/ADDRESS" ))
## [1] "123 Park Ave"
xml_text( xml_find_first( dat, "//MEMBERS/CUSTOMER/ADDRESS" ))
## [1] "123 Park Ave"
# drilling down into a node
xml_text( xml_find_all( dat, "//ADDRESS" )) # returns all customer addresses
## [1] "123 Park Ave" "456 Candy Ln"
customer1 <- xml_find_first( dat, "//CUSTOMER" ) # create node for first customer only
xml_text( xml_find_all( customer1, ".//ADDRESS" ))
## [1] "123 Park Ave"
# note the use of the period in the xpath!
xml_text( xml_find_all( customer1, ".//ADDRESS" )) # with period search is local to nodeset
## [1] "123 Park Ave"
xml_text( xml_find_all( customer1, "//ADDRESS" )) # no period still searches full document
## [1] "123 Park Ave" "456 Candy Ln"
You can identify specific paths using the xml_path() function. This will give you a way to reference each non-unique node in the path individually.
xml_path( xml_find_all( dat, "//ADDRESS") )
## [1] "/MEMBERS/CUSTOMER[1]/ADDRESS" "/MEMBERS/CUSTOMER[2]/ADDRESS"
xml_text( xml_find_all( dat, "//MEMBERS/CUSTOMER[1]/ADDRESS" ))
## [1] "123 Park Ave"
xml_text( xml_find_all( dat, "//MEMBERS/CUSTOMER[2]/ADDRESS" ))
## [1] "456 Candy Ln"
Some nodes contain attributes that store meta-data associated with the node:
# contains no attributes
<ReturnData> ... </ReturnData>
<IRS990> ... </IRS990>
# contains attributes
<ReturnData documentCnt="6"> ... </ReturnData>
<IRS990 referenceDocumentId="RetDoc1044400001"> ... </IRS990>
We can access meta-data using the xml_attr() function.
# LOAD DATA FROM A PC FILING FULL 990
dat <- read_xml( x="https://s3.amazonaws.com/irs-form-990/201541349349307794_public.xml", options=NULL )
# STRIP THE NAMESPACE
xml_ns_strip( dat )
# GRAB THE ATTRIBUTES
return.data <- xml_find_first( dat, "//ReturnData" ) # grab return data node
xml_attrs( x=return.data ) # list attributes for node
## documentCnt
## "6"
xml_attr( x=return.data, attr="documentCnt" ) # return document count attribute
## [1] "6"
Now for applying these rules to the data at hand. If we look at the structure of a 990 return, it looks something like this:
990 RETURN
HEADER DATA
NAME, EIN, YEAR, etc.
RETURN DATA
REVENUES
EXPENSES
GOVERNANCE
BOARD MEMBERS
FUNCTIONAL REVENUE CATEGORIES
FUNCTIONAL EXPENSE CATEGORIES
SCHEDULES
A-Public Support
B-Contributors
D-Supplemental Financial Statements
M-Non-Cash Contributions
O-Supplemental Information
R-Related Organizations
END 990 RETURN
Note that the structure varies between the 990, 990-EZ, and 990-PF returns, and that schedules included will vary by organization and year.
If you would like to see an example of the full structure, run this code (not executed here because the output is long):
# dat <- read_xml( "https://s3.amazonaws.com/irs-form-990/201541349349307794_public.xml" )
# xml_ns_strip( dat )
# dat %>% xml_find_all( '//*') %>% xml_path()
Here is the example organization listed on on the IRS Amazon Web Server page:
https://aws.amazon.com/public-data-sets/irs-990/
# LOAD DATA FROM A PC FILING FULL 990
dat <- read_xml( x="https://s3.amazonaws.com/irs-form-990/201541349349307794_public.xml", options=NULL )
# STRIP THE NAMESPACE
xml_ns_strip( dat )
# EXAMINE THE DATA
# xml_structure( dat ) # this is overwhelming, we need to be able to drill down
xml_name( xml_root( dat ) ) # only one root node that contains all data
## [1] "Return"
xml_name( xml_children( dat ) ) # split into two sections, header and return data
## [1] "ReturnHeader" "ReturnData"
xml_name( xml_children( xml_find_first( dat, "//ReturnHeader" ) ) )
## [1] "ReturnTs" "TaxPeriodEndDt" "PreparerFirmGrp"
## [4] "ReturnTypeCd" "TaxPeriodBeginDt" "Filer"
## [7] "BusinessOfficerGrp" "PreparerPersonGrp" "TaxYr"
## [10] "BuildTS"
xml_name( xml_children( xml_find_first( dat, "//ReturnData/IRS990" ) ) )[ 1:10 ]
## [1] "PrincipalOfficerNm" "USAddress"
## [3] "GrossReceiptsAmt" "GroupReturnForAffiliatesInd"
## [5] "Organization501c3Ind" "WebsiteAddressTxt"
## [7] "TypeOfOrganizationCorpInd" "FormationYr"
## [9] "LegalDomicileStateCd" "ActivityOrMissionDesc"
xml_text( xml_children( xml_find_first( dat, "//ReturnData/IRS990" ) ) )[ 1:10 ]
## [1] "SCOTT LEWIS"
## [2] "\n 2508 HISTORIC DECATUR SUITE 120\n SAN DIEGO\n CA\n 92106\n "
## [3] "1753504"
## [4] "0"
## [5] "X"
## [6] "VOICEOFSANDIEGO.ORG"
## [7] "X"
## [8] "2004"
## [9] "CA"
## [10] "ON-LINE NEWSPAPER OPERATED EXCLUSIVELY TO EDUCATE AND INFORM RESIDENTS OF SAN DIEGO COUNTY THROUGH IN-DEPTH INVESTIGATIVE JOURNALISM ABOUT CIVIC AND REGIONAL ISSUES SO THAT RESIDENTS CAN BECOME ADVOCATES FOR GOOD GOVERNMENT AND SOCIAL PROGRESS."
You can see that any node that contains children (for example USAddress) will print the data separated by a carriage return (\n).
As an example of how you might parse the data to create a dataset:
header.data <- xml_find_first( dat, "//ReturnHeader" )
TaxYr <- xml_text( xml_find_all( dat, "//Return/ReturnHeader/TaxYr" ) )
ReturnType <- xml_text( xml_find_all( dat, "//Return/ReturnHeader/ReturnTypeCd" ) )
EIN <- xml_text( xml_find_all( dat, "//Return/ReturnHeader/Filer/EIN" ) )
BusinessName <- xml_text( xml_find_all( dat, "//Return/ReturnHeader/Filer/BusinessName/BusinessNameLine1Txt" ) )
Address <- xml_text( xml_find_all( dat, "//Return/ReturnHeader/Filer/USAddress/AddressLine1Txt" ) )
City <- xml_text( xml_find_all( dat, "//Return/ReturnHeader/Filer/USAddress/CityNm" ) )
State <- xml_text( xml_find_all( dat, "//Return/ReturnHeader/Filer/USAddress/StateAbbreviationCd" ) )
Zip <- xml_text( xml_find_all( dat, "//Return/ReturnHeader/Filer/USAddress/ZIPCd" ) )
TaxPrep <- xml_text( xml_find_all( dat, "//Return/ReturnHeader/BusinessOfficerGrp/DiscussWithPaidPreparerInd" ) )
header.df <- data.frame( TaxYr, ReturnType, EIN, BusinessName, Address, City, State, Zip, TaxPrep )
header.df
## TaxYr ReturnType EIN BusinessName
## 1 2014 990 201585919 VOICE OF SAN DIEGO
## Address City State Zip TaxPrep
## 1 2508 HISTORIC DECATUR SUITE 120 SAN DIEGO CA 92106 1
To build a full dataset, you will need to iterate over multiple 990 returns and combine these data. This would be approximately:
library( dplyr )
dat1 <- read_xml( url.01 )
# create header.df.01
dat2 <- read_xml( url.02 )
# create header.df.02
bind_rows( header.df.01, header.df.02 )
Some brilliant person or persons at the IRS have taken it upon themselves to change field names within their database system, so it is now not possible to easily scrape data across multiple years. Most change are minor:
BusinessNameLine1 changed to BusinessNameLine1Txt
FormType changed to FormTypeCd
Unfortunately even small changes will break your code since it requires an exact match. As a result, you need to write the xpath statement in such a way that it will match either version. The queries have a bunch of
library( xml2 )
# EXAMPLE 990 File
doc <- read_xml( "https://s3.amazonaws.com/irs-form-990/201541349349307794_public.xml" )
xml_ns_strip( dat )
# 2014 / 2015 990 VERSION
#
# "//Return/ReturnData/IRS990/GrossReceiptsAmt"
# 2013 / 2012 VERSION
#
# "//Return/ReturnData/IRS990/GrossReceipts"
# This works with 2014, 2015 data, fails with 2012, 2013 data
GROSSRECEIPTS <- xml_text( xml_find_all( doc, "//Return/ReturnData/IRS990/GrossReceiptsAmt" ) )
# INCLUSIVE XPATH VERSION WHEN TWO VARIABLE NAMES HAVE COMMON PREDICATE PATH
GROSSRECEIPTS <- xml_text( xml_find_all( doc, "/Return/ReturnData/IRS990/*[self::GrossReceipts or self::GrossReceiptsAmt]" ) )
# 990EZ CHANGES PATH STRUCTURE
#
# //Return/ReturnData/IRS990EZ/GrossReceiptsAmt
# NEW INCLUSIVE STATEMENT MUST uSE OR OPERATOR "|" AND FULL PATHS
gross.receipts.xpath <- "//Return/ReturnData/IRS990/GrossReceipts|//Return/ReturnData/IRS990/GrossReceiptsAmt|//Return/ReturnData/IRS990EZ/GrossReceiptsAmt"
GROSSRECEIPTS <- xml_text( xml_find_all( doc, gross.receipts.xpath ) )
Building a module to collect data from a portion of the 990s requires the user to specify all of the possible iterations of the xpath + field names for a given variable. If the variable is present on both the 990 and 990EZ that consists of two 990 version (pre and post 2014), and two 990EZ versions (pre and post 2014). This does not include 990-PF private foundations.
Here is an example of variation in field names between 2012 and 2014.
# 2012 990 VERSION
[47] "/Return/ReturnData/IRS990/GrossReceipts"
[48] "/Return/ReturnData/IRS990/GroupReturnForAffiliates"
[49] "/Return/ReturnData/IRS990/Organization501c3"
[50] "/Return/ReturnData/IRS990/WebSite"
[51] "/Return/ReturnData/IRS990/TypeOfOrganizationCorporation"
[52] "/Return/ReturnData/IRS990/YearFormation"
[53] "/Return/ReturnData/IRS990/StateLegalDomicile"
[54] "/Return/ReturnData/IRS990/ActivityOrMissionDescription"
[55] "/Return/ReturnData/IRS990/NbrVotingMembersGoverningBody"
[56] "/Return/ReturnData/IRS990/NbrIndependentVotingMembers"
[57] "/Return/ReturnData/IRS990/TotalNbrEmployees"
[58] "/Return/ReturnData/IRS990/TotalNbrVolunteers"
[59] "/Return/ReturnData/IRS990/TotalGrossUBI"
[60] "/Return/ReturnData/IRS990/NetUnrelatedBusinessTxblIncome"
# 2014 990 VERSION
[47] "/Return/ReturnData/IRS990/GrossReceiptsAmt"
[48] "/Return/ReturnData/IRS990/GroupReturnForAffiliatesInd"
[49] "/Return/ReturnData/IRS990/Organization501c3Ind"
[50] "/Return/ReturnData/IRS990/WebsiteAddressTxt"
[51] "/Return/ReturnData/IRS990/TypeOfOrganizationCorpInd"
[52] "/Return/ReturnData/IRS990/FormationYr"
[53] "/Return/ReturnData/IRS990/LegalDomicileStateCd"
[54] "/Return/ReturnData/IRS990/ActivityOrMissionDesc"
[55] "/Return/ReturnData/IRS990/VotingMembersGoverningBodyCnt"
[56] "/Return/ReturnData/IRS990/VotingMembersIndependentCnt"
[57] "/Return/ReturnData/IRS990/TotalEmployeeCnt"
[58] "/Return/ReturnData/IRS990/TotalVolunteersCnt"
[59] "/Return/ReturnData/IRS990/TotalGrossUBIAmt"
[60] "/Return/ReturnData/IRS990/NetUnrelatedBusTxblIncmAmt"
To create a list of all variables and their respective xpaths available on a specific 990 return, you can use the following code:
dat <- read_xml( "https://s3.amazonaws.com/irs-form-990/201541349349307794_public.xml" )
xml_ns_strip( dat )
# NAMES OF FIELDS
dat %>% xml_find_all( '//*') %>% xml_name()
## [1] "Return" "ReturnHeader"
## [3] "ReturnTs" "TaxPeriodEndDt"
## [5] "PreparerFirmGrp" "PreparerFirmEIN"
## [7] "PreparerFirmName" "BusinessNameLine1Txt"
## [9] "PreparerUSAddress" "AddressLine1Txt"
## [11] "CityNm" "StateAbbreviationCd"
## [13] "ZIPCd" "ReturnTypeCd"
## [15] "TaxPeriodBeginDt" "Filer"
## [17] "EIN" "BusinessName"
## [19] "BusinessNameLine1Txt" "BusinessNameControlTxt"
## [21] "PhoneNum" "USAddress"
## [23] "AddressLine1Txt" "CityNm"
## [25] "StateAbbreviationCd" "ZIPCd"
## [27] "BusinessOfficerGrp" "PersonNm"
## [29] "PersonTitleTxt" "PhoneNum"
## [31] "SignatureDt" "DiscussWithPaidPreparerInd"
## [33] "PreparerPersonGrp" "PreparerPersonNm"
## [35] "PTIN" "PhoneNum"
## [37] "TaxYr" "BuildTS"
## [39] "ReturnData" "IRS990"
## [41] "PrincipalOfficerNm" "USAddress"
## [43] "AddressLine1Txt" "CityNm"
## [45] "StateAbbreviationCd" "ZIPCd"
## [47] "GrossReceiptsAmt" "GroupReturnForAffiliatesInd"
## [49] "Organization501c3Ind" "WebsiteAddressTxt"
## [51] "TypeOfOrganizationCorpInd" "FormationYr"
## [53] "LegalDomicileStateCd" "ActivityOrMissionDesc"
## [55] "VotingMembersGoverningBodyCnt" "VotingMembersIndependentCnt"
## [57] "TotalEmployeeCnt" "TotalVolunteersCnt"
## [59] "TotalGrossUBIAmt" "NetUnrelatedBusTxblIncmAmt"
## [61] "PYContributionsGrantsAmt" "CYContributionsGrantsAmt"
## [63] "PYProgramServiceRevenueAmt" "CYProgramServiceRevenueAmt"
## [65] "PYInvestmentIncomeAmt" "CYInvestmentIncomeAmt"
## [67] "PYOtherRevenueAmt" "CYOtherRevenueAmt"
## [69] "PYTotalRevenueAmt" "CYTotalRevenueAmt"
## [71] "PYGrantsAndSimilarPaidAmt" "CYGrantsAndSimilarPaidAmt"
## [73] "PYBenefitsPaidToMembersAmt" "CYBenefitsPaidToMembersAmt"
## [75] "PYSalariesCompEmpBnftPaidAmt" "CYSalariesCompEmpBnftPaidAmt"
## [77] "PYTotalProfFndrsngExpnsAmt" "CYTotalProfFndrsngExpnsAmt"
## [79] "CYTotalFundraisingExpenseAmt" "PYOtherExpensesAmt"
## [81] "CYOtherExpensesAmt" "PYTotalExpensesAmt"
## [83] "CYTotalExpensesAmt" "PYRevenuesLessExpensesAmt"
## [85] "CYRevenuesLessExpensesAmt" "TotalAssetsBOYAmt"
## [87] "TotalAssetsEOYAmt" "TotalLiabilitiesBOYAmt"
## [89] "TotalLiabilitiesEOYAmt" "NetAssetsOrFundBalancesBOYAmt"
## [91] "NetAssetsOrFundBalancesEOYAmt" "MissionDesc"
## [93] "SignificantNewProgramSrvcInd" "SignificantChangeInd"
## [95] "ExpenseAmt" "RevenueAmt"
## [97] "Desc" "TotalProgramServiceExpensesAmt"
## [99] "DescribedInSection501c3Ind" "ScheduleBRequiredInd"
## [101] "PoliticalCampaignActyInd" "LobbyingActivitiesInd"
## [103] "SubjectToProxyTaxInd" "DonorAdvisedFundInd"
## [105] "ConservationEasementsInd" "CollectionsOfArtInd"
## [107] "CreditCounselingInd" "TempOrPermanentEndowmentsInd"
## [109] "ReportLandBuildingEquipmentInd" "ReportInvestmentsOtherSecInd"
## [111] "ReportProgramRelatedInvstInd" "ReportOtherAssetsInd"
## [113] "ReportOtherLiabilitiesInd" "IncludeFIN48FootnoteInd"
## [115] "IndependentAuditFinclStmtInd" "ConsolidatedAuditFinclStmtInd"
## [117] "SchoolOperatingInd" "ForeignOfficeInd"
## [119] "ForeignActivitiesInd" "MoreThan5000KToOrgInd"
## [121] "MoreThan5000KToIndividualsInd" "ProfessionalFundraisingInd"
## [123] "FundraisingActivitiesInd" "GamingActivitiesInd"
## [125] "OperateHospitalInd" "GrantsToOrganizationsInd"
## [127] "GrantsToIndividualsInd" "ScheduleJRequiredInd"
## [129] "TaxExemptBondsInd" "EngagedInExcessBenefitTransInd"
## [131] "PYExcessBenefitTransInd" "LoanOutstandingInd"
## [133] "GrantToRelatedPersonInd" "BusinessRlnWithOrgMemInd"
## [135] "BusinessRlnWithFamMemInd" "BusinessRlnWithOfficerEntInd"
## [137] "DeductibleNonCashContriInd" "DeductibleArtContributionInd"
## [139] "TerminateOperationsInd" "PartialLiquidationInd"
## [141] "DisregardedEntityInd" "RelatedEntityInd"
## [143] "RelatedOrganizationCtrlEntInd" "TrnsfrExmptNonChrtblRltdOrgInd"
## [145] "ActivitiesConductedPrtshpInd" "ScheduleORequiredInd"
## [147] "IRPDocumentCnt" "IRPDocumentW2GCnt"
## [149] "BackupWthldComplianceInd" "EmployeeCnt"
## [151] "EmploymentTaxReturnsFiledInd" "UnrelatedBusIncmOverLimitInd"
## [153] "Form990TFiledInd" "ForeignFinancialAccountInd"
## [155] "ProhibitedTaxShelterTransInd" "TaxablePartyNotificationInd"
## [157] "NondeductibleContributionsInd" "QuidProQuoContributionsInd"
## [159] "QuidProQuoContriDisclInd" "Form8282PropertyDisposedOfInd"
## [161] "RcvFndsToPayPrsnlBnftCntrctInd" "PayPremiumsPrsnlBnftCntrctInd"
## [163] "IndoorTanningServicesInd" "InfoInScheduleOPartVIInd"
## [165] "GoverningBodyVotingMembersCnt" "IndependentVotingMemberCnt"
## [167] "FamilyOrBusinessRlnInd" "DelegationOfMgmtDutiesInd"
## [169] "ChangeToOrgDocumentsInd" "MaterialDiversionOrMisuseInd"
## [171] "MembersOrStockholdersInd" "ElectionOfBoardMembersInd"
## [173] "DecisionsSubjectToApprovaInd" "MinutesOfGoverningBodyInd"
## [175] "MinutesOfCommitteesInd" "OfficerMailingAddressInd"
## [177] "LocalChaptersInd" "Form990ProvidedToGvrnBodyInd"
## [179] "ConflictOfInterestPolicyInd" "AnnualDisclosureCoveredPrsnInd"
## [181] "RegularMonitoringEnfrcInd" "WhistleblowerPolicyInd"
## [183] "DocumentRetentionPolicyInd" "CompensationProcessCEOInd"
## [185] "CompensationProcessOtherInd" "InvestmentInJointVentureInd"
## [187] "StatesWhereCopyOfReturnIsFldCd" "OtherWebsiteInd"
## [189] "UponRequestInd" "BooksInCareOfDetail"
## [191] "BusinessName" "BusinessNameLine1Txt"
## [193] "PhoneNum" "USAddress"
## [195] "AddressLine1Txt" "CityNm"
## [197] "StateAbbreviationCd" "ZIPCd"
## [199] "Form990PartVIISectionAGrp" "PersonNm"
## [201] "TitleTxt" "AverageHoursPerWeekRt"
## [203] "IndividualTrusteeOrDirectorInd" "ReportableCompFromOrgAmt"
## [205] "ReportableCompFromRltdOrgAmt" "OtherCompensationAmt"
## [207] "Form990PartVIISectionAGrp" "PersonNm"
## [209] "TitleTxt" "AverageHoursPerWeekRt"
## [211] "IndividualTrusteeOrDirectorInd" "OfficerInd"
## [213] "ReportableCompFromOrgAmt" "ReportableCompFromRltdOrgAmt"
## [215] "OtherCompensationAmt" "Form990PartVIISectionAGrp"
## [217] "PersonNm" "TitleTxt"
## [219] "AverageHoursPerWeekRt" "IndividualTrusteeOrDirectorInd"
## [221] "ReportableCompFromOrgAmt" "ReportableCompFromRltdOrgAmt"
## [223] "OtherCompensationAmt" "Form990PartVIISectionAGrp"
## [225] "PersonNm" "TitleTxt"
## [227] "AverageHoursPerWeekRt" "IndividualTrusteeOrDirectorInd"
## [229] "OfficerInd" "ReportableCompFromOrgAmt"
## [231] "ReportableCompFromRltdOrgAmt" "OtherCompensationAmt"
## [233] "Form990PartVIISectionAGrp" "PersonNm"
## [235] "TitleTxt" "AverageHoursPerWeekRt"
## [237] "IndividualTrusteeOrDirectorInd" "ReportableCompFromOrgAmt"
## [239] "ReportableCompFromRltdOrgAmt" "OtherCompensationAmt"
## [241] "Form990PartVIISectionAGrp" "PersonNm"
## [243] "TitleTxt" "AverageHoursPerWeekRt"
## [245] "OfficerInd" "ReportableCompFromOrgAmt"
## [247] "ReportableCompFromRltdOrgAmt" "OtherCompensationAmt"
## [249] "Form990PartVIISectionAGrp" "PersonNm"
## [251] "TitleTxt" "AverageHoursPerWeekRt"
## [253] "OfficerInd" "ReportableCompFromOrgAmt"
## [255] "ReportableCompFromRltdOrgAmt" "OtherCompensationAmt"
## [257] "TotalReportableCompFromOrgAmt" "TotReportableCompRltdOrgAmt"
## [259] "TotalOtherCompensationAmt" "IndivRcvdGreaterThan100KCnt"
## [261] "FormerOfcrEmployeesListedInd" "TotalCompGreaterThan150KInd"
## [263] "CompensationFromOtherSrcsInd" "CntrctRcvdGreaterThan100KCnt"
## [265] "MembershipDuesAmt" "AllOtherContributionsAmt"
## [267] "NoncashContributionsAmt" "TotalContributionsAmt"
## [269] "ProgramServiceRevenueGrp" "Desc"
## [271] "BusinessCd" "TotalRevenueColumnAmt"
## [273] "RelatedOrExemptFuncIncomeAmt" "ProgramServiceRevenueGrp"
## [275] "Desc" "BusinessCd"
## [277] "TotalRevenueColumnAmt" "UnrelatedBusinessRevenueAmt"
## [279] "TotalProgramServiceRevenueAmt" "GrossAmountSalesAssetsGrp"
## [281] "SecuritiesAmt" "LessCostOthBasisSalesExpnssGrp"
## [283] "SecuritiesAmt" "OtherAmt"
## [285] "GainOrLossGrp" "SecuritiesAmt"
## [287] "OtherAmt" "NetGainOrLossInvestmentsGrp"
## [289] "TotalRevenueColumnAmt" "RelatedOrExemptFuncIncomeAmt"
## [291] "TotalRevenueGrp" "TotalRevenueColumnAmt"
## [293] "RelatedOrExemptFuncIncomeAmt" "UnrelatedBusinessRevenueAmt"
## [295] "ExclusionAmt" "CompCurrentOfcrDirectorsGrp"
## [297] "TotalAmt" "ProgramServicesAmt"
## [299] "OtherSalariesAndWagesGrp" "TotalAmt"
## [301] "ProgramServicesAmt" "ManagementAndGeneralAmt"
## [303] "FundraisingAmt" "PensionPlanContributionsGrp"
## [305] "TotalAmt" "ProgramServicesAmt"
## [307] "ManagementAndGeneralAmt" "FundraisingAmt"
## [309] "OtherEmployeeBenefitsGrp" "TotalAmt"
## [311] "ProgramServicesAmt" "ManagementAndGeneralAmt"
## [313] "FundraisingAmt" "PayrollTaxesGrp"
## [315] "TotalAmt" "ProgramServicesAmt"
## [317] "ManagementAndGeneralAmt" "FundraisingAmt"
## [319] "FeesForServicesLegalGrp" "TotalAmt"
## [321] "ProgramServicesAmt" "FeesForServicesAccountingGrp"
## [323] "TotalAmt" "ProgramServicesAmt"
## [325] "FeesForServicesOtherGrp" "TotalAmt"
## [327] "ProgramServicesAmt" "AdvertisingGrp"
## [329] "TotalAmt" "ProgramServicesAmt"
## [331] "ManagementAndGeneralAmt" "FundraisingAmt"
## [333] "OfficeExpensesGrp" "TotalAmt"
## [335] "ProgramServicesAmt" "InformationTechnologyGrp"
## [337] "TotalAmt" "ProgramServicesAmt"
## [339] "OccupancyGrp" "TotalAmt"
## [341] "ProgramServicesAmt" "ManagementAndGeneralAmt"
## [343] "FundraisingAmt" "TravelGrp"
## [345] "TotalAmt" "ProgramServicesAmt"
## [347] "ConferencesMeetingsGrp" "TotalAmt"
## [349] "ProgramServicesAmt" "DepreciationDepletionGrp"
## [351] "TotalAmt" "ProgramServicesAmt"
## [353] "InsuranceGrp" "TotalAmt"
## [355] "ProgramServicesAmt" "ManagementAndGeneralAmt"
## [357] "FundraisingAmt" "OtherExpensesGrp"
## [359] "Desc" "TotalAmt"
## [361] "ProgramServicesAmt" "ManagementAndGeneralAmt"
## [363] "FundraisingAmt" "OtherExpensesGrp"
## [365] "Desc" "TotalAmt"
## [367] "ProgramServicesAmt" "OtherExpensesGrp"
## [369] "Desc" "TotalAmt"
## [371] "ProgramServicesAmt" "ManagementAndGeneralAmt"
## [373] "FundraisingAmt" "OtherExpensesGrp"
## [375] "Desc" "TotalAmt"
## [377] "ProgramServicesAmt" "ManagementAndGeneralAmt"
## [379] "FundraisingAmt" "AllOtherExpensesGrp"
## [381] "TotalAmt" "ProgramServicesAmt"
## [383] "ManagementAndGeneralAmt" "FundraisingAmt"
## [385] "TotalFunctionalExpensesGrp" "TotalAmt"
## [387] "ProgramServicesAmt" "ManagementAndGeneralAmt"
## [389] "FundraisingAmt" "CashNonInterestBearingGrp"
## [391] "BOYAmt" "EOYAmt"
## [393] "PrepaidExpensesDefrdChargesGrp" "BOYAmt"
## [395] "EOYAmt" "LandBldgEquipCostOrOtherBssAmt"
## [397] "LandBldgEquipAccumDeprecAmt" "LandBldgEquipBasisNetGrp"
## [399] "BOYAmt" "EOYAmt"
## [401] "OtherAssetsTotalGrp" "BOYAmt"
## [403] "EOYAmt" "TotalAssetsGrp"
## [405] "BOYAmt" "EOYAmt"
## [407] "TotalLiabilitiesGrp" "BOYAmt"
## [409] "EOYAmt" "OrganizationFollowsSFAS117Ind"
## [411] "UnrestrictedNetAssetsGrp" "BOYAmt"
## [413] "EOYAmt" "TotalNetAssetsFundBalanceGrp"
## [415] "BOYAmt" "EOYAmt"
## [417] "TotLiabNetAssetsFundBalanceGrp" "BOYAmt"
## [419] "EOYAmt" "ReconcilationRevenueExpnssAmt"
## [421] "OtherChangesInNetAssetsAmt" "MethodOfAccountingCashInd"
## [423] "AccountantCompileOrReviewInd" "FSAuditedInd"
## [425] "FederalGrantAuditRequiredInd" "IRS990ScheduleA"
## [427] "PublicOrganization170Ind" "GiftsGrantsContriRcvd170Grp"
## [429] "CurrentTaxYearMinus4YearsAmt" "CurrentTaxYearMinus3YearsAmt"
## [431] "CurrentTaxYearMinus2YearsAmt" "CurrentTaxYearMinus1YearAmt"
## [433] "CurrentTaxYearAmt" "TotalAmt"
## [435] "TotalCalendarYear170Grp" "CurrentTaxYearMinus4YearsAmt"
## [437] "CurrentTaxYearMinus3YearsAmt" "CurrentTaxYearMinus2YearsAmt"
## [439] "CurrentTaxYearMinus1YearAmt" "CurrentTaxYearAmt"
## [441] "TotalAmt" "SubstantialContributorsTotAmt"
## [443] "PublicSupportTotal170Amt" "OtherIncome170Grp"
## [445] "CurrentTaxYearMinus4YearsAmt" "CurrentTaxYearMinus3YearsAmt"
## [447] "CurrentTaxYearMinus2YearsAmt" "CurrentTaxYearMinus1YearAmt"
## [449] "CurrentTaxYearAmt" "TotalAmt"
## [451] "TotalSupportAmt" "PublicSupportCY170Pct"
## [453] "PublicSupportPY170Pct" "ThirtyThrPctSuprtTestsCY170Ind"
## [455] "IRS990ScheduleB" "ContributorInformationGrp"
## [457] "ContributorNum" "ContributorBusinessName"
## [459] "BusinessNameLine1" "ContributorUSAddress"
## [461] "AddressLine1" "AddressLine2"
## [463] "City" "State"
## [465] "ZIPCode" "TotalContributionsAmt"
## [467] "IRS990ScheduleD" "LeaseholdImprovementsGrp"
## [469] "OtherCostOrOtherBasisAmt" "DepreciationAmt"
## [471] "BookValueAmt" "EquipmentGrp"
## [473] "OtherCostOrOtherBasisAmt" "DepreciationAmt"
## [475] "BookValueAmt" "OtherLandBuildingsGrp"
## [477] "OtherCostOrOtherBasisAmt" "DepreciationAmt"
## [479] "BookValueAmt" "TotalBookValueLandBuildingsAmt"
## [481] "IRS990ScheduleM" "SecuritiesPubliclyTradedGrp"
## [483] "NonCashCheckboxInd" "ContributionCnt"
## [485] "NoncashContributionsRptF990Amt" "MethodOfDeterminingRevenuesTxt"
## [487] "OtherNonCashContriTableGrp" "NonCashCheckboxInd"
## [489] "Desc" "ContributionCnt"
## [491] "NoncashContributionsRptF990Amt" "MethodOfDeterminingRevenuesTxt"
## [493] "OtherNonCashContriTableGrp" "NonCashCheckboxInd"
## [495] "Desc" "ContributionCnt"
## [497] "NoncashContributionsRptF990Amt" "MethodOfDeterminingRevenuesTxt"
## [499] "OtherNonCashContriTableGrp" "NonCashCheckboxInd"
## [501] "Desc" "ContributionCnt"
## [503] "NoncashContributionsRptF990Amt" "MethodOfDeterminingRevenuesTxt"
## [505] "OtherNonCashContriTableGrp" "NonCashCheckboxInd"
## [507] "Desc" "ContributionCnt"
## [509] "NoncashContributionsRptF990Amt" "MethodOfDeterminingRevenuesTxt"
## [511] "OtherNonCashContriTableGrp" "NonCashCheckboxInd"
## [513] "Desc" "ContributionCnt"
## [515] "NoncashContributionsRptF990Amt" "MethodOfDeterminingRevenuesTxt"
## [517] "OtherNonCashContriTableGrp" "NonCashCheckboxInd"
## [519] "Desc" "ContributionCnt"
## [521] "NoncashContributionsRptF990Amt" "MethodOfDeterminingRevenuesTxt"
## [523] "OtherNonCashContriTableGrp" "NonCashCheckboxInd"
## [525] "Desc" "ContributionCnt"
## [527] "NoncashContributionsRptF990Amt" "MethodOfDeterminingRevenuesTxt"
## [529] "AnyPropertyThatMustBeHeldInd" "ReviewProcessUnusualNCGiftsInd"
## [531] "ThirdPartiesUsedInd" "IRS990ScheduleO"
## [533] "SupplementalInformationDetail" "FormAndLineReferenceDesc"
## [535] "ExplanationTxt" "SupplementalInformationDetail"
## [537] "FormAndLineReferenceDesc" "ExplanationTxt"
## [539] "SupplementalInformationDetail" "FormAndLineReferenceDesc"
## [541] "ExplanationTxt" "SupplementalInformationDetail"
## [543] "FormAndLineReferenceDesc" "ExplanationTxt"
# FULL PATH FOR EASY REFERENCE WHEN NODES ARE NON-UNIQUE
dat %>% xml_find_all( '//*') %>% xml_path()
## [1] "/Return"
## [2] "/Return/ReturnHeader"
## [3] "/Return/ReturnHeader/ReturnTs"
## [4] "/Return/ReturnHeader/TaxPeriodEndDt"
## [5] "/Return/ReturnHeader/PreparerFirmGrp"
## [6] "/Return/ReturnHeader/PreparerFirmGrp/PreparerFirmEIN"
## [7] "/Return/ReturnHeader/PreparerFirmGrp/PreparerFirmName"
## [8] "/Return/ReturnHeader/PreparerFirmGrp/PreparerFirmName/BusinessNameLine1Txt"
## [9] "/Return/ReturnHeader/PreparerFirmGrp/PreparerUSAddress"
## [10] "/Return/ReturnHeader/PreparerFirmGrp/PreparerUSAddress/AddressLine1Txt"
## [11] "/Return/ReturnHeader/PreparerFirmGrp/PreparerUSAddress/CityNm"
## [12] "/Return/ReturnHeader/PreparerFirmGrp/PreparerUSAddress/StateAbbreviationCd"
## [13] "/Return/ReturnHeader/PreparerFirmGrp/PreparerUSAddress/ZIPCd"
## [14] "/Return/ReturnHeader/ReturnTypeCd"
## [15] "/Return/ReturnHeader/TaxPeriodBeginDt"
## [16] "/Return/ReturnHeader/Filer"
## [17] "/Return/ReturnHeader/Filer/EIN"
## [18] "/Return/ReturnHeader/Filer/BusinessName"
## [19] "/Return/ReturnHeader/Filer/BusinessName/BusinessNameLine1Txt"
## [20] "/Return/ReturnHeader/Filer/BusinessNameControlTxt"
## [21] "/Return/ReturnHeader/Filer/PhoneNum"
## [22] "/Return/ReturnHeader/Filer/USAddress"
## [23] "/Return/ReturnHeader/Filer/USAddress/AddressLine1Txt"
## [24] "/Return/ReturnHeader/Filer/USAddress/CityNm"
## [25] "/Return/ReturnHeader/Filer/USAddress/StateAbbreviationCd"
## [26] "/Return/ReturnHeader/Filer/USAddress/ZIPCd"
## [27] "/Return/ReturnHeader/BusinessOfficerGrp"
## [28] "/Return/ReturnHeader/BusinessOfficerGrp/PersonNm"
## [29] "/Return/ReturnHeader/BusinessOfficerGrp/PersonTitleTxt"
## [30] "/Return/ReturnHeader/BusinessOfficerGrp/PhoneNum"
## [31] "/Return/ReturnHeader/BusinessOfficerGrp/SignatureDt"
## [32] "/Return/ReturnHeader/BusinessOfficerGrp/DiscussWithPaidPreparerInd"
## [33] "/Return/ReturnHeader/PreparerPersonGrp"
## [34] "/Return/ReturnHeader/PreparerPersonGrp/PreparerPersonNm"
## [35] "/Return/ReturnHeader/PreparerPersonGrp/PTIN"
## [36] "/Return/ReturnHeader/PreparerPersonGrp/PhoneNum"
## [37] "/Return/ReturnHeader/TaxYr"
## [38] "/Return/ReturnHeader/BuildTS"
## [39] "/Return/ReturnData"
## [40] "/Return/ReturnData/IRS990"
## [41] "/Return/ReturnData/IRS990/PrincipalOfficerNm"
## [42] "/Return/ReturnData/IRS990/USAddress"
## [43] "/Return/ReturnData/IRS990/USAddress/AddressLine1Txt"
## [44] "/Return/ReturnData/IRS990/USAddress/CityNm"
## [45] "/Return/ReturnData/IRS990/USAddress/StateAbbreviationCd"
## [46] "/Return/ReturnData/IRS990/USAddress/ZIPCd"
## [47] "/Return/ReturnData/IRS990/GrossReceiptsAmt"
## [48] "/Return/ReturnData/IRS990/GroupReturnForAffiliatesInd"
## [49] "/Return/ReturnData/IRS990/Organization501c3Ind"
## [50] "/Return/ReturnData/IRS990/WebsiteAddressTxt"
## [51] "/Return/ReturnData/IRS990/TypeOfOrganizationCorpInd"
## [52] "/Return/ReturnData/IRS990/FormationYr"
## [53] "/Return/ReturnData/IRS990/LegalDomicileStateCd"
## [54] "/Return/ReturnData/IRS990/ActivityOrMissionDesc"
## [55] "/Return/ReturnData/IRS990/VotingMembersGoverningBodyCnt"
## [56] "/Return/ReturnData/IRS990/VotingMembersIndependentCnt"
## [57] "/Return/ReturnData/IRS990/TotalEmployeeCnt"
## [58] "/Return/ReturnData/IRS990/TotalVolunteersCnt"
## [59] "/Return/ReturnData/IRS990/TotalGrossUBIAmt"
## [60] "/Return/ReturnData/IRS990/NetUnrelatedBusTxblIncmAmt"
## [61] "/Return/ReturnData/IRS990/PYContributionsGrantsAmt"
## [62] "/Return/ReturnData/IRS990/CYContributionsGrantsAmt"
## [63] "/Return/ReturnData/IRS990/PYProgramServiceRevenueAmt"
## [64] "/Return/ReturnData/IRS990/CYProgramServiceRevenueAmt"
## [65] "/Return/ReturnData/IRS990/PYInvestmentIncomeAmt"
## [66] "/Return/ReturnData/IRS990/CYInvestmentIncomeAmt"
## [67] "/Return/ReturnData/IRS990/PYOtherRevenueAmt"
## [68] "/Return/ReturnData/IRS990/CYOtherRevenueAmt"
## [69] "/Return/ReturnData/IRS990/PYTotalRevenueAmt"
## [70] "/Return/ReturnData/IRS990/CYTotalRevenueAmt"
## [71] "/Return/ReturnData/IRS990/PYGrantsAndSimilarPaidAmt"
## [72] "/Return/ReturnData/IRS990/CYGrantsAndSimilarPaidAmt"
## [73] "/Return/ReturnData/IRS990/PYBenefitsPaidToMembersAmt"
## [74] "/Return/ReturnData/IRS990/CYBenefitsPaidToMembersAmt"
## [75] "/Return/ReturnData/IRS990/PYSalariesCompEmpBnftPaidAmt"
## [76] "/Return/ReturnData/IRS990/CYSalariesCompEmpBnftPaidAmt"
## [77] "/Return/ReturnData/IRS990/PYTotalProfFndrsngExpnsAmt"
## [78] "/Return/ReturnData/IRS990/CYTotalProfFndrsngExpnsAmt"
## [79] "/Return/ReturnData/IRS990/CYTotalFundraisingExpenseAmt"
## [80] "/Return/ReturnData/IRS990/PYOtherExpensesAmt"
## [81] "/Return/ReturnData/IRS990/CYOtherExpensesAmt"
## [82] "/Return/ReturnData/IRS990/PYTotalExpensesAmt"
## [83] "/Return/ReturnData/IRS990/CYTotalExpensesAmt"
## [84] "/Return/ReturnData/IRS990/PYRevenuesLessExpensesAmt"
## [85] "/Return/ReturnData/IRS990/CYRevenuesLessExpensesAmt"
## [86] "/Return/ReturnData/IRS990/TotalAssetsBOYAmt"
## [87] "/Return/ReturnData/IRS990/TotalAssetsEOYAmt"
## [88] "/Return/ReturnData/IRS990/TotalLiabilitiesBOYAmt"
## [89] "/Return/ReturnData/IRS990/TotalLiabilitiesEOYAmt"
## [90] "/Return/ReturnData/IRS990/NetAssetsOrFundBalancesBOYAmt"
## [91] "/Return/ReturnData/IRS990/NetAssetsOrFundBalancesEOYAmt"
## [92] "/Return/ReturnData/IRS990/MissionDesc"
## [93] "/Return/ReturnData/IRS990/SignificantNewProgramSrvcInd"
## [94] "/Return/ReturnData/IRS990/SignificantChangeInd"
## [95] "/Return/ReturnData/IRS990/ExpenseAmt"
## [96] "/Return/ReturnData/IRS990/RevenueAmt"
## [97] "/Return/ReturnData/IRS990/Desc"
## [98] "/Return/ReturnData/IRS990/TotalProgramServiceExpensesAmt"
## [99] "/Return/ReturnData/IRS990/DescribedInSection501c3Ind"
## [100] "/Return/ReturnData/IRS990/ScheduleBRequiredInd"
## [101] "/Return/ReturnData/IRS990/PoliticalCampaignActyInd"
## [102] "/Return/ReturnData/IRS990/LobbyingActivitiesInd"
## [103] "/Return/ReturnData/IRS990/SubjectToProxyTaxInd"
## [104] "/Return/ReturnData/IRS990/DonorAdvisedFundInd"
## [105] "/Return/ReturnData/IRS990/ConservationEasementsInd"
## [106] "/Return/ReturnData/IRS990/CollectionsOfArtInd"
## [107] "/Return/ReturnData/IRS990/CreditCounselingInd"
## [108] "/Return/ReturnData/IRS990/TempOrPermanentEndowmentsInd"
## [109] "/Return/ReturnData/IRS990/ReportLandBuildingEquipmentInd"
## [110] "/Return/ReturnData/IRS990/ReportInvestmentsOtherSecInd"
## [111] "/Return/ReturnData/IRS990/ReportProgramRelatedInvstInd"
## [112] "/Return/ReturnData/IRS990/ReportOtherAssetsInd"
## [113] "/Return/ReturnData/IRS990/ReportOtherLiabilitiesInd"
## [114] "/Return/ReturnData/IRS990/IncludeFIN48FootnoteInd"
## [115] "/Return/ReturnData/IRS990/IndependentAuditFinclStmtInd"
## [116] "/Return/ReturnData/IRS990/ConsolidatedAuditFinclStmtInd"
## [117] "/Return/ReturnData/IRS990/SchoolOperatingInd"
## [118] "/Return/ReturnData/IRS990/ForeignOfficeInd"
## [119] "/Return/ReturnData/IRS990/ForeignActivitiesInd"
## [120] "/Return/ReturnData/IRS990/MoreThan5000KToOrgInd"
## [121] "/Return/ReturnData/IRS990/MoreThan5000KToIndividualsInd"
## [122] "/Return/ReturnData/IRS990/ProfessionalFundraisingInd"
## [123] "/Return/ReturnData/IRS990/FundraisingActivitiesInd"
## [124] "/Return/ReturnData/IRS990/GamingActivitiesInd"
## [125] "/Return/ReturnData/IRS990/OperateHospitalInd"
## [126] "/Return/ReturnData/IRS990/GrantsToOrganizationsInd"
## [127] "/Return/ReturnData/IRS990/GrantsToIndividualsInd"
## [128] "/Return/ReturnData/IRS990/ScheduleJRequiredInd"
## [129] "/Return/ReturnData/IRS990/TaxExemptBondsInd"
## [130] "/Return/ReturnData/IRS990/EngagedInExcessBenefitTransInd"
## [131] "/Return/ReturnData/IRS990/PYExcessBenefitTransInd"
## [132] "/Return/ReturnData/IRS990/LoanOutstandingInd"
## [133] "/Return/ReturnData/IRS990/GrantToRelatedPersonInd"
## [134] "/Return/ReturnData/IRS990/BusinessRlnWithOrgMemInd"
## [135] "/Return/ReturnData/IRS990/BusinessRlnWithFamMemInd"
## [136] "/Return/ReturnData/IRS990/BusinessRlnWithOfficerEntInd"
## [137] "/Return/ReturnData/IRS990/DeductibleNonCashContriInd"
## [138] "/Return/ReturnData/IRS990/DeductibleArtContributionInd"
## [139] "/Return/ReturnData/IRS990/TerminateOperationsInd"
## [140] "/Return/ReturnData/IRS990/PartialLiquidationInd"
## [141] "/Return/ReturnData/IRS990/DisregardedEntityInd"
## [142] "/Return/ReturnData/IRS990/RelatedEntityInd"
## [143] "/Return/ReturnData/IRS990/RelatedOrganizationCtrlEntInd"
## [144] "/Return/ReturnData/IRS990/TrnsfrExmptNonChrtblRltdOrgInd"
## [145] "/Return/ReturnData/IRS990/ActivitiesConductedPrtshpInd"
## [146] "/Return/ReturnData/IRS990/ScheduleORequiredInd"
## [147] "/Return/ReturnData/IRS990/IRPDocumentCnt"
## [148] "/Return/ReturnData/IRS990/IRPDocumentW2GCnt"
## [149] "/Return/ReturnData/IRS990/BackupWthldComplianceInd"
## [150] "/Return/ReturnData/IRS990/EmployeeCnt"
## [151] "/Return/ReturnData/IRS990/EmploymentTaxReturnsFiledInd"
## [152] "/Return/ReturnData/IRS990/UnrelatedBusIncmOverLimitInd"
## [153] "/Return/ReturnData/IRS990/Form990TFiledInd"
## [154] "/Return/ReturnData/IRS990/ForeignFinancialAccountInd"
## [155] "/Return/ReturnData/IRS990/ProhibitedTaxShelterTransInd"
## [156] "/Return/ReturnData/IRS990/TaxablePartyNotificationInd"
## [157] "/Return/ReturnData/IRS990/NondeductibleContributionsInd"
## [158] "/Return/ReturnData/IRS990/QuidProQuoContributionsInd"
## [159] "/Return/ReturnData/IRS990/QuidProQuoContriDisclInd"
## [160] "/Return/ReturnData/IRS990/Form8282PropertyDisposedOfInd"
## [161] "/Return/ReturnData/IRS990/RcvFndsToPayPrsnlBnftCntrctInd"
## [162] "/Return/ReturnData/IRS990/PayPremiumsPrsnlBnftCntrctInd"
## [163] "/Return/ReturnData/IRS990/IndoorTanningServicesInd"
## [164] "/Return/ReturnData/IRS990/InfoInScheduleOPartVIInd"
## [165] "/Return/ReturnData/IRS990/GoverningBodyVotingMembersCnt"
## [166] "/Return/ReturnData/IRS990/IndependentVotingMemberCnt"
## [167] "/Return/ReturnData/IRS990/FamilyOrBusinessRlnInd"
## [168] "/Return/ReturnData/IRS990/DelegationOfMgmtDutiesInd"
## [169] "/Return/ReturnData/IRS990/ChangeToOrgDocumentsInd"
## [170] "/Return/ReturnData/IRS990/MaterialDiversionOrMisuseInd"
## [171] "/Return/ReturnData/IRS990/MembersOrStockholdersInd"
## [172] "/Return/ReturnData/IRS990/ElectionOfBoardMembersInd"
## [173] "/Return/ReturnData/IRS990/DecisionsSubjectToApprovaInd"
## [174] "/Return/ReturnData/IRS990/MinutesOfGoverningBodyInd"
## [175] "/Return/ReturnData/IRS990/MinutesOfCommitteesInd"
## [176] "/Return/ReturnData/IRS990/OfficerMailingAddressInd"
## [177] "/Return/ReturnData/IRS990/LocalChaptersInd"
## [178] "/Return/ReturnData/IRS990/Form990ProvidedToGvrnBodyInd"
## [179] "/Return/ReturnData/IRS990/ConflictOfInterestPolicyInd"
## [180] "/Return/ReturnData/IRS990/AnnualDisclosureCoveredPrsnInd"
## [181] "/Return/ReturnData/IRS990/RegularMonitoringEnfrcInd"
## [182] "/Return/ReturnData/IRS990/WhistleblowerPolicyInd"
## [183] "/Return/ReturnData/IRS990/DocumentRetentionPolicyInd"
## [184] "/Return/ReturnData/IRS990/CompensationProcessCEOInd"
## [185] "/Return/ReturnData/IRS990/CompensationProcessOtherInd"
## [186] "/Return/ReturnData/IRS990/InvestmentInJointVentureInd"
## [187] "/Return/ReturnData/IRS990/StatesWhereCopyOfReturnIsFldCd"
## [188] "/Return/ReturnData/IRS990/OtherWebsiteInd"
## [189] "/Return/ReturnData/IRS990/UponRequestInd"
## [190] "/Return/ReturnData/IRS990/BooksInCareOfDetail"
## [191] "/Return/ReturnData/IRS990/BooksInCareOfDetail/BusinessName"
## [192] "/Return/ReturnData/IRS990/BooksInCareOfDetail/BusinessName/BusinessNameLine1Txt"
## [193] "/Return/ReturnData/IRS990/BooksInCareOfDetail/PhoneNum"
## [194] "/Return/ReturnData/IRS990/BooksInCareOfDetail/USAddress"
## [195] "/Return/ReturnData/IRS990/BooksInCareOfDetail/USAddress/AddressLine1Txt"
## [196] "/Return/ReturnData/IRS990/BooksInCareOfDetail/USAddress/CityNm"
## [197] "/Return/ReturnData/IRS990/BooksInCareOfDetail/USAddress/StateAbbreviationCd"
## [198] "/Return/ReturnData/IRS990/BooksInCareOfDetail/USAddress/ZIPCd"
## [199] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[1]"
## [200] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[1]/PersonNm"
## [201] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[1]/TitleTxt"
## [202] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[1]/AverageHoursPerWeekRt"
## [203] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[1]/IndividualTrusteeOrDirectorInd"
## [204] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[1]/ReportableCompFromOrgAmt"
## [205] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[1]/ReportableCompFromRltdOrgAmt"
## [206] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[1]/OtherCompensationAmt"
## [207] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[2]"
## [208] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[2]/PersonNm"
## [209] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[2]/TitleTxt"
## [210] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[2]/AverageHoursPerWeekRt"
## [211] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[2]/IndividualTrusteeOrDirectorInd"
## [212] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[2]/OfficerInd"
## [213] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[2]/ReportableCompFromOrgAmt"
## [214] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[2]/ReportableCompFromRltdOrgAmt"
## [215] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[2]/OtherCompensationAmt"
## [216] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[3]"
## [217] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[3]/PersonNm"
## [218] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[3]/TitleTxt"
## [219] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[3]/AverageHoursPerWeekRt"
## [220] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[3]/IndividualTrusteeOrDirectorInd"
## [221] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[3]/ReportableCompFromOrgAmt"
## [222] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[3]/ReportableCompFromRltdOrgAmt"
## [223] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[3]/OtherCompensationAmt"
## [224] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[4]"
## [225] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[4]/PersonNm"
## [226] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[4]/TitleTxt"
## [227] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[4]/AverageHoursPerWeekRt"
## [228] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[4]/IndividualTrusteeOrDirectorInd"
## [229] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[4]/OfficerInd"
## [230] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[4]/ReportableCompFromOrgAmt"
## [231] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[4]/ReportableCompFromRltdOrgAmt"
## [232] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[4]/OtherCompensationAmt"
## [233] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[5]"
## [234] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[5]/PersonNm"
## [235] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[5]/TitleTxt"
## [236] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[5]/AverageHoursPerWeekRt"
## [237] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[5]/IndividualTrusteeOrDirectorInd"
## [238] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[5]/ReportableCompFromOrgAmt"
## [239] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[5]/ReportableCompFromRltdOrgAmt"
## [240] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[5]/OtherCompensationAmt"
## [241] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[6]"
## [242] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[6]/PersonNm"
## [243] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[6]/TitleTxt"
## [244] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[6]/AverageHoursPerWeekRt"
## [245] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[6]/OfficerInd"
## [246] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[6]/ReportableCompFromOrgAmt"
## [247] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[6]/ReportableCompFromRltdOrgAmt"
## [248] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[6]/OtherCompensationAmt"
## [249] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[7]"
## [250] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[7]/PersonNm"
## [251] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[7]/TitleTxt"
## [252] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[7]/AverageHoursPerWeekRt"
## [253] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[7]/OfficerInd"
## [254] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[7]/ReportableCompFromOrgAmt"
## [255] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[7]/ReportableCompFromRltdOrgAmt"
## [256] "/Return/ReturnData/IRS990/Form990PartVIISectionAGrp[7]/OtherCompensationAmt"
## [257] "/Return/ReturnData/IRS990/TotalReportableCompFromOrgAmt"
## [258] "/Return/ReturnData/IRS990/TotReportableCompRltdOrgAmt"
## [259] "/Return/ReturnData/IRS990/TotalOtherCompensationAmt"
## [260] "/Return/ReturnData/IRS990/IndivRcvdGreaterThan100KCnt"
## [261] "/Return/ReturnData/IRS990/FormerOfcrEmployeesListedInd"
## [262] "/Return/ReturnData/IRS990/TotalCompGreaterThan150KInd"
## [263] "/Return/ReturnData/IRS990/CompensationFromOtherSrcsInd"
## [264] "/Return/ReturnData/IRS990/CntrctRcvdGreaterThan100KCnt"
## [265] "/Return/ReturnData/IRS990/MembershipDuesAmt"
## [266] "/Return/ReturnData/IRS990/AllOtherContributionsAmt"
## [267] "/Return/ReturnData/IRS990/NoncashContributionsAmt"
## [268] "/Return/ReturnData/IRS990/TotalContributionsAmt"
## [269] "/Return/ReturnData/IRS990/ProgramServiceRevenueGrp[1]"
## [270] "/Return/ReturnData/IRS990/ProgramServiceRevenueGrp[1]/Desc"
## [271] "/Return/ReturnData/IRS990/ProgramServiceRevenueGrp[1]/BusinessCd"
## [272] "/Return/ReturnData/IRS990/ProgramServiceRevenueGrp[1]/TotalRevenueColumnAmt"
## [273] "/Return/ReturnData/IRS990/ProgramServiceRevenueGrp[1]/RelatedOrExemptFuncIncomeAmt"
## [274] "/Return/ReturnData/IRS990/ProgramServiceRevenueGrp[2]"
## [275] "/Return/ReturnData/IRS990/ProgramServiceRevenueGrp[2]/Desc"
## [276] "/Return/ReturnData/IRS990/ProgramServiceRevenueGrp[2]/BusinessCd"
## [277] "/Return/ReturnData/IRS990/ProgramServiceRevenueGrp[2]/TotalRevenueColumnAmt"
## [278] "/Return/ReturnData/IRS990/ProgramServiceRevenueGrp[2]/UnrelatedBusinessRevenueAmt"
## [279] "/Return/ReturnData/IRS990/TotalProgramServiceRevenueAmt"
## [280] "/Return/ReturnData/IRS990/GrossAmountSalesAssetsGrp"
## [281] "/Return/ReturnData/IRS990/GrossAmountSalesAssetsGrp/SecuritiesAmt"
## [282] "/Return/ReturnData/IRS990/LessCostOthBasisSalesExpnssGrp"
## [283] "/Return/ReturnData/IRS990/LessCostOthBasisSalesExpnssGrp/SecuritiesAmt"
## [284] "/Return/ReturnData/IRS990/LessCostOthBasisSalesExpnssGrp/OtherAmt"
## [285] "/Return/ReturnData/IRS990/GainOrLossGrp"
## [286] "/Return/ReturnData/IRS990/GainOrLossGrp/SecuritiesAmt"
## [287] "/Return/ReturnData/IRS990/GainOrLossGrp/OtherAmt"
## [288] "/Return/ReturnData/IRS990/NetGainOrLossInvestmentsGrp"
## [289] "/Return/ReturnData/IRS990/NetGainOrLossInvestmentsGrp/TotalRevenueColumnAmt"
## [290] "/Return/ReturnData/IRS990/NetGainOrLossInvestmentsGrp/RelatedOrExemptFuncIncomeAmt"
## [291] "/Return/ReturnData/IRS990/TotalRevenueGrp"
## [292] "/Return/ReturnData/IRS990/TotalRevenueGrp/TotalRevenueColumnAmt"
## [293] "/Return/ReturnData/IRS990/TotalRevenueGrp/RelatedOrExemptFuncIncomeAmt"
## [294] "/Return/ReturnData/IRS990/TotalRevenueGrp/UnrelatedBusinessRevenueAmt"
## [295] "/Return/ReturnData/IRS990/TotalRevenueGrp/ExclusionAmt"
## [296] "/Return/ReturnData/IRS990/CompCurrentOfcrDirectorsGrp"
## [297] "/Return/ReturnData/IRS990/CompCurrentOfcrDirectorsGrp/TotalAmt"
## [298] "/Return/ReturnData/IRS990/CompCurrentOfcrDirectorsGrp/ProgramServicesAmt"
## [299] "/Return/ReturnData/IRS990/OtherSalariesAndWagesGrp"
## [300] "/Return/ReturnData/IRS990/OtherSalariesAndWagesGrp/TotalAmt"
## [301] "/Return/ReturnData/IRS990/OtherSalariesAndWagesGrp/ProgramServicesAmt"
## [302] "/Return/ReturnData/IRS990/OtherSalariesAndWagesGrp/ManagementAndGeneralAmt"
## [303] "/Return/ReturnData/IRS990/OtherSalariesAndWagesGrp/FundraisingAmt"
## [304] "/Return/ReturnData/IRS990/PensionPlanContributionsGrp"
## [305] "/Return/ReturnData/IRS990/PensionPlanContributionsGrp/TotalAmt"
## [306] "/Return/ReturnData/IRS990/PensionPlanContributionsGrp/ProgramServicesAmt"
## [307] "/Return/ReturnData/IRS990/PensionPlanContributionsGrp/ManagementAndGeneralAmt"
## [308] "/Return/ReturnData/IRS990/PensionPlanContributionsGrp/FundraisingAmt"
## [309] "/Return/ReturnData/IRS990/OtherEmployeeBenefitsGrp"
## [310] "/Return/ReturnData/IRS990/OtherEmployeeBenefitsGrp/TotalAmt"
## [311] "/Return/ReturnData/IRS990/OtherEmployeeBenefitsGrp/ProgramServicesAmt"
## [312] "/Return/ReturnData/IRS990/OtherEmployeeBenefitsGrp/ManagementAndGeneralAmt"
## [313] "/Return/ReturnData/IRS990/OtherEmployeeBenefitsGrp/FundraisingAmt"
## [314] "/Return/ReturnData/IRS990/PayrollTaxesGrp"
## [315] "/Return/ReturnData/IRS990/PayrollTaxesGrp/TotalAmt"
## [316] "/Return/ReturnData/IRS990/PayrollTaxesGrp/ProgramServicesAmt"
## [317] "/Return/ReturnData/IRS990/PayrollTaxesGrp/ManagementAndGeneralAmt"
## [318] "/Return/ReturnData/IRS990/PayrollTaxesGrp/FundraisingAmt"
## [319] "/Return/ReturnData/IRS990/FeesForServicesLegalGrp"
## [320] "/Return/ReturnData/IRS990/FeesForServicesLegalGrp/TotalAmt"
## [321] "/Return/ReturnData/IRS990/FeesForServicesLegalGrp/ProgramServicesAmt"
## [322] "/Return/ReturnData/IRS990/FeesForServicesAccountingGrp"
## [323] "/Return/ReturnData/IRS990/FeesForServicesAccountingGrp/TotalAmt"
## [324] "/Return/ReturnData/IRS990/FeesForServicesAccountingGrp/ProgramServicesAmt"
## [325] "/Return/ReturnData/IRS990/FeesForServicesOtherGrp"
## [326] "/Return/ReturnData/IRS990/FeesForServicesOtherGrp/TotalAmt"
## [327] "/Return/ReturnData/IRS990/FeesForServicesOtherGrp/ProgramServicesAmt"
## [328] "/Return/ReturnData/IRS990/AdvertisingGrp"
## [329] "/Return/ReturnData/IRS990/AdvertisingGrp/TotalAmt"
## [330] "/Return/ReturnData/IRS990/AdvertisingGrp/ProgramServicesAmt"
## [331] "/Return/ReturnData/IRS990/AdvertisingGrp/ManagementAndGeneralAmt"
## [332] "/Return/ReturnData/IRS990/AdvertisingGrp/FundraisingAmt"
## [333] "/Return/ReturnData/IRS990/OfficeExpensesGrp"
## [334] "/Return/ReturnData/IRS990/OfficeExpensesGrp/TotalAmt"
## [335] "/Return/ReturnData/IRS990/OfficeExpensesGrp/ProgramServicesAmt"
## [336] "/Return/ReturnData/IRS990/InformationTechnologyGrp"
## [337] "/Return/ReturnData/IRS990/InformationTechnologyGrp/TotalAmt"
## [338] "/Return/ReturnData/IRS990/InformationTechnologyGrp/ProgramServicesAmt"
## [339] "/Return/ReturnData/IRS990/OccupancyGrp"
## [340] "/Return/ReturnData/IRS990/OccupancyGrp/TotalAmt"
## [341] "/Return/ReturnData/IRS990/OccupancyGrp/ProgramServicesAmt"
## [342] "/Return/ReturnData/IRS990/OccupancyGrp/ManagementAndGeneralAmt"
## [343] "/Return/ReturnData/IRS990/OccupancyGrp/FundraisingAmt"
## [344] "/Return/ReturnData/IRS990/TravelGrp"
## [345] "/Return/ReturnData/IRS990/TravelGrp/TotalAmt"
## [346] "/Return/ReturnData/IRS990/TravelGrp/ProgramServicesAmt"
## [347] "/Return/ReturnData/IRS990/ConferencesMeetingsGrp"
## [348] "/Return/ReturnData/IRS990/ConferencesMeetingsGrp/TotalAmt"
## [349] "/Return/ReturnData/IRS990/ConferencesMeetingsGrp/ProgramServicesAmt"
## [350] "/Return/ReturnData/IRS990/DepreciationDepletionGrp"
## [351] "/Return/ReturnData/IRS990/DepreciationDepletionGrp/TotalAmt"
## [352] "/Return/ReturnData/IRS990/DepreciationDepletionGrp/ProgramServicesAmt"
## [353] "/Return/ReturnData/IRS990/InsuranceGrp"
## [354] "/Return/ReturnData/IRS990/InsuranceGrp/TotalAmt"
## [355] "/Return/ReturnData/IRS990/InsuranceGrp/ProgramServicesAmt"
## [356] "/Return/ReturnData/IRS990/InsuranceGrp/ManagementAndGeneralAmt"
## [357] "/Return/ReturnData/IRS990/InsuranceGrp/FundraisingAmt"
## [358] "/Return/ReturnData/IRS990/OtherExpensesGrp[1]"
## [359] "/Return/ReturnData/IRS990/OtherExpensesGrp[1]/Desc"
## [360] "/Return/ReturnData/IRS990/OtherExpensesGrp[1]/TotalAmt"
## [361] "/Return/ReturnData/IRS990/OtherExpensesGrp[1]/ProgramServicesAmt"
## [362] "/Return/ReturnData/IRS990/OtherExpensesGrp[1]/ManagementAndGeneralAmt"
## [363] "/Return/ReturnData/IRS990/OtherExpensesGrp[1]/FundraisingAmt"
## [364] "/Return/ReturnData/IRS990/OtherExpensesGrp[2]"
## [365] "/Return/ReturnData/IRS990/OtherExpensesGrp[2]/Desc"
## [366] "/Return/ReturnData/IRS990/OtherExpensesGrp[2]/TotalAmt"
## [367] "/Return/ReturnData/IRS990/OtherExpensesGrp[2]/ProgramServicesAmt"
## [368] "/Return/ReturnData/IRS990/OtherExpensesGrp[3]"
## [369] "/Return/ReturnData/IRS990/OtherExpensesGrp[3]/Desc"
## [370] "/Return/ReturnData/IRS990/OtherExpensesGrp[3]/TotalAmt"
## [371] "/Return/ReturnData/IRS990/OtherExpensesGrp[3]/ProgramServicesAmt"
## [372] "/Return/ReturnData/IRS990/OtherExpensesGrp[3]/ManagementAndGeneralAmt"
## [373] "/Return/ReturnData/IRS990/OtherExpensesGrp[3]/FundraisingAmt"
## [374] "/Return/ReturnData/IRS990/OtherExpensesGrp[4]"
## [375] "/Return/ReturnData/IRS990/OtherExpensesGrp[4]/Desc"
## [376] "/Return/ReturnData/IRS990/OtherExpensesGrp[4]/TotalAmt"
## [377] "/Return/ReturnData/IRS990/OtherExpensesGrp[4]/ProgramServicesAmt"
## [378] "/Return/ReturnData/IRS990/OtherExpensesGrp[4]/ManagementAndGeneralAmt"
## [379] "/Return/ReturnData/IRS990/OtherExpensesGrp[4]/FundraisingAmt"
## [380] "/Return/ReturnData/IRS990/AllOtherExpensesGrp"
## [381] "/Return/ReturnData/IRS990/AllOtherExpensesGrp/TotalAmt"
## [382] "/Return/ReturnData/IRS990/AllOtherExpensesGrp/ProgramServicesAmt"
## [383] "/Return/ReturnData/IRS990/AllOtherExpensesGrp/ManagementAndGeneralAmt"
## [384] "/Return/ReturnData/IRS990/AllOtherExpensesGrp/FundraisingAmt"
## [385] "/Return/ReturnData/IRS990/TotalFunctionalExpensesGrp"
## [386] "/Return/ReturnData/IRS990/TotalFunctionalExpensesGrp/TotalAmt"
## [387] "/Return/ReturnData/IRS990/TotalFunctionalExpensesGrp/ProgramServicesAmt"
## [388] "/Return/ReturnData/IRS990/TotalFunctionalExpensesGrp/ManagementAndGeneralAmt"
## [389] "/Return/ReturnData/IRS990/TotalFunctionalExpensesGrp/FundraisingAmt"
## [390] "/Return/ReturnData/IRS990/CashNonInterestBearingGrp"
## [391] "/Return/ReturnData/IRS990/CashNonInterestBearingGrp/BOYAmt"
## [392] "/Return/ReturnData/IRS990/CashNonInterestBearingGrp/EOYAmt"
## [393] "/Return/ReturnData/IRS990/PrepaidExpensesDefrdChargesGrp"
## [394] "/Return/ReturnData/IRS990/PrepaidExpensesDefrdChargesGrp/BOYAmt"
## [395] "/Return/ReturnData/IRS990/PrepaidExpensesDefrdChargesGrp/EOYAmt"
## [396] "/Return/ReturnData/IRS990/LandBldgEquipCostOrOtherBssAmt"
## [397] "/Return/ReturnData/IRS990/LandBldgEquipAccumDeprecAmt"
## [398] "/Return/ReturnData/IRS990/LandBldgEquipBasisNetGrp"
## [399] "/Return/ReturnData/IRS990/LandBldgEquipBasisNetGrp/BOYAmt"
## [400] "/Return/ReturnData/IRS990/LandBldgEquipBasisNetGrp/EOYAmt"
## [401] "/Return/ReturnData/IRS990/OtherAssetsTotalGrp"
## [402] "/Return/ReturnData/IRS990/OtherAssetsTotalGrp/BOYAmt"
## [403] "/Return/ReturnData/IRS990/OtherAssetsTotalGrp/EOYAmt"
## [404] "/Return/ReturnData/IRS990/TotalAssetsGrp"
## [405] "/Return/ReturnData/IRS990/TotalAssetsGrp/BOYAmt"
## [406] "/Return/ReturnData/IRS990/TotalAssetsGrp/EOYAmt"
## [407] "/Return/ReturnData/IRS990/TotalLiabilitiesGrp"
## [408] "/Return/ReturnData/IRS990/TotalLiabilitiesGrp/BOYAmt"
## [409] "/Return/ReturnData/IRS990/TotalLiabilitiesGrp/EOYAmt"
## [410] "/Return/ReturnData/IRS990/OrganizationFollowsSFAS117Ind"
## [411] "/Return/ReturnData/IRS990/UnrestrictedNetAssetsGrp"
## [412] "/Return/ReturnData/IRS990/UnrestrictedNetAssetsGrp/BOYAmt"
## [413] "/Return/ReturnData/IRS990/UnrestrictedNetAssetsGrp/EOYAmt"
## [414] "/Return/ReturnData/IRS990/TotalNetAssetsFundBalanceGrp"
## [415] "/Return/ReturnData/IRS990/TotalNetAssetsFundBalanceGrp/BOYAmt"
## [416] "/Return/ReturnData/IRS990/TotalNetAssetsFundBalanceGrp/EOYAmt"
## [417] "/Return/ReturnData/IRS990/TotLiabNetAssetsFundBalanceGrp"
## [418] "/Return/ReturnData/IRS990/TotLiabNetAssetsFundBalanceGrp/BOYAmt"
## [419] "/Return/ReturnData/IRS990/TotLiabNetAssetsFundBalanceGrp/EOYAmt"
## [420] "/Return/ReturnData/IRS990/ReconcilationRevenueExpnssAmt"
## [421] "/Return/ReturnData/IRS990/OtherChangesInNetAssetsAmt"
## [422] "/Return/ReturnData/IRS990/MethodOfAccountingCashInd"
## [423] "/Return/ReturnData/IRS990/AccountantCompileOrReviewInd"
## [424] "/Return/ReturnData/IRS990/FSAuditedInd"
## [425] "/Return/ReturnData/IRS990/FederalGrantAuditRequiredInd"
## [426] "/Return/ReturnData/IRS990ScheduleA"
## [427] "/Return/ReturnData/IRS990ScheduleA/PublicOrganization170Ind"
## [428] "/Return/ReturnData/IRS990ScheduleA/GiftsGrantsContriRcvd170Grp"
## [429] "/Return/ReturnData/IRS990ScheduleA/GiftsGrantsContriRcvd170Grp/CurrentTaxYearMinus4YearsAmt"
## [430] "/Return/ReturnData/IRS990ScheduleA/GiftsGrantsContriRcvd170Grp/CurrentTaxYearMinus3YearsAmt"
## [431] "/Return/ReturnData/IRS990ScheduleA/GiftsGrantsContriRcvd170Grp/CurrentTaxYearMinus2YearsAmt"
## [432] "/Return/ReturnData/IRS990ScheduleA/GiftsGrantsContriRcvd170Grp/CurrentTaxYearMinus1YearAmt"
## [433] "/Return/ReturnData/IRS990ScheduleA/GiftsGrantsContriRcvd170Grp/CurrentTaxYearAmt"
## [434] "/Return/ReturnData/IRS990ScheduleA/GiftsGrantsContriRcvd170Grp/TotalAmt"
## [435] "/Return/ReturnData/IRS990ScheduleA/TotalCalendarYear170Grp"
## [436] "/Return/ReturnData/IRS990ScheduleA/TotalCalendarYear170Grp/CurrentTaxYearMinus4YearsAmt"
## [437] "/Return/ReturnData/IRS990ScheduleA/TotalCalendarYear170Grp/CurrentTaxYearMinus3YearsAmt"
## [438] "/Return/ReturnData/IRS990ScheduleA/TotalCalendarYear170Grp/CurrentTaxYearMinus2YearsAmt"
## [439] "/Return/ReturnData/IRS990ScheduleA/TotalCalendarYear170Grp/CurrentTaxYearMinus1YearAmt"
## [440] "/Return/ReturnData/IRS990ScheduleA/TotalCalendarYear170Grp/CurrentTaxYearAmt"
## [441] "/Return/ReturnData/IRS990ScheduleA/TotalCalendarYear170Grp/TotalAmt"
## [442] "/Return/ReturnData/IRS990ScheduleA/SubstantialContributorsTotAmt"
## [443] "/Return/ReturnData/IRS990ScheduleA/PublicSupportTotal170Amt"
## [444] "/Return/ReturnData/IRS990ScheduleA/OtherIncome170Grp"
## [445] "/Return/ReturnData/IRS990ScheduleA/OtherIncome170Grp/CurrentTaxYearMinus4YearsAmt"
## [446] "/Return/ReturnData/IRS990ScheduleA/OtherIncome170Grp/CurrentTaxYearMinus3YearsAmt"
## [447] "/Return/ReturnData/IRS990ScheduleA/OtherIncome170Grp/CurrentTaxYearMinus2YearsAmt"
## [448] "/Return/ReturnData/IRS990ScheduleA/OtherIncome170Grp/CurrentTaxYearMinus1YearAmt"
## [449] "/Return/ReturnData/IRS990ScheduleA/OtherIncome170Grp/CurrentTaxYearAmt"
## [450] "/Return/ReturnData/IRS990ScheduleA/OtherIncome170Grp/TotalAmt"
## [451] "/Return/ReturnData/IRS990ScheduleA/TotalSupportAmt"
## [452] "/Return/ReturnData/IRS990ScheduleA/PublicSupportCY170Pct"
## [453] "/Return/ReturnData/IRS990ScheduleA/PublicSupportPY170Pct"
## [454] "/Return/ReturnData/IRS990ScheduleA/ThirtyThrPctSuprtTestsCY170Ind"
## [455] "/Return/ReturnData/IRS990ScheduleB"
## [456] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp"
## [457] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp/ContributorNum"
## [458] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp/ContributorBusinessName"
## [459] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp/ContributorBusinessName/BusinessNameLine1"
## [460] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp/ContributorUSAddress"
## [461] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp/ContributorUSAddress/AddressLine1"
## [462] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp/ContributorUSAddress/AddressLine2"
## [463] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp/ContributorUSAddress/City"
## [464] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp/ContributorUSAddress/State"
## [465] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp/ContributorUSAddress/ZIPCode"
## [466] "/Return/ReturnData/IRS990ScheduleB/ContributorInformationGrp/TotalContributionsAmt"
## [467] "/Return/ReturnData/IRS990ScheduleD"
## [468] "/Return/ReturnData/IRS990ScheduleD/LeaseholdImprovementsGrp"
## [469] "/Return/ReturnData/IRS990ScheduleD/LeaseholdImprovementsGrp/OtherCostOrOtherBasisAmt"
## [470] "/Return/ReturnData/IRS990ScheduleD/LeaseholdImprovementsGrp/DepreciationAmt"
## [471] "/Return/ReturnData/IRS990ScheduleD/LeaseholdImprovementsGrp/BookValueAmt"
## [472] "/Return/ReturnData/IRS990ScheduleD/EquipmentGrp"
## [473] "/Return/ReturnData/IRS990ScheduleD/EquipmentGrp/OtherCostOrOtherBasisAmt"
## [474] "/Return/ReturnData/IRS990ScheduleD/EquipmentGrp/DepreciationAmt"
## [475] "/Return/ReturnData/IRS990ScheduleD/EquipmentGrp/BookValueAmt"
## [476] "/Return/ReturnData/IRS990ScheduleD/OtherLandBuildingsGrp"
## [477] "/Return/ReturnData/IRS990ScheduleD/OtherLandBuildingsGrp/OtherCostOrOtherBasisAmt"
## [478] "/Return/ReturnData/IRS990ScheduleD/OtherLandBuildingsGrp/DepreciationAmt"
## [479] "/Return/ReturnData/IRS990ScheduleD/OtherLandBuildingsGrp/BookValueAmt"
## [480] "/Return/ReturnData/IRS990ScheduleD/TotalBookValueLandBuildingsAmt"
## [481] "/Return/ReturnData/IRS990ScheduleM"
## [482] "/Return/ReturnData/IRS990ScheduleM/SecuritiesPubliclyTradedGrp"
## [483] "/Return/ReturnData/IRS990ScheduleM/SecuritiesPubliclyTradedGrp/NonCashCheckboxInd"
## [484] "/Return/ReturnData/IRS990ScheduleM/SecuritiesPubliclyTradedGrp/ContributionCnt"
## [485] "/Return/ReturnData/IRS990ScheduleM/SecuritiesPubliclyTradedGrp/NoncashContributionsRptF990Amt"
## [486] "/Return/ReturnData/IRS990ScheduleM/SecuritiesPubliclyTradedGrp/MethodOfDeterminingRevenuesTxt"
## [487] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[1]"
## [488] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[1]/NonCashCheckboxInd"
## [489] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[1]/Desc"
## [490] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[1]/ContributionCnt"
## [491] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[1]/NoncashContributionsRptF990Amt"
## [492] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[1]/MethodOfDeterminingRevenuesTxt"
## [493] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[2]"
## [494] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[2]/NonCashCheckboxInd"
## [495] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[2]/Desc"
## [496] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[2]/ContributionCnt"
## [497] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[2]/NoncashContributionsRptF990Amt"
## [498] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[2]/MethodOfDeterminingRevenuesTxt"
## [499] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[3]"
## [500] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[3]/NonCashCheckboxInd"
## [501] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[3]/Desc"
## [502] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[3]/ContributionCnt"
## [503] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[3]/NoncashContributionsRptF990Amt"
## [504] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[3]/MethodOfDeterminingRevenuesTxt"
## [505] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[4]"
## [506] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[4]/NonCashCheckboxInd"
## [507] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[4]/Desc"
## [508] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[4]/ContributionCnt"
## [509] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[4]/NoncashContributionsRptF990Amt"
## [510] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[4]/MethodOfDeterminingRevenuesTxt"
## [511] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[5]"
## [512] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[5]/NonCashCheckboxInd"
## [513] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[5]/Desc"
## [514] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[5]/ContributionCnt"
## [515] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[5]/NoncashContributionsRptF990Amt"
## [516] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[5]/MethodOfDeterminingRevenuesTxt"
## [517] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[6]"
## [518] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[6]/NonCashCheckboxInd"
## [519] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[6]/Desc"
## [520] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[6]/ContributionCnt"
## [521] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[6]/NoncashContributionsRptF990Amt"
## [522] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[6]/MethodOfDeterminingRevenuesTxt"
## [523] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[7]"
## [524] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[7]/NonCashCheckboxInd"
## [525] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[7]/Desc"
## [526] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[7]/ContributionCnt"
## [527] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[7]/NoncashContributionsRptF990Amt"
## [528] "/Return/ReturnData/IRS990ScheduleM/OtherNonCashContriTableGrp[7]/MethodOfDeterminingRevenuesTxt"
## [529] "/Return/ReturnData/IRS990ScheduleM/AnyPropertyThatMustBeHeldInd"
## [530] "/Return/ReturnData/IRS990ScheduleM/ReviewProcessUnusualNCGiftsInd"
## [531] "/Return/ReturnData/IRS990ScheduleM/ThirdPartiesUsedInd"
## [532] "/Return/ReturnData/IRS990ScheduleO"
## [533] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[1]"
## [534] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[1]/FormAndLineReferenceDesc"
## [535] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[1]/ExplanationTxt"
## [536] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[2]"
## [537] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[2]/FormAndLineReferenceDesc"
## [538] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[2]/ExplanationTxt"
## [539] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[3]"
## [540] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[3]/FormAndLineReferenceDesc"
## [541] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[3]/ExplanationTxt"
## [542] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[4]"
## [543] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[4]/FormAndLineReferenceDesc"
## [544] "/Return/ReturnData/IRS990ScheduleO/SupplementalInformationDetail[4]/ExplanationTxt"