This is an R Markdown Notebook. Demonstrating some of fundManageR’s ADV data acquisition functions.

Setup

packages <- c('fundManageR', 'dplyr', 'tidyr', 'purrr', 'formattable', 'stringr')
lapply(packages, library, character.only = T)

Explore the most rececent ADV summary data.

Here will use the get_data_adv_managers_current_period_summary function to do some quick explorations of ADV filing investment managers.

most_recent_data <- 
  get_data_adv_managers_current_period_summary(file_directory = 'Desktop/adv_test')

Explore the top 5 managers by AUM

most_recent_data %>% 
  head %>% 
  formattable()

Which states have the highest concentration of investment managers?

most_recent_data %>%
  group_by(stateOfficePrimary) %>%
  summarise(
  amountAUMTotal = sum(amountAUMTotal, na.rm = T) %>% currency(digits = 0),
  countEmployeesTotal = sum(countEmployeesTotal, na.rm = T) %>% comma(digits = 0),
  countCompanies = n() %>% comma(digits = 0)
  ) %>% 
  ungroup %>% 
  arrange(desc(amountAUMTotal)) %>% 
  formattable()

Lets use this data to find out detailed information to explore about an investment manager

For this example we will try to find out information about entities related to The Blackstone Group, we can expand this search for entities that MAY be related to Blackstone by taking advantage of the fact we know Blackstone’s office is located at 345 Park Avenue in New York.

possible_bx_companies <- 
  most_recent_data %>%
  dplyr::filter(
    nameEntityManager %>% str_detect("BLACKSTONE REAL|BREP|GSO") |
      locationOfficePrimary %>% str_detect("^345 PARK AVENUE") |
      urlManager %>% str_detect('blackstone.com')
  ) %>%
  dplyr::select(
    idCRD,
    nameEntityManager,
    urlManager,
    locationOfficePrimary,
    urlManager,
    amountAUMTotal
  )
possible_bx_companies %>% 
  formattable()

Some of these entities we know are not related to Blackstone so let’s exclude them, others have no stated AUM so we can exclude those as well.

possible_bx_companies <- 
  possible_bx_companies %>% 
  dplyr::filter(!nameEntityManager %>% str_detect('LADDER CAPITAL ASSET MANAGEMENT LLC|DEUTSCHE|DBX|WAFRA|DB ')) %>% 
  dplyr::filter(amountAUMTotal > 0)
possible_bx_companies %>% 
  formattable()

Detailed ADV Function Exploration

Brochure D ata

Before diving into how to use these functions lets whittle down our data to a vector of CRDs we can feed into our functions.

blackstone_crds <- 
  possible_bx_companies$idCRD

Now that we have this let’s pull in all the manager brochure data. That will allow us to perform all sorts of interesting types NLP, sentiment, and text analysis.

blackstone_brochure_data <- 
  get_data_adv_managers_brochures(search_names = NULL, crd_ids = blackstone_crds, split_pages = T)

Entity Resolution Example

If you look at the table from before there is one name that sticks out as a possible difficult to resolve possible Blackstone entity, CT INVESTMENT MANAGEMENT CO., LLC. There a bunch of ways to try to resolve this possible relationship; fundManageR affords us a bunch of possible data driven ways to do this.

One cool feature of the pdftools package is we can extract a PDF file’s metadata, this package takes advantage of that functionality. In this example we will take advantage of the PDF file’s author metadata to see if the author of CT Investment Management’s filing appears in any the entities we know with absolute certainty are Blackstone entities.

ct_validation_test <- 
  blackstone_brochure_data %>% 
  dplyr::select(idCRD, nameEntityManager, nameAuthor) %>% 
  distinct() %>% 
  dplyr::filter(nameAuthor %>% str_detect('buergerm'))
ct_validation_test %>% 
  format_table()
idCRD nameEntityManager nameAuthor
135952 BLACKSTONE REAL ESTATE ADVISORS EUROPE L.P. buergerm
226598 BLACKSTONE PROPERTY ADVISORS L.P. buergerm
138208 BLACKSTONE REAL ESTATE ADVISORS V L.P. buergerm
120936 BLACKSTONE REAL ESTATE ADVISORS IV L.L.C. buergerm
160080 CT INVESTMENT MANAGEMENT CO., LLC buergerm
111871 BLACKSTONE REAL ESTATE ADVISORS INTERNATIONAL L.L.C. buergerm

Well well well, looks like buergerm has authored some of the PDFs that we KNOW are related to Blackstone, there for it is safe to say CT Investment Management is indeed a related party to Blackstone. Entity resolved!

Text Analysis Example – Extracting Fund Management Fee Tiers

Next let’s see if we can try to figure out the tier’s of management fees Blackstone charges its investors. To do this you will need the fantastic tidytext package developed by Julia Silge and David Robinson. If you don’t have the package you can install it from CRAN or via github.

The first step to achieving our stated goal is to tokenize each brochure’s sentences. We want to to try to determine whether a stated sentence may contain a reference to a management fee. We can use that using stringr and it’s str_detect function with a list of management fee hit words, the most important of which being a % sign. Once completed we will take those sentence, tokenize down to words and look for a number less than 5 knowing management fees are generally between 1% and 5%. After we do that we can look at identified sentences and see how we did!

library(tidytext) ## devtools::install_github(juliasilge/tidytext)
Tokenize and Parse Brochure Data
sentence_data <-
  blackstone_brochure_data %>%
  dplyr::select(idCRD, nameEntityManager, textBrochure) %>%
  unnest_tokens(sentence, textBrochure, token = "sentences") %>%
  mutate(idSentence = 1:n()) %>% 
  mutate(
    hasMGMTFeeReference = sentence %>% str_detect('[1-99]%')
  )
possible_fees <- 
  sentence_data %>% 
  dplyr::filter(hasMGMTFeeReference == T) %>% 
  dplyr::select(idCRD, nameEntityManager, sentence, idSentence) %>% 
  unnest_tokens(word, sentence, token = 'words') %>% 
  dplyr::filter(word %>% str_detect("^[1-9]")) %>% 
  mutate(word = word %>% as.numeric) %>% 
  dplyr::filter(word <= 5)
possible_fees %>% 
  formattable

Test our accuracy by printing these sentences.

possible_fees$idSentence %>%
  unique() %>%
  map_chr(function(x) {
    setence_df <- 
      sentence_data %>%
      dplyr::filter(idSentence == x) 
    fee_text <-
      setence_df %>%
      .$sentence %>% paste0('\n', ., '\n')
    setence_df$nameEntityManager %>% paste0('Manager: ',., '\n', fee_text) 
  }) %>% 
  paste0(collapse = '\n') %>% 
  message
Manager: BLACKSTONE ALTERNATIVE ASSET MANAGEMENT LP

item 5 - fees and compensation item 5 - fees and compensation asset-based advisory fees in general, baam charges an asset-based advisory fee of up to 2% of assets under management.

Manager: BLACKSTONE MEZZANINE ADVISORS LP

item 5: fees and compensation for its investment advisory services provided to funds, bx mezzanine or an affiliated entity may receive a management fee at an annual rate of up to 2% of either the net assets or invested capital, which may include capital borrowed from leverage providers, pursuant to the offering and/or governing documents, which are provided to prospective investors.

Manager: BLACKSTONE DEBT ADVISORS L.P.

item 5: fees and compensation for its investment advisory services provided to funds, bda or an affiliated entity may receive a management fee at an annual rate of up to 2% of either the net assets or invested capital, which may include capital borrowed from leverage providers, pursuant to the offering and/or governing documents, which are provided to prospective investors.

Manager: STRATEGIC PARTNERS FUND SOLUTIONS ADVISORS L.P.

management fees for its investment advisory services with respect to the funds, the registrant or an affiliated entity generally receives a management fee at an annual rate of up to 1.5% of the capital commitments or invested capital, as the case may be.

Manager: STRATEGIC PARTNERS FUND SOLUTIONS ADVISORS L.P.

performance-based allocations in addition to the management fees and other fees described in item 5 above, the registrant or one of the general partners generally receives a performance-based allocation of up to 12.5% (or up to 15% for investors that commit to a fund through a feeder vehicle established by a private bank to invest in the fund (a "private bank feeder fund")) of each fund's cumulative net profits, subject to a preferred return and customary clawback provisions.

Manager: BLACKSTONE REAL ESTATE ADVISORS EUROPE L.P.

dollars ("dollar partner"), and (b) 1.25% per annum if such investor has aggregate capital commitments equal to or greater than €100 million, in the case of a euro partner, and $100 million in the case of a dollar partner.

Manager: BLACKSTONE REAL ESTATE ADVISORS EUROPE L.P.

the management fee payable by a brep europe iii investor is: (a) 1.50% per annum if such investor has aggregate capital commitments of less than €200 million, in the case of a euro partner, and $200 million in the case of a dollar partner, (b) 1.25% per annum if such investor has aggregate capital commitments equal to or greater than €200 million, in the case of a euro partner, and $200 million in the case of a dollar partner, and (c) 1.25% per annum for investors with capital commitments to brep europe iii and blackstone real estate partners vi l.p. in excess of $950 million.

Manager: BLACKSTONE REAL ESTATE ADVISORS EUROPE L.P.

the management fee payable by a brep europe iv investor is: (a) 1.5% per annum if such investor has aggregate capital commitments of less than €200 million, in the case of a euro partner, and $250 million in the case of a dollar partner, (b) 1.25% per annum if such investor has aggregate capital commitments equal to or greater than €200 million, in the case of a euro partner, and $250 million in the case of a dollar partner and (c) 1.1% per annum if such investor has aggregate capital commitments equal to or greater than the euro equivalent of $500 million (as converted at the prevailing rate of exchange as of the date prior to such investor's admission date or as otherwise agreed to between such investor and the general partner), in the case of a euro partner, and $500 million in the case of a dollar partner.

Manager: BLACKSTONE REAL ESTATE ADVISORS EUROPE L.P.

irrespective of the capital commitment of such investor, the management fee with respect to a brep europe iv investor that is itself an investment vehicle formed for the purpose of aggregating unaffiliated investors for purposes of investing in brep europe iv is 1.5% per annum.

Manager: GSO CAPITAL PARTNERS LP

item 5: fees and compensation for its investment advisory services provided to funds, gso or an affiliated entity may receive a management fee at an annual rate of up to 2% of either the net assets or invested capital, which may include capital borrowed from leverage providers, pursuant to the offering and/or governing documents, which are provided to prospective investors.

Manager: BLACKSTONE REAL ESTATE ADVISORS V L.P.

in no event, however, will the management fee exceed 1.5% of such capital commitments or 1.5% of invested capital, as the case may be, of the fund.

Manager: BLACKSTONE STRATEGIC ALLIANCE ADVISORS L.L.C.

item 5 - fees and compensation item 5 - fees and compensation asset-based advisory fees in general, bsaa charges an asset-based advisory fee to the bsaa funds of up to 1% of assets under management, which fees scale-down to as low as 0.8% of assets under management based on the amount of capital committed to the bsaa funds by an investor.

Manager: BLACKSTONE STRATEGIC ALLIANCE ADVISORS L.L.C.

item 6 - performance-based fees item 6 - performance-based fees in addition to the asset-based advisory fees disclosed in item 5 - fees and compensation above, bsaa funds also pay (a) a performance fee up to 10% of the increase in net asset value of the investment in underlying managers and co-investments, subject to a loss carryforward provision (which fee may scale-down to as low as 8% based on the amount of capital committed to the bsaa funds by an underlying investor) and (b) up to 20% of the proceeds with respect to manager profit interests and manager buyout interests (which fee may scale- down to as low as 16% based on the amount of capital committed to the bsaa funds by an underlying investor, subject to a high water mark.

Manager: BLACKSTONE REAL ESTATE ADVISORS L.P.

the management fee payable by a brep vi investor is: (a) 1.50% per annum if such investor has aggregate capital commitments of less than $300 million and (b) 1.25% per annum if such investor has aggregate capital commitments equal to or greater than $300 million.

Manager: BLACKSTONE REAL ESTATE ADVISORS L.P.

the management fee payable by a brep vii investor is: (a) 1.50% per annum if such investor has aggregate capital commitments of less than $300 million, (b) 1.25% per annum if such investor has aggregate capital commitments equal to or greater than $300 million but less than $500 million, (c) 1.15% per annum if such investor has aggregate capital commitments equal to or greater than $500 million but less than $800 million and (d) 1.10% per annum if such investor has aggregate capital commitments equal to or greater than $800 million.

Manager: BLACKSTONE REAL ESTATE ADVISORS L.P.

the management fee payable by a brep viii investor is: (a) 1.50% per annum if such investor has aggregate capital commitments of less than $300 million, (b) 1.25% per annum if such investor has aggregate capital commitments equal to or greater than $300 million but less than $500 million and (c) 1.15% per annum if such investor has aggregate capital commitments equal to or greater than $500 million.

Manager: BLACKSTONE REAL ESTATE ADVISORS L.P.

the management fee payable by a brep asia investor is: (a) 1.50% per annum if such investor has aggregate capital commitments of less than $200 million, (b) 1.25% per annum if such investor has aggregate capital commitments equal to or greater than $200 million but less than $500 million and (c) 1.00% per annum if such investor has aggregate capital commitments equal to or greater than $500 million.

Manager: BLACKSTONE REAL ESTATE ADVISORS L.P.

the management fee payable by a brep europe v investor is: (a) 1.5% per annum if such investor has aggregate capital commitments of less than €280 million (or $300 million in the case of an investor making its capital commitment in u.s. dollars), and (b) 1.25% per annum if such investor has aggregate capital commitments equal to or greater than €280 million (or $300 million in the case of an investor making its capital commitment in u.s. dollars).

Manager: GSO / BLACKSTONE DEBT FUNDS MANAGEMENT LLC

item 5: fees and compensation for its investment advisory services provided to funds, dfm or an affiliated entity may receive a management fee at an annual rate of up to 2% of either the net assets or invested capital, which may include capital borrowed from leverage providers, pursuant to the offering and/or governing documents, which are provided to prospective investors.

Manager: BLACKSTONE REAL ESTATE SPECIAL SITUATIONS ADVISORS L.L.C.

item 5: fees and compensation management fees and performance fees pursuant to bressa's advisory agreements with each of the funds, bressa is entitled to compensation for its services in the form of an annual management fee (the "bressa management fee"), payable quarterly at a rate up to 1.5% per annum (varying between funds) of the fund's (i) net asset value, in the case of the funds that are structured as "hedge funds", or (ii) total invested capital, in the case of the funds that are structured as "private equity funds", determined and payable as of the first business day of each calendar quarter for the funds paying in advance.

Manager: BLACKSTONE CLEAN TECHNOLOGY ADVISORS L.L.C.

in no event, however, will the management fee exceed 1.75% per annum of such capital commitments or 1.75% per annum of invested capital, as the case may be, of the fund.

Manager: BLACKSTONE CLEAN TECHNOLOGY ADVISORS L.L.C.

bcta will credit against future management fees 66 2/3% of the management fees charged to date and only charge management fees on invested capital going forward.

Manager: GSO CAPITAL ADVISORS LLC

item 5: fees and compensation for its investment advisory services provided to funds, capital advisors or an affiliated entity may receive a management fee at an annual rate of up to 2% of either the net assets or invested capital, which may include capital borrowed from leverage providers, pursuant to the offering and/or governing documents, which are provided to prospective investors.

Manager: BLACKSTONE ALTERNATIVE SOLUTIONS L.L.C.

item 5 - fees and compensation item 5 - fees and compensation asset-based advisory fees in general, bas charges an asset-based advisory fee of up to 1.5% of assets under management.

Manager: BLACKSTONE ALTERNATIVE SOLUTIONS L.L.C.

item 6 - performance-based fees item 6 - performance-based fees in addition to the asset-based advisory fees disclosed in item 5 - fees and compensation above, bas funds generally will be charged a performance-based fee generally equal to 25% of net profits, inclusive of the underlying manager fee, subject to loss carryforward provisions bas's fees will be reduced by the full amount of any fees paid to bas underlying managers.

Manager: BLACKSTONE ALTERNATIVE INVESTMENT ADVISORS LLC

blackstone alternative investment advisors llc item 5 - fees and compensation item 5 -fees and compensation asset-based advisory fees in general, baia charges an asset-based advisory fee of up to 2% of assets under management.

Manager: BLACKSTONE ALTERNATIVE INVESTMENT ADVISORS LLC

blackstone alternative investment advisors llc item 6 - performance-based fees tem 6 - performance-based fees in addition to the asset-based advisory fees disclosed in item 5 - fees and compensation above, certain baia funds charge a performance-based fee of up to 15% of the positive performance of such baia funds, subject to a loss carryforward provision.

Manager: BLACKSTONE STRATEGIC CAPITAL ADVISORS, L.LC.

item 6 - performance-based fees item 6 - performance-based fees in addition to the asset-based advisory fees disclosed in item 5 - fees and compensation above, the general partner receives a carried interest distribution of up to 20% of the profits realized in respect of each bsca manager interest (or other permitted investment), after the bsca fund first makes distributions to investors in an amount equal to the investors' capital contributions in respect of each bsca manager interest together with an 8% preferred return on such amounts.

Manager: BLACKSTONE MULTI-ASSET ADVISORS L.L.C.

with respect to harrington reinsurance, pursuant to the harrington constituent documents, bmaa is entitled to compensation for its services to harrington partners in the form of an annual management fee, calculated and payable quarterly in arrears as of the last business day of each fiscal quarter, at a rate equal to 1.5% per annum of the net asset value of harrington partners.

Manager: BLACKSTONE SENFINA ADVISORS L.L.C.

item 5 - fees and compensation item 5 - fees and compensation asset-based advisory fees in general, bsa charges an asset-based advisory fee up to 2% per annum based on average assets under management.

Manager: BLACKSTONE PROPERTY ADVISORS L.P.

the bpa management fee payable by a bpp investor (a) with an aggregate capital commitment of less than $300 million, is 1.0% per annum of such investor's proportionate share of the net asset value of bpp, or (b) with an aggregate capital commitment equal to at least $300 million, is 0.85% per annum of such investor's proportionate share of the net asset value of bpp.

Manager: BLACKSTONE PROPERTY ADVISORS L.P.

the bpa management fee payable by a bapp investor is (a) 1.0% per annum of such investor's invested capital and (b) 0.5% per annum of such investor's unpaid capital commitments.

Manager: BLACKSTONE PROPERTY ADVISORS L.P.

the bpa management fee payable by a bppi investor (a) with an aggregate capital commitment of less than $500 million, is 1.0% per annum of such investor's proportionate share of the net asset value of bppi, or (b) with an aggregate capital commitment equal to at least $500 million, is 0.85% per annum of such investor's proportionate share of the net asset value of bppi.

Manager: BLACKSTONE PROPERTY ADVISORS L.P.

however, bpa management fees paid by an investor in the other core+ vehicles are generally determined based on a percentage ranging from 0.5% to 1% per annum of either an investor's invested capital or share of the net asset value of the relevant other core+ vehicle.

Manager: BLACKSTONE PROPERTY ADVISORS L.P.

management fees and performance fees payable to bx reit advisors pursuant to the breit advisory agreement, bx reit advisors is entitled to compensation for its services in the form of a management fee (the "breit management fee" and, together with the bpa management fee, the "management fee") of 1.25% of breit's net asset value per annum payable monthly.

Manager: BLACKSTONE PROPERTY ADVISORS L.P.

in addition to the breit management fees and other fees described in item 5 that are received by bx reit advisors, so long as the breit advisory agreement has not been terminated (including by means of non-renewal), the breit special limited partner will receive performance-based compensation equal to 12.5% of breit's total return (which for any period shall equal the sum of (i) all distributions accrued or paid (without duplication) on the breit operating partnership units outstanding at the end of the period since the beginning of the then- current calendar year plus (ii) the change in aggregate net asset value of such units since the beginning of the then-current calendar year, before giving effect to (x) changes resulting solely from the proceeds of issuances of breit operating partnership units, (y) any allocation/accrual to the performance participation interest and (z) applicable stockholder servicing fee expenses), subject to (a) a hurdle amount of 5% annualized internal rate of return on the net asset value of the breit operating partnership units, and (b) a "high water mark" so that the recoupment of past annual total return losses will offset the positive annual total return for purposes of the calculation of the breit special limited partner's performance participation.

This incredibly basic workflow looks like it produced a solid method for identifying and potentially extracting those management fees! There is so much more we could do with this, some of which I will explore in a blog post in the near future but from here let’s dig a little bit deeper into each of this entities using fundManageR's get_data_adv_managers_filings function.

Digging into an SEC Regulated Manager.

The most difficult feature to build was fundManageR to parse the SEC’s absolutely HORRENDUS online ADV forms. Fortunately this task, though extremely difficult, was doable. Parsing an ADV form, especially if you select a manager with a large amount of assets under management can be a little time consuming considering the size of the data being processed so please, be patient.

Instead of selecting all possible sections you can specify the specific sections you want the function to pull in, to see your options you can call the get_data_sec_adv_manager_sitemap function.

get_data_sec_adv_manager_sitemap() %>% 
  formattable()

In our Blackstone example the majority of our selected entites have billions of dollars in assets under mangement so acquiring data for every section and each entity will take some time, you can follow the functions progress in the messages. The get_data_adv_managers_filings returns a list of nested data frames by entity manager and section; to make the data easier to explore upon scraping the default action is to save each section into the user’s environment and we combine the brochure sections with a unique list of values describing the manager into a single data frame assigned to the environment as managerDescription, you can override this by setting flatten_tables to FALSE.

blackstone_entity_df <- 
  get_data_adv_managers_filings(
    search_names = NULL,
    crd_ids = blackstone_crds,
    all_sections = T,
    assign_to_enviornment = T
  )
idCRD: 136979 - Registration
idCRD: 136979 - DRPs
idCRD: 136979 - Identifying Information
idCRD: 136979 - SEC Reporting
idCRD: 136979 - Organization
idCRD: 136979 - Successions
idCRD: 136979 - Advisory Business Information
idCRD: 136979 - Other Business Activities
idCRD: 136979 - Financial Industry Affiliations
idCRD: 136979 - Private Fund Reporting
Parsed BLACKSTONE MANAGEMENT PARTNERS L.L.C. they have 10 fund vehicles and $56,528,584,012.00 in private fund AUM
idCRD: 136979 - Participation or Interest in Client Transactions
idCRD: 136979 - Custody
idCRD: 136979 - Control Persons
idCRD: 136979 - Disclosure Information
idCRD: 136979 - Direct Manager Owners
idCRD: 136979 - Indirect Manager Owners
idCRD: 136979 - Other Manager Information
idCRD: 136979 - Manager Signatories
Parsed BLACKSTONE MANAGEMENT PARTNERS L.L.C.
They have $62,950,761,426 in Total Assets Under Management
idCRD: 107580 - Registration
idCRD: 107580 - DRPs
idCRD: 107580 - Identifying Information
idCRD: 107580 - SEC Reporting
idCRD: 107580 - Organization
idCRD: 107580 - Successions
idCRD: 107580 - Advisory Business Information
idCRD: 107580 - Other Business Activities
idCRD: 107580 - Financial Industry Affiliations
idCRD: 107580 - Private Fund Reporting
Parsed BLACKSTONE ALTERNATIVE ASSET MANAGEMENT LP they have 141 fund vehicles and $53,007,930,592.00 in private fund AUM
idCRD: 107580 - Participation or Interest in Client Transactions
idCRD: 107580 - Custody
idCRD: 107580 - Control Persons
idCRD: 107580 - Disclosure Information
idCRD: 107580 - Direct Manager Owners
idCRD: 107580 - Indirect Manager Owners
idCRD: 107580 - Other Manager Information
idCRD: 107580 - Manager Signatories
Parsed BLACKSTONE ALTERNATIVE ASSET MANAGEMENT LP
They have $59,349,863,824 in Total Assets Under Management
idCRD: 142979 - Registration
idCRD: 142979 - DRPs
idCRD: 142979 - Identifying Information
idCRD: 142979 - SEC Reporting
idCRD: 142979 - Organization
idCRD: 142979 - Successions
idCRD: 142979 - Advisory Business Information
idCRD: 142979 - Other Business Activities
idCRD: 142979 - Financial Industry Affiliations
idCRD: 142979 - Private Fund Reporting
Parsed BLACKSTONE REAL ESTATE ADVISORS L.P. they have 33 fund vehicles and $15,746,255,200.00 in private fund AUM
idCRD: 142979 - Participation or Interest in Client Transactions
idCRD: 142979 - Custody
idCRD: 142979 - Control Persons
idCRD: 142979 - Disclosure Information
idCRD: 142979 - Direct Manager Owners
idCRD: 142979 - Indirect Manager Owners
idCRD: 142979 - Other Manager Information
idCRD: 142979 - Manager Signatories
Parsed BLACKSTONE REAL ESTATE ADVISORS L.P.
They have $56,404,540,029 in Total Assets Under Management
idCRD: 137519 - Registration
idCRD: 137519 - DRPs
idCRD: 137519 - Identifying Information
idCRD: 137519 - SEC Reporting
idCRD: 137519 - Organization
idCRD: 137519 - Successions
idCRD: 137519 - Advisory Business Information
idCRD: 137519 - Other Business Activities
idCRD: 137519 - Financial Industry Affiliations
idCRD: 137519 - Private Fund Reporting
Parsed GSO CAPITAL PARTNERS LP they have 46 fund vehicles and $33,210,412,218.00 in private fund AUM
idCRD: 137519 - Participation or Interest in Client Transactions
idCRD: 137519 - Custody
idCRD: 137519 - Control Persons
idCRD: 137519 - Disclosure Information
idCRD: 137519 - Direct Manager Owners
idCRD: 137519 - Indirect Manager Owners
idCRD: 137519 - Other Manager Information
idCRD: 137519 - Manager Signatories
Parsed GSO CAPITAL PARTNERS LP
They have $38,332,219,304 in Total Assets Under Management
idCRD: 144537 - Registration
idCRD: 144537 - DRPs
idCRD: 144537 - Identifying Information
idCRD: 144537 - SEC Reporting
idCRD: 144537 - Organization
idCRD: 144537 - Successions
idCRD: 144537 - Advisory Business Information
idCRD: 144537 - Other Business Activities
idCRD: 144537 - Financial Industry Affiliations
idCRD: 144537 - Private Fund Reporting
Parsed GSO / BLACKSTONE DEBT FUNDS MANAGEMENT LLC they have 66 fund vehicles and $23,178,956,912.00 in private fund AUM
idCRD: 144537 - Participation or Interest in Client Transactions
idCRD: 144537 - Custody
idCRD: 144537 - Control Persons
idCRD: 144537 - Disclosure Information
idCRD: 144537 - Direct Manager Owners
idCRD: 144537 - Indirect Manager Owners
idCRD: 144537 - Other Manager Information

Explore the Results

Manager Description

Contains general information about the manager from all sections with distinct data.

managerDescription # General Information

DRPs and Regulatory CRD Infractions

Contains information about any violations by the manager or it’s employees. These includes any violation levied by a government or self-policing regulatory body.

managerRegulatoryCRD

Record Locations

This section discloses the where the manager stores its books and records.

managerRecordLocations

Other disclosures

This section discloses any other relevent information the manager wishes to communicate to the SEC including certain details regarding data in the filing.

managerOtherDisclosures

Private Fund Reporting

This section includes information about the underlying fund vehicles of a registered manager. This may include information about the fund size, number of invesors, types of investors, distribution of ownership, details about third parties that service the fund [accountants, marketing agents, custodians, prime brokers, ect..] and any information about related parties to the fund [General Partner, Managing Member, ect..]

section7BPrivateFundReporting # General Information

The private fund section is chocked full of great visualizable data, and to demonstrate we are going to crate a treemap visualization care of Kenton Russell’s fantistic d3treeR package that will explore Blackstone’s assets under management by fund type, fund manager, fund vehicle name, and number of fund investors.

library(treemap) # install.packages('treemap')
library(d3treeR) # devtools::install_github("timelyportfolio/d3treeR")
section7BPrivateFundReporting %>% 
  mutate(nameFund = nameFund %>% str_replace_all('\\ ','\n')) %>% 
  treemap(
    index = c("typeFund",'nameEntityManager', "nameFund"),
    vSize = "amountFundGrossAUM",
    vColor = "countFundOwners",
    palette="RdYlGn",
    fontsize.labels = 8,
    type = "value"
  ) %>% 
  d3tree2(rootname = "Blackstone Vehicles")

Schedule A - Direct Owners

This section includes information about the individuals and entities that own the registering entity, this includes ranged disclosures on percentage of ownership. This information, along with Schedule B, are ideal uses for Network Analysis

Schedule B - Indirect Owners

This section includes information on the owners of any Schedule A owner that is an entity

sectionScheduleB # Indirect Owners

Other Office Locations

This section includes information on all secondary offices, when applicable, related to the filing manager.

Control Entities

This section includes information on control entities for a filing manager, this essentially means is the manager controlled by a public entity, a good example being Blackstone which is a public company.

managerWebsite # Websites

Control Persons

This section includes information on control persons for any filing manager that is related to a public entitiy.

managerControlPersons # Websites

Website Information

This section includes any website relatd to the filing manager.

managerWebsite # Websites
LS0tCnRpdGxlOiAiZnVuZE1hbmFnZVIgQURWIEZ1bmN0aW9uIEV4YW1wbGVzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gRGVtb25zdHJhdGluZyBzb21lIG9mIFtmdW5kTWFuYWdlUl0oaHR0cHM6Ly9naXRodWIuY29tL2FicmVzbGVyL2Z1bmRNYW5hZ2VSKSdzIFtBRFZdKGh0dHA6Ly93d3cuaW52ZXN0b3BlZGlhLmNvbS90ZXJtcy9hL2FkdmZvcm0uYXNwKSBkYXRhIGFjcXVpc2l0aW9uIGZ1bmN0aW9ucy4KCgojIyBTZXR1cAoKYGBge3IgcmVzdWx0cz0naGlkZScsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CnBhY2thZ2VzIDwtIGMoJ2Z1bmRNYW5hZ2VSJywgJ2RwbHlyJywgJ3RpZHlyJywgJ3B1cnJyJywgJ2Zvcm1hdHRhYmxlJywgJ3N0cmluZ3InKQpsYXBwbHkocGFja2FnZXMsIGxpYnJhcnksIGNoYXJhY3Rlci5vbmx5ID0gVCkKYGBgCgojIyMgRXhwbG9yZSB0aGUgbW9zdCByZWNlY2VudCBBRFYgc3VtbWFyeSBkYXRhLgpIZXJlIHdpbGwgdXNlIHRoZSBgZ2V0X2RhdGFfYWR2X21hbmFnZXJzX2N1cnJlbnRfcGVyaW9kX3N1bW1hcnlgIGZ1bmN0aW9uIHRvIGRvIHNvbWUgcXVpY2sgZXhwbG9yYXRpb25zIG9mIEFEViBmaWxpbmcgaW52ZXN0bWVudCBtYW5hZ2Vycy4KCgpgYGB7ciBtb3N0X3JlY2VudH0KbW9zdF9yZWNlbnRfZGF0YSA8LSAKICBnZXRfZGF0YV9hZHZfbWFuYWdlcnNfY3VycmVudF9wZXJpb2Rfc3VtbWFyeShmaWxlX2RpcmVjdG9yeSA9ICdEZXNrdG9wL2Fkdl90ZXN0JykKCmBgYAoKIyMjIyBFeHBsb3JlIHRoZSB0b3AgNSBtYW5hZ2VycyBieSBBVU0gCgpgYGB7ciB0b3BfNV90YWJsZX0KbW9zdF9yZWNlbnRfZGF0YSAlPiUgCiAgaGVhZCAlPiUgCiAgZm9ybWF0dGFibGUoKQpgYGAKCiMjIyMgV2hpY2ggc3RhdGVzIGhhdmUgdGhlIGhpZ2hlc3QgY29uY2VudHJhdGlvbiBvZiBpbnZlc3RtZW50IG1hbmFnZXJzPwoKYGBge3IgcmVjZW50X3N1bW1hcnlfc3RhdGV9Cm1vc3RfcmVjZW50X2RhdGEgJT4lCiAgZ3JvdXBfYnkoc3RhdGVPZmZpY2VQcmltYXJ5KSAlPiUKICBzdW1tYXJpc2UoCiAgYW1vdW50QVVNVG90YWwgPSBzdW0oYW1vdW50QVVNVG90YWwsIG5hLnJtID0gVCkgJT4lIGN1cnJlbmN5KGRpZ2l0cyA9IDApLAogIGNvdW50RW1wbG95ZWVzVG90YWwgPSBzdW0oY291bnRFbXBsb3llZXNUb3RhbCwgbmEucm0gPSBUKSAlPiUgY29tbWEoZGlnaXRzID0gMCksCiAgY291bnRDb21wYW5pZXMgPSBuKCkgJT4lIGNvbW1hKGRpZ2l0cyA9IDApCiAgKSAlPiUgCiAgdW5ncm91cCAlPiUgCiAgYXJyYW5nZShkZXNjKGFtb3VudEFVTVRvdGFsKSkgJT4lIAogIGZvcm1hdHRhYmxlKCkKCmBgYAoKIyMjIExldHMgdXNlIHRoaXMgZGF0YSB0byBmaW5kIG91dCBkZXRhaWxlZCBpbmZvcm1hdGlvbiB0byBleHBsb3JlIGFib3V0IGFuIGludmVzdG1lbnQgbWFuYWdlcgoKRm9yIHRoaXMgZXhhbXBsZSB3ZSB3aWxsIHRyeSB0byBmaW5kIG91dCBpbmZvcm1hdGlvbiBhYm91dCBlbnRpdGllcyByZWxhdGVkIHRvIFtUaGUgQmxhY2tzdG9uZSBHcm91cF0oKSwgd2UgY2FuIGV4cGFuZCB0aGlzIHNlYXJjaCBmb3IgZW50aXRpZXMgdGhhdCBNQVkgYmUgcmVsYXRlZCB0byBCbGFja3N0b25lIGJ5IHRha2luZyBhZHZhbnRhZ2Ugb2YgdGhlIGZhY3Qgd2Uga25vdyBCbGFja3N0b25lJ3Mgb2ZmaWNlIGlzIGxvY2F0ZWQgYXQgMzQ1IFBhcmsgQXZlbnVlIGluIE5ldyBZb3JrLgoKYGBge3Igc2VhcmNoX2Zvcl9ieH0KcG9zc2libGVfYnhfY29tcGFuaWVzIDwtIAogIG1vc3RfcmVjZW50X2RhdGEgJT4lCiAgZHBseXI6OmZpbHRlcigKICAgIG5hbWVFbnRpdHlNYW5hZ2VyICU+JSBzdHJfZGV0ZWN0KCJCTEFDS1NUT05FIFJFQUx8QlJFUHxHU08iKSB8CiAgICAgIGxvY2F0aW9uT2ZmaWNlUHJpbWFyeSAlPiUgc3RyX2RldGVjdCgiXjM0NSBQQVJLIEFWRU5VRSIpIHwKICAgICAgdXJsTWFuYWdlciAlPiUgc3RyX2RldGVjdCgnYmxhY2tzdG9uZS5jb20nKQogICkgJT4lCiAgZHBseXI6OnNlbGVjdCgKICAgIGlkQ1JELAogICAgbmFtZUVudGl0eU1hbmFnZXIsCiAgICB1cmxNYW5hZ2VyLAogICAgbG9jYXRpb25PZmZpY2VQcmltYXJ5LAogICAgdXJsTWFuYWdlciwKICAgIGFtb3VudEFVTVRvdGFsCiAgKQoKYGBgCgpgYGB7ciBwb3NzaWJsZV9ieF90YWJsZX0KcG9zc2libGVfYnhfY29tcGFuaWVzICU+JSAKICBmb3JtYXR0YWJsZSgpCmBgYAoKU29tZSBvZiB0aGVzZSBlbnRpdGllcyB3ZSBrbm93IGFyZSBub3QgcmVsYXRlZCB0byBCbGFja3N0b25lIHNvIGxldCdzIGV4Y2x1ZGUgdGhlbSwgb3RoZXJzIGhhdmUgbm8gc3RhdGVkIEFVTSBzbyB3ZSBjYW4gZXhjbHVkZSB0aG9zZSBhcyB3ZWxsLgoKYGBge3IgcG9zc2libGVfYnh9CnBvc3NpYmxlX2J4X2NvbXBhbmllcyA8LSAKICBwb3NzaWJsZV9ieF9jb21wYW5pZXMgJT4lIAogIGRwbHlyOjpmaWx0ZXIoIW5hbWVFbnRpdHlNYW5hZ2VyICU+JSBzdHJfZGV0ZWN0KCdMQURERVIgQ0FQSVRBTCBBU1NFVCBNQU5BR0VNRU5UIExMQ3xERVVUU0NIRXxEQlh8V0FGUkF8REIgJykpICU+JSAKICBkcGx5cjo6ZmlsdGVyKGFtb3VudEFVTVRvdGFsID4gMCkKCmBgYAoKYGBge3IgYnhfdGFibGV9CnBvc3NpYmxlX2J4X2NvbXBhbmllcyAlPiUgCiAgZm9ybWF0dGFibGUoKQpgYGAKCiMjIyBEZXRhaWxlZCBBRFYgRnVuY3Rpb24gRXhwbG9yYXRpb24KCiMjIyMgQnJvY2h1cmUgRCBhdGEKQmVmb3JlIGRpdmluZyBpbnRvIGhvdyB0byB1c2UgdGhlc2UgZnVuY3Rpb25zIGxldHMgd2hpdHRsZSBkb3duIG91ciBkYXRhIHRvIGEgdmVjdG9yIG9mIENSRHMgd2UgY2FuIGZlZWQgaW50byBvdXIgZnVuY3Rpb25zLgoKYGBge3IgYnhfY3Jkc30KYmxhY2tzdG9uZV9jcmRzIDwtIAogIHBvc3NpYmxlX2J4X2NvbXBhbmllcyRpZENSRApgYGAKCk5vdyB0aGF0IHdlIGhhdmUgdGhpcyBsZXQncyBwdWxsIGluIGFsbCB0aGUgbWFuYWdlciBicm9jaHVyZSBkYXRhLiAgVGhhdCB3aWxsIGFsbG93IHVzIHRvIHBlcmZvcm0gYWxsIHNvcnRzIG9mIGludGVyZXN0aW5nIHR5cGVzIE5MUCwgc2VudGltZW50LCBhbmQgdGV4dCBhbmFseXNpcy4KCmBgYHtyIGJ4X2Jyb2NodXJlX3NlYXJjaH0KYmxhY2tzdG9uZV9icm9jaHVyZV9kYXRhIDwtIAogIGdldF9kYXRhX2Fkdl9tYW5hZ2Vyc19icm9jaHVyZXMoc2VhcmNoX25hbWVzID0gTlVMTCwgY3JkX2lkcyA9IGJsYWNrc3RvbmVfY3Jkcywgc3BsaXRfcGFnZXMgPSBUKQoKYGBgCgojIyMjIEVudGl0eSBSZXNvbHV0aW9uIEV4YW1wbGUKCklmIHlvdSBsb29rIGF0IHRoZSB0YWJsZSBmcm9tIGJlZm9yZSB0aGVyZSBpcyBvbmUgbmFtZSB0aGF0IHN0aWNrcyBvdXQgYXMgYSBwb3NzaWJsZSBkaWZmaWN1bHQgdG8gcmVzb2x2ZSBwb3NzaWJsZSBCbGFja3N0b25lIGVudGl0eSwgYENUIElOVkVTVE1FTlQgTUFOQUdFTUVOVCBDTy4sIExMQ2AuICBUaGVyZSBhIGJ1bmNoIG9mIHdheXMgdG8gdHJ5IHRvIHJlc29sdmUgdGhpcyBwb3NzaWJsZSByZWxhdGlvbnNoaXA7IGBmdW5kTWFuYWdlUmAgYWZmb3JkcyB1cyBhIGJ1bmNoIG9mIHBvc3NpYmxlIGRhdGEgZHJpdmVuIHdheXMgdG8gZG8gdGhpcy4gIAoKT25lIGNvb2wgZmVhdHVyZSBvZiB0aGUgW3BkZnRvb2xzXShodHRwczovL2dpdGh1Yi5jb20vcm9wZW5zY2kvcGRmdG9vbHMpIHBhY2thZ2UgaXMgd2UgY2FuIGV4dHJhY3QgYSBQREYgZmlsZSdzIG1ldGFkYXRhLCB0aGlzIHBhY2thZ2UgdGFrZXMgYWR2YW50YWdlIG9mIHRoYXQgZnVuY3Rpb25hbGl0eS4gIEluIHRoaXMgZXhhbXBsZSB3ZSB3aWxsIHRha2UgYWR2YW50YWdlIG9mIHRoZSBQREYgZmlsZSdzIGF1dGhvciBtZXRhZGF0YSB0byBzZWUgaWYgdGhlIGF1dGhvciBvZiBDVCBJbnZlc3RtZW50IE1hbmFnZW1lbnQncyBmaWxpbmcgYXBwZWFycyBpbiBhbnkgdGhlIGVudGl0aWVzIHdlIGtub3cgd2l0aCBhYnNvbHV0ZSBjZXJ0YWludHkgYXJlIEJsYWNrc3RvbmUgZW50aXRpZXMuCgpgYGB7ciBjdF9hdXRob3J9CmN0X3ZhbGlkYXRpb25fdGVzdCA8LSAKICBibGFja3N0b25lX2Jyb2NodXJlX2RhdGEgJT4lIAogIGRwbHlyOjpzZWxlY3QoaWRDUkQsIG5hbWVFbnRpdHlNYW5hZ2VyLCBuYW1lQXV0aG9yKSAlPiUgCiAgZGlzdGluY3QoKSAlPiUgCiAgZHBseXI6OmZpbHRlcihuYW1lQXV0aG9yICU+JSBzdHJfZGV0ZWN0KCdidWVyZ2VybScpKQpgYGAKCmBgYHtyIGNhcGl0YWxfdHJ1c3RfdmFsaWRhdGlvbn0KY3RfdmFsaWRhdGlvbl90ZXN0ICU+JSAKICBmb3JtYXRfdGFibGUoKQpgYGAKCldlbGwgd2VsbCB3ZWxsLCBsb29rcyBsaWtlIGBidWVyZ2VybWAgKmhhcyogYXV0aG9yZWQgc29tZSBvZiB0aGUgUERGcyB0aGF0IHdlIEtOT1cgYXJlIHJlbGF0ZWQgdG8gQmxhY2tzdG9uZSwgdGhlcmUgZm9yIGl0IGlzIHNhZmUgdG8gc2F5IENUIEludmVzdG1lbnQgTWFuYWdlbWVudCBpcyBpbmRlZWQgYSByZWxhdGVkIHBhcnR5IHRvIEJsYWNrc3RvbmUuIEVudGl0eSByZXNvbHZlZCEKCiMjIyMgVGV4dCBBbmFseXNpcyBFeGFtcGxlIC0tIEV4dHJhY3RpbmcgRnVuZCBNYW5hZ2VtZW50IEZlZSBUaWVycwoKTmV4dCBsZXQncyBzZWUgaWYgd2UgY2FuIHRyeSB0byBmaWd1cmUgb3V0IHRoZSB0aWVyJ3Mgb2YgbWFuYWdlbWVudCBmZWVzIEJsYWNrc3RvbmUgY2hhcmdlcyBpdHMgaW52ZXN0b3JzLiAgVG8gZG8gdGhpcyB5b3Ugd2lsbCBuZWVkIHRoZSBmYW50YXN0aWMgW3RpZHl0ZXh0XShodHRwczovL2dpdGh1Yi5jb20vanVsaWFzaWxnZS90aWR5dGV4dCkgcGFja2FnZSBkZXZlbG9wZWQgYnkgW0p1bGlhIFNpbGdlXShodHRwczovL3R3aXR0ZXIuY29tL2p1bGlhc2lsZ2UpIGFuZCBbRGF2aWQgUm9iaW5zb25dKGh0dHBzOi8vdHdpdHRlci5jb20vZHJvYikuICBJZiB5b3UgZG9uJ3QgaGF2ZSB0aGUgcGFja2FnZSB5b3UgY2FuIGluc3RhbGwgaXQgZnJvbSBDUkFOIG9yIHZpYSBnaXRodWIuCgpUaGUgZmlyc3Qgc3RlcCB0byBhY2hpZXZpbmcgb3VyIHN0YXRlZCBnb2FsIGlzIHRvIHRva2VuaXplIGVhY2ggYnJvY2h1cmUncyBzZW50ZW5jZXMuICBXZSB3YW50IHRvIHRvIHRyeSB0byBkZXRlcm1pbmUgd2hldGhlciBhIHN0YXRlZCBzZW50ZW5jZSBtYXkgY29udGFpbiBhIHJlZmVyZW5jZSB0byBhIG1hbmFnZW1lbnQgZmVlLiAgV2UgY2FuIHVzZSB0aGF0IHVzaW5nIGBzdHJpbmdyYCBhbmQgaXQncyBgc3RyX2RldGVjdGAgZnVuY3Rpb24gd2l0aCBhIGxpc3Qgb2YgbWFuYWdlbWVudCBmZWUgaGl0IHdvcmRzLCB0aGUgbW9zdCBpbXBvcnRhbnQgb2Ygd2hpY2ggYmVpbmcgYSAlIHNpZ24uICBPbmNlIGNvbXBsZXRlZCB3ZSB3aWxsIHRha2UgdGhvc2Ugc2VudGVuY2UsIHRva2VuaXplIGRvd24gdG8gd29yZHMgYW5kIGxvb2sgZm9yIGEgbnVtYmVyIGxlc3MgdGhhbiA1IGtub3dpbmcgbWFuYWdlbWVudCBmZWVzIGFyZSBnZW5lcmFsbHkgYmV0d2VlbiAxJSBhbmQgNSUuICBBZnRlciB3ZSBkbyB0aGF0IHdlIGNhbiBsb29rIGF0IGlkZW50aWZpZWQgc2VudGVuY2VzIGFuZCBzZWUgaG93IHdlIGRpZCEKCmBgYHtyIHJlc3VsdHM9J2hpZGUnLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpsaWJyYXJ5KHRpZHl0ZXh0KSAjIyBkZXZ0b29sczo6aW5zdGFsbF9naXRodWIoanVsaWFzaWxnZS90aWR5dGV4dCkKYGBgCgojIyMjIyBUb2tlbml6ZSBhbmQgUGFyc2UgQnJvY2h1cmUgRGF0YQoKYGBge3IgdG9rZW5pemV9CnNlbnRlbmNlX2RhdGEgPC0KICBibGFja3N0b25lX2Jyb2NodXJlX2RhdGEgJT4lCiAgZHBseXI6OnNlbGVjdChpZENSRCwgbmFtZUVudGl0eU1hbmFnZXIsIHRleHRCcm9jaHVyZSkgJT4lCiAgdW5uZXN0X3Rva2VucyhzZW50ZW5jZSwgdGV4dEJyb2NodXJlLCB0b2tlbiA9ICJzZW50ZW5jZXMiKSAlPiUKICBtdXRhdGUoaWRTZW50ZW5jZSA9IDE6bigpKSAlPiUgCiAgbXV0YXRlKAogICAgaGFzTUdNVEZlZVJlZmVyZW5jZSA9IHNlbnRlbmNlICU+JSBzdHJfZGV0ZWN0KCdbMS05OV0lJykKICApCgpwb3NzaWJsZV9mZWVzIDwtIAogIHNlbnRlbmNlX2RhdGEgJT4lIAogIGRwbHlyOjpmaWx0ZXIoaGFzTUdNVEZlZVJlZmVyZW5jZSA9PSBUKSAlPiUgCiAgZHBseXI6OnNlbGVjdChpZENSRCwgbmFtZUVudGl0eU1hbmFnZXIsIHNlbnRlbmNlLCBpZFNlbnRlbmNlKSAlPiUgCiAgdW5uZXN0X3Rva2Vucyh3b3JkLCBzZW50ZW5jZSwgdG9rZW4gPSAnd29yZHMnKSAlPiUgCiAgZHBseXI6OmZpbHRlcih3b3JkICU+JSBzdHJfZGV0ZWN0KCJeWzEtOV0iKSkgJT4lIAogIG11dGF0ZSh3b3JkID0gd29yZCAlPiUgYXMubnVtZXJpYykgJT4lIAogIGRwbHlyOjpmaWx0ZXIod29yZCA8PSA1KQpgYGAKCmBgYHtyIHBvc3NpYmxlX2ZlZV9sb2NhdGlvbnN9CnBvc3NpYmxlX2ZlZXMgJT4lIAogIGZvcm1hdHRhYmxlCmBgYAoKIyMjIyBUZXN0IG91ciBhY2N1cmFjeSBieSBwcmludGluZyB0aGVzZSBzZW50ZW5jZXMuCgpgYGB7ciBmZWVfcmVzdWx0c30KcG9zc2libGVfZmVlcyRpZFNlbnRlbmNlICU+JQogIHVuaXF1ZSgpICU+JQogIG1hcF9jaHIoZnVuY3Rpb24oeCkgewogICAgc2V0ZW5jZV9kZiA8LSAKICAgICAgc2VudGVuY2VfZGF0YSAlPiUKICAgICAgZHBseXI6OmZpbHRlcihpZFNlbnRlbmNlID09IHgpIAogICAgZmVlX3RleHQgPC0KICAgICAgc2V0ZW5jZV9kZiAlPiUKICAgICAgLiRzZW50ZW5jZSAlPiUgcGFzdGUwKCdcbicsIC4sICdcbicpCiAgICBzZXRlbmNlX2RmJG5hbWVFbnRpdHlNYW5hZ2VyICU+JSBwYXN0ZTAoJ01hbmFnZXI6ICcsLiwgJ1xuJywgZmVlX3RleHQpIAogIH0pICU+JSAKICBwYXN0ZTAoY29sbGFwc2UgPSAnXG4nKSAlPiUgCiAgbWVzc2FnZQpgYGAKClRoaXMgaW5jcmVkaWJseSBiYXNpYyB3b3JrZmxvdyBsb29rcyBsaWtlIGl0IHByb2R1Y2VkIGEgc29saWQgbWV0aG9kIGZvciBpZGVudGlmeWluZyBhbmQgcG90ZW50aWFsbHkgZXh0cmFjdGluZyB0aG9zZSBtYW5hZ2VtZW50IGZlZXMhICBUaGVyZSBpcyBzbyBtdWNoIG1vcmUgd2UgY291bGQgZG8gd2l0aCB0aGlzLCBzb21lIG9mIHdoaWNoIEkgd2lsbCBleHBsb3JlIGluIGEgW2Jsb2cgcG9zdF0oKSBpbiB0aGUgbmVhciBmdXR1cmUgYnV0IGZyb20gaGVyZSBsZXQncyBkaWcgYSBsaXR0bGUgYml0IGRlZXBlciBpbnRvIGVhY2ggb2YgdGhpcyBlbnRpdGllcyB1c2luZyBgZnVuZE1hbmFnZVInc2AgYGdldF9kYXRhX2Fkdl9tYW5hZ2Vyc19maWxpbmdzYCBmdW5jdGlvbi4KCiMjIyMgRGlnZ2luZyBpbnRvIGFuIFNFQyBSZWd1bGF0ZWQgTWFuYWdlci4KVGhlIG1vc3QgZGlmZmljdWx0IGZlYXR1cmUgdG8gYnVpbGQgd2FzIGBmdW5kTWFuYWdlUmAgdG8gcGFyc2UgdGhlIFNFQydzIGFic29sdXRlbHkgSE9SUkVORFVTIG9ubGluZSBBRFYgZm9ybXMuICBGb3J0dW5hdGVseSB0aGlzIHRhc2ssIHRob3VnaCBleHRyZW1lbHkgZGlmZmljdWx0LCB3YXMgZG9hYmxlLiAgUGFyc2luZyBhbiBBRFYgZm9ybSwgZXNwZWNpYWxseSBpZiB5b3Ugc2VsZWN0IGEgbWFuYWdlciB3aXRoIGEgbGFyZ2UgYW1vdW50IG9mIGFzc2V0cyB1bmRlciBtYW5hZ2VtZW50IGNhbiBiZSBhIGxpdHRsZSB0aW1lIGNvbnN1bWluZyBjb25zaWRlcmluZyB0aGUgc2l6ZSBvZiB0aGUgZGF0YSBiZWluZyBwcm9jZXNzZWQgc28gcGxlYXNlLCBiZSBwYXRpZW50LgoKSW5zdGVhZCBvZiBzZWxlY3RpbmcgYWxsIHBvc3NpYmxlIHNlY3Rpb25zIHlvdSBjYW4gc3BlY2lmeSB0aGUgc3BlY2lmaWMgc2VjdGlvbnMgeW91IHdhbnQgdGhlIGZ1bmN0aW9uIHRvIHB1bGwgaW4sIHRvIHNlZSB5b3VyIG9wdGlvbnMgeW91IGNhbiBjYWxsIHRoZSBgZ2V0X2RhdGFfc2VjX2Fkdl9tYW5hZ2VyX3NpdGVtYXBgIGZ1bmN0aW9uLgpgYGB7ciBhZHZfc2l0ZV9tYXB9CmdldF9kYXRhX3NlY19hZHZfbWFuYWdlcl9zaXRlbWFwKCkgJT4lIAogIGZvcm1hdHRhYmxlKCkKYGBgCgoKSW4gb3VyIEJsYWNrc3RvbmUgZXhhbXBsZSB0aGUgbWFqb3JpdHkgb2Ygb3VyIHNlbGVjdGVkIGVudGl0ZXMgaGF2ZSBiaWxsaW9ucyBvZiBkb2xsYXJzIGluIGFzc2V0cyB1bmRlciBtYW5nZW1lbnQgc28gYWNxdWlyaW5nIGRhdGEgZm9yIGV2ZXJ5IHNlY3Rpb24gYW5kIGVhY2ggZW50aXR5IHdpbGwgdGFrZSBzb21lIHRpbWUsIHlvdSBjYW4gZm9sbG93IHRoZSBmdW5jdGlvbnMgcHJvZ3Jlc3MgaW4gdGhlIG1lc3NhZ2VzLiAgVGhlIGBnZXRfZGF0YV9hZHZfbWFuYWdlcnNfZmlsaW5nc2AgcmV0dXJucyBhIGxpc3Qgb2YgbmVzdGVkIGRhdGEgZnJhbWVzIGJ5IGVudGl0eSBtYW5hZ2VyIGFuZCBzZWN0aW9uOyB0byBtYWtlIHRoZSBkYXRhIGVhc2llciB0byBleHBsb3JlIHVwb24gc2NyYXBpbmcgdGhlIGRlZmF1bHQgYWN0aW9uIGlzIHRvIHNhdmUgZWFjaCBzZWN0aW9uIGludG8gdGhlIHVzZXIncyBlbnZpcm9ubWVudCBhbmQgd2UgY29tYmluZSB0aGUgYnJvY2h1cmUgc2VjdGlvbnMgd2l0aCBhIHVuaXF1ZSBsaXN0IG9mIHZhbHVlcyBkZXNjcmliaW5nIHRoZSBtYW5hZ2VyIGludG8gYSBzaW5nbGUgZGF0YSBmcmFtZSBhc3NpZ25lZCB0byB0aGUgZW52aXJvbm1lbnQgYXMgYG1hbmFnZXJEZXNjcmlwdGlvbmAsIHlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBieSBzZXR0aW5nIGZsYXR0ZW5fdGFibGVzIHRvIGBGQUxTRWAuCgpgYGB7ciBtYW5hZ2VyX2RldGFpbF9zZWFyY2h9CmJsYWNrc3RvbmVfZW50aXR5X2RmIDwtIAogIGdldF9kYXRhX2Fkdl9tYW5hZ2Vyc19maWxpbmdzKAogICAgc2VhcmNoX25hbWVzID0gTlVMTCwKICAgIGNyZF9pZHMgPSBibGFja3N0b25lX2NyZHMsCiAgICBhbGxfc2VjdGlvbnMgPSBULAogICAgYXNzaWduX3RvX2Vudmlvcm5tZW50ID0gVAogICkKYGBgCgojIyMgRXhwbG9yZSB0aGUgUmVzdWx0cwoKIyMjIyBNYW5hZ2VyIERlc2NyaXB0aW9uCkNvbnRhaW5zIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1hbmFnZXIgZnJvbSBhbGwgc2VjdGlvbnMgd2l0aCBkaXN0aW5jdCBkYXRhLgoKYGBge3IgbWFuYWdlcl9kZXNjcmlwdGlvbn0KbWFuYWdlckRlc2NyaXB0aW9uIApgYGAKCiMjIyMgRFJQcyBhbmQgUmVndWxhdG9yeSBDUkQgSW5mcmFjdGlvbnMKQ29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYW55IHZpb2xhdGlvbnMgYnkgdGhlIG1hbmFnZXIgb3IgaXQncyBlbXBsb3llZXMuICBUaGVzZSBpbmNsdWRlcyBhbnkgdmlvbGF0aW9uIGxldmllZCBieSBhIGdvdmVybm1lbnQgb3Igc2VsZi1wb2xpY2luZyByZWd1bGF0b3J5IGJvZHkuCgpgYGB7ciBkcnBzfQptYW5hZ2VyUmVndWxhdG9yeUNSRApgYGAKCiMjIyMgUmVjb3JkIExvY2F0aW9ucwpUaGlzIHNlY3Rpb24gZGlzY2xvc2VzIHRoZSB3aGVyZSB0aGUgbWFuYWdlciBzdG9yZXMgaXRzIGJvb2tzIGFuZCByZWNvcmRzLgoKYGBge3IgcmVjb3Jkc30KbWFuYWdlclJlY29yZExvY2F0aW9ucwoKYGBgCgojIyMjIE90aGVyIGRpc2Nsb3N1cmVzClRoaXMgc2VjdGlvbiBkaXNjbG9zZXMgYW55IG90aGVyIHJlbGV2ZW50IGluZm9ybWF0aW9uIHRoZSBtYW5hZ2VyIHdpc2hlcyB0byBjb21tdW5pY2F0ZSB0byB0aGUgU0VDIGluY2x1ZGluZyBjZXJ0YWluIGRldGFpbHMgcmVnYXJkaW5nIGRhdGEgaW4gdGhlIGZpbGluZy4KCmBgYHtyIG90aGVyX2Rpc2Nsb3N1cmVzfQptYW5hZ2VyT3RoZXJEaXNjbG9zdXJlcwpgYGAKCiMjIyMgUHJpdmF0ZSBGdW5kIFJlcG9ydGluZwpUaGlzIHNlY3Rpb24gaW5jbHVkZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHVuZGVybHlpbmcgZnVuZCB2ZWhpY2xlcyBvZiBhIHJlZ2lzdGVyZWQgbWFuYWdlci4gIFRoaXMgbWF5IGluY2x1ZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZ1bmQgc2l6ZSwgbnVtYmVyIG9mIGludmVzb3JzLCB0eXBlcyBvZiBpbnZlc3RvcnMsIGRpc3RyaWJ1dGlvbiBvZiBvd25lcnNoaXAsIGRldGFpbHMgYWJvdXQgdGhpcmQgcGFydGllcyB0aGF0IHNlcnZpY2UgdGhlIGZ1bmQgW2FjY291bnRhbnRzLCBtYXJrZXRpbmcgYWdlbnRzLCBjdXN0b2RpYW5zLCBwcmltZSBicm9rZXJzLCBlY3QuLl0gYW5kIGFueSBpbmZvcm1hdGlvbiBhYm91dCByZWxhdGVkIHBhcnRpZXMgdG8gdGhlIGZ1bmQgW0dlbmVyYWwgUGFydG5lciwgTWFuYWdpbmcgTWVtYmVyLCBlY3QuLl0KCmBgYHtyIHByaXZhdGVfZnVuZHN9CnNlY3Rpb243QlByaXZhdGVGdW5kUmVwb3J0aW5nCmBgYAoKVGhlIHByaXZhdGUgZnVuZCBzZWN0aW9uIGlzIGNob2NrZWQgZnVsbCBvZiBncmVhdCB2aXN1YWxpemFibGUgZGF0YSwgYW5kIHRvIGRlbW9uc3RyYXRlIHdlIGFyZSBnb2luZyB0byBjcmF0ZSBhIFt0cmVlbWFwXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9UcmVlbWFwcGluZykgdmlzdWFsaXphdGlvbiBjYXJlIG9mIFtLZW50b24gUnVzc2VsbCdzXShodHRwczovL3R3aXR0ZXIuY29tL3RpbWVseXBvcnRmb2xpbykgZmFudGlzdGljIFtkM3RyZWVSXShodHRwczovL3R3aXR0ZXIuY29tL3RpbWVseXBvcnRmb2xpbykgcGFja2FnZSB0aGF0IHdpbGwgZXhwbG9yZSBCbGFja3N0b25lJ3MgYXNzZXRzIHVuZGVyIG1hbmFnZW1lbnQgYnkgZnVuZCB0eXBlLCBmdW5kIG1hbmFnZXIsIGZ1bmQgdmVoaWNsZSBuYW1lLCBhbmQgbnVtYmVyIG9mIGZ1bmQgaW52ZXN0b3JzLgoKYGBge3IgYnhfdHJlZW1hcH0KbGlicmFyeSh0cmVlbWFwKSAjIGluc3RhbGwucGFja2FnZXMoJ3RyZWVtYXAnKQpsaWJyYXJ5KGQzdHJlZVIpICMgZGV2dG9vbHM6Omluc3RhbGxfZ2l0aHViKCJ0aW1lbHlwb3J0Zm9saW8vZDN0cmVlUiIpCnNlY3Rpb243QlByaXZhdGVGdW5kUmVwb3J0aW5nICU+JSAKICBtdXRhdGUobmFtZUZ1bmQgPSBuYW1lRnVuZCAlPiUgc3RyX3JlcGxhY2VfYWxsKCdcXCAnLCdcbicpKSAlPiUgCiAgdHJlZW1hcCgKICAgIGluZGV4ID0gYygidHlwZUZ1bmQiLCduYW1lRW50aXR5TWFuYWdlcicsICJuYW1lRnVuZCIpLAogICAgdlNpemUgPSAiYW1vdW50RnVuZEdyb3NzQVVNIiwKICAgIHZDb2xvciA9ICJjb3VudEZ1bmRPd25lcnMiLAogICAgcGFsZXR0ZSA9ICJSZFlsR24iLCAKICAgIGZvbnRzaXplLmxhYmVscyA9IDgsCiAgICB0eXBlID0gInZhbHVlIgogICkgJT4lIAogIGQzdHJlZTIocm9vdG5hbWUgPSAiQmxhY2tzdG9uZSBWZWhpY2xlcyIpCmBgYAoKIyMjIFNjaGVkdWxlIEEgLSBEaXJlY3QgT3duZXJzClRoaXMgc2VjdGlvbiBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW5kaXZpZHVhbHMgYW5kIGVudGl0aWVzIHRoYXQgb3duIHRoZSByZWdpc3RlcmluZyBlbnRpdHksIHRoaXMgaW5jbHVkZXMgcmFuZ2VkIGRpc2Nsb3N1cmVzIG9uIHBlcmNlbnRhZ2Ugb2Ygb3duZXJzaGlwLiAgVGhpcyBpbmZvcm1hdGlvbiwgYWxvbmcgd2l0aCBTY2hlZHVsZSBCLCBhcmUgaWRlYWwgdXNlcyBmb3IgW05ldHdvcmsgQW5hbHlzaXNdKCkKYGBge3Igc2NoZWR1bGVfYX0Kc2VjdGlvblNjaGVkdWxlQSAjIERpcmVjdCBPd25lcnMKYGBgCgojIyMgU2NoZWR1bGUgQiAtIEluZGlyZWN0IE93bmVycwpUaGlzIHNlY3Rpb24gaW5jbHVkZXMgaW5mb3JtYXRpb24gb24gdGhlIG93bmVycyBvZiBhbnkgU2NoZWR1bGUgQSBvd25lciB0aGF0IGlzIGFuIGVudGl0eQpgYGB7ciBzY2hlZHVsZV9ifQpzZWN0aW9uU2NoZWR1bGVCICMgSW5kaXJlY3QgT3duZXJzCmBgYAoKIyMjIFJlbGF0ZWQgQWR2aXNvcnMKVGhpcyBzZWN0aW9uIGluY2x1ZGVzIGRpc2Nsb3N1cmVzIG9uIGFueSBhZHZpc29yIHJlbGF0ZWQgdG8gdGhlIGZpbGluZyBlbnRpdHksIHRoaXMgbWF5IGluY2x1ZGUgQ1JEIG51bWJlcnMgYW5kIG90aGVyIGRlc2NyaXB0aXZlIGluZm9ybWF0aW9uLgoKYGBge3IgcmVhbHRlZF9hZHZpc2Vyc30KbWFuYWdlclJlbGF0ZWRBZHZpc2VycwpgYGAKCiMjIyBPdGhlciBPZmZpY2UgTG9jYXRpb25zClRoaXMgc2VjdGlvbiBpbmNsdWRlcyBpbmZvcm1hdGlvbiBvbiBhbGwgc2Vjb25kYXJ5IG9mZmljZXMsIHdoZW4gYXBwbGljYWJsZSwgcmVsYXRlZCB0byB0aGUgZmlsaW5nIG1hbmFnZXIuCgpgYGB7ciBvdGhlcl9vZmZpY2VzfQptYW5hZ2VyT3RoZXJPZmZpY2VMb2NhdGlvbnMKYGBgCgoKIyMjIENvbnRyb2wgRW50aXRpZXMKVGhpcyBzZWN0aW9uIGluY2x1ZGVzIGluZm9ybWF0aW9uIG9uIGNvbnRyb2wgZW50aXRpZXMgZm9yIGEgZmlsaW5nIG1hbmFnZXIsIHRoaXMgZXNzZW50aWFsbHkgbWVhbnMgaXMgdGhlIG1hbmFnZXIgY29udHJvbGxlZCBieSBhIHB1YmxpYyBlbnRpdHksIGEgZ29vZCBleGFtcGxlIGJlaW5nIEJsYWNrc3RvbmUgd2hpY2ggaXMgYSBwdWJsaWMgY29tcGFueS4KCmBgYHtyIGNvbnRyb2xfcHVibGljc30KbWFuYWdlckNvbnRyb2xQdWJsaWNFbnRpdGllcwpgYGAKCgojIyMgQ29udHJvbCBQZXJzb25zClRoaXMgc2VjdGlvbiBpbmNsdWRlcyBpbmZvcm1hdGlvbiBvbiBjb250cm9sIHBlcnNvbnMgZm9yIGFueSBmaWxpbmcgbWFuYWdlciB0aGF0IGlzIHJlbGF0ZWQgdG8gYSBwdWJsaWMgZW50aXRpeS4KCmBgYHtyIGNvbnRyb2xfcGVyc29uc30KbWFuYWdlckNvbnRyb2xQZXJzb25zICMgV2Vic2l0ZXMKYGBgCgojIyMgV2Vic2l0ZSBJbmZvcm1hdGlvbgpUaGlzIHNlY3Rpb24gaW5jbHVkZXMgYW55IHdlYnNpdGUgcmVsYXRkIHRvIHRoZSBmaWxpbmcgbWFuYWdlci4KYGBge3Igd2Vic2l0ZXN9Cm1hbmFnZXJXZWJzaXRlICMgV2Vic2l0ZXMKYGBg