[Nfd-dev] Try NDNCERT (based on Interest-Data exchange) and get an NDN certificate today

Zhiyi Zhang zhiyi at cs.ucla.edu
Tue Sep 3 20:48:46 PDT 2019


Yes. That's why I mentioned the ICE-AR server (NDNCERT CA's host) got into
some trouble.
@Yufeng do you know the status of ICE-AR and when can we restart NDNCERT?

Best,
Zhiyi

On Tue, Sep 3, 2019 at 8:45 PM Davide Pesavento <davidepesa at gmail.com>
wrote:

> Zhiyi,
>
> I tried the new instructions but I always get an Interest timeout error
> from ndncert-client after step 1.
>
>
> On Tue, Sep 3, 2019 at 10:39 PM Zhiyi Zhang <zhiyi at cs.ucla.edu> wrote:
>
>> I forwarded this message here:
>> Message ID <CAHe54u==
>> EV8HtV+JDtZn9znA42-T_FpN2Z_3gce4YDAJCvF-hQ at mail.gmail.com>
>> Created at: Tue, Aug 13, 2019 at 1:08 PM (Delivered after 0 seconds)
>> From: YUFENG ZHANG <yufeng at ucla.edu>
>> To: nfd-dev at lists.cs.ucla.edu
>> Subject: Fwd: NDNCERT and repo-ng Deployment
>> SPF: NEUTRAL with IP 0.0.0.0 Learn more
>> <https://support.google.com/a/answer/33786?hl=en>
>> DKIM: 'PASS' with domain ucla-edu.20150623.gappssmtp.com Learn more
>> <https://support.google.com/a/answer/174124?hl=en>
>>
>> ================================
>>
>> Hi everyone,
>>
>> The NDNCERT and repo-ng are deployed on the ICE-AR server at UCLA, and
>> the server has been connected to the NDN testbed. All issued
>> certificates will be pushed to repo-ng.
>>
>> To request a certificate, please see the below steps:
>>
>> 0) make sure ndn-cxx, nfd, and Boost are correctly configured on the
>> machine
>>
>> 1) get the latest version of NDNCERT on https://github.com/named-data/
>> ndncert
>>
>> 2) switch to the ndncert direcory, compile, and install ndncert by
>> running
>>
>>     cd ndncert
>>     ./waf configured
>>     ./waf
>>     ./waf install
>>
>> If installation fails, try using sudo ./waf install.
>>
>> 3) switch to /usr/local/etc/ndncert, and create client.conf
>>
>> use the following configuration for this file
>>
>> {
>>   "ca-list":
>>   [
>>         {
>>         "ca-prefix": "/ndn/edu/ucla/yufeng",
>>         "ca-info": "UCLA CA in NDN Testbed",
>>         "probe": "email",
>>         "certificate":
>>         "Bv0DfQc2CANuZG4IA2VkdQgEdWNsYQgGeXVmZW5nCANLRVkICHelnivON8k8CAJOQQgJ/QAAAWx3XLP1FAkYAQIZBAA27oAV/QEmMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApvMgYc/PTZDcgKC3BAQ5zEs/B09pJ8TpR41BjGJe1KIr0P0MGZlCW1ZKbsV8y+gZKUZefVwqwfHUJlto/OpQgxm2oZED/f/m4F80KIRzpGi7sF0PvOiZErXEUAJzTrhb5SFzQo9P9n4Zi7uptltFPkpTdZrSKiKfW7ejn5woXoUgjC1EnMQAx+UFPjqbd3C1t5SlmfYtRFiaekF2LN+rkb1AnQ99lisSOwGdwbbyyxrcbclI5DxH9xrbAswHnn26grEGczAzM940Ksvsyd0tfc2EQirHc+IYWHoESMySzB6bJ0Q1GAG6INqklSAfOCz0upKzmyOcTE9yxYblsRmv9QIDAQABFv0BCBsBARwhBx8IA25kbggDZWR1CAR1Y2xhCANLRVkICNIoXYQ3ivN6/QD9Jv0A/g8yMDE5MDgwOFQxNzEwNTn9AP8PMjAyMDA4MDhUMTcxMDU5/QECtP0CAA/9AgEHYWR2aXNvcv0CAgD9AgAc/QIBBWVtYWls/QICD3l1ZmVuZ0B1Y2xhLmVkdf0CABz9AgEIZnVsbG5hbWX9AgIMWXVmZW5nIFpoYW5n/QIADf0CAQVncm91cP0CAgD9AgAP/QIBB2hvbWV1cmz9AgIA/QIAOf0CAQxvcmdhbml6YXRpb279AgIlVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBMb3MgQW5nZWxlcxf9AQBdzD9rcuhnba7pHA/TSptn+qhCq10Y5cPMDmk8fhUxWSJdJ/BAml4gI539uIUIy6g+ZbpxPTBR4YwJSsP5FWFENIpGcB3spZrBnDCzGKY2iNTODaVi4dHv8UAcVaN5cNUVbvr8KvZyzTHN4UYJTu1NAnw3J3SleOF+8Rfujv4rRyq+5ydqw36aZc5Dkp4oYOXhkMlvZijUy/IIuetVvEJxvQsixw4p+ZrANCqow5glHKI4B/WbQJmjfyx+3TJ0QXnpV3sL9trNqEimTYY1P+VTl/hOVsC4E7knNcF3zzGFaBPyI2Q511N3nuHVtrDAnPjnEddNSoF4NRDILg6iCSrJ"
>>         }
>>   ]}
>>
>> 4) make sure NFD is running, and your machine is connected to the NDN testbed.
>> If not, perform the following operations to start NFD and connect to
>> testbed:
>>
>> nfd-start
>> nfdc face create udp4://spurs.cs.ucla.edu
>>
>> After you run the face creation command, you will see a face ID.
>> Substitute the face ID into the below commands.
>>
>> nfdc route add /ndn FACE_ID
>>
>> 5) Request a certificate by running ndncert-client on your terminal, and
>> enter the required information.
>>
>> If there are any questions, plaese contact zhiyi at cs.ucla.edu and yufeng
>> @ucla.edu.
>>
>>
>>
>>
>>
>> On Tue, Sep 3, 2019 at 7:30 PM Davide Pesavento <davidepesa at gmail.com>
>> wrote:
>>
>>> Zhiyi,
>>>
>>> When was this second email sent exactly? And to what ML? I don't see
>>> anything from Yufeng in the past three months.
>>>
>>> Davide
>>>
>>> On Tue, Sep 3, 2019 at 10:21 PM Zhiyi Zhang <zhiyi at cs.ucla.edu> wrote:
>>> >
>>> > Hi Junxiao,
>>> >
>>> > This is because the PDF cuts the certificate bytes and thus the
>>> NDNCERT client cannot load the anchor certificate.
>>> > @Yufeng sent another update on the NDNCERT instructions in another
>>> email later than this one.
>>> >
>>> > Hi Yufeng,
>>> > Could you point those instructions to Junxiao again?
>>> > Also, I heard the ICE-AR server (NDNCERT CA's host server) got some
>>> issue and does not work temporarily. Do you know the status of NDNCERT
>>> server?
>>> >
>>> > Best,
>>> > Zhiyi
>>> >
>>> > On Tue, Sep 3, 2019 at 1:09 PM Junxiao Shi <
>>> shijunxiao at email.arizona.edu> wrote:
>>> >>
>>> >> Hi Zhiyi
>>> >>
>>> >> I attempted the procedure, but the client.conf contents enclosed in
>>> the PDF is cut off and therefore is not a valid JSON.
>>> >> After adding a " symbol after /Q, it becomes valid JSON, but
>>> ndncert-client crashes with the following error:
>>> >>
>>> >> vagrant at m0212:~$ gdb ndncert-client
>>> >> GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
>>> >> Copyright (C) 2016 Free Software Foundation, Inc.
>>> >> License GPLv3+: GNU GPL version 3 or later <
>>> http://gnu.org/licenses/gpl.html>
>>> >> This is free software: you are free to change and redistribute it.
>>> >> There is NO WARRANTY, to the extent permitted by law.  Type "show
>>> copying"
>>> >> and "show warranty" for details.
>>> >> This GDB was configured as "x86_64-linux-gnu".
>>> >> Type "show configuration" for configuration details.
>>> >> For bug reporting instructions, please see:
>>> >> <http://www.gnu.org/software/gdb/bugs/>.
>>> >> Find the GDB manual and other documentation resources online at:
>>> >> <http://www.gnu.org/software/gdb/documentation/>.
>>> >> For help, type "help".
>>> >> Type "apropos word" to search for commands related to "word"...
>>> >> Reading symbols from ndncert-client...done.
>>> >> (gdb) run
>>> >> Starting program: /usr/local/bin/ndncert-client
>>> >> [Thread debugging using libthread_db enabled]
>>> >> Using host libthread_db library
>>> "/lib/x86_64-linux-gnu/libthread_db.so.1".
>>> >> [New Thread 0x7ffff515d700 (LWP 4285)]
>>> >>
>>> >> Thread 1 "ndncert-client" received signal SIGSEGV, Segmentation fault.
>>> >> std::_Rb_tree<int, std::pair<int const, std::shared_ptr<ndn::Tag> >,
>>> std::_Select1st<std::pair<int const, std::shared_ptr<ndn::Tag> > >,
>>> std::less<int>, std::allocator<std::pair<int const,
>>> std::shared_ptr<ndn::Tag> > > >::operator= (
>>> >>     this=this at entry=0x7fffffffdc08, __x=...)
>>> >>     at /usr/include/c++/5/bits/stl_tree.h:1476
>>> >> 1476              if (__x._M_root() != 0)
>>> >> (gdb) bt full
>>> >> #0  std::_Rb_tree<int, std::pair<int const, std::shared_ptr<ndn::Tag>
>>> >, std::_Select1st<std::pair<int const, std::shared_ptr<ndn::Tag> > >,
>>> std::less<int>, std::allocator<std::pair<int const,
>>> std::shared_ptr<ndn::Tag> > > >::operator= (
>>> >>     this=this at entry=0x7fffffffdc08, __x=...)
>>> >>     at /usr/include/c++/5/bits/stl_tree.h:1476
>>> >>         __roan = {_M_root = 0x0, _M_nodes = 0x0, _M_t =
>>> @0x7fffffffdc08}
>>> >> #1  0x00007ffff7f93aee in std::map<int, std::shared_ptr<ndn::Tag>,
>>> std::less<int>, std::allocator<std::pair<int const,
>>> std::shared_ptr<ndn::Tag> > > >::operator= (__x=<error reading variable:
>>> Cannot access memory at address 0x28>,
>>> >>     this=0x7fffffffdc08) at /usr/include/c++/5/bits/stl_map.h:298
>>> >> No locals.
>>> >> #2  ndn::TagHost::operator= (this=0x7fffffffdc08)
>>> >>     at /usr/local/include/ndn-cxx/detail/tag-host.hpp:34
>>> >> No locals.
>>> >> #3  ndn::PacketBase::operator= (this=0x7fffffffdc08)
>>> >>     at /usr/local/include/ndn-cxx/detail/packet-base.hpp:31
>>> >> No locals.
>>> >> #4  ndn::Data::operator= (this=0x7fffffffdc08)
>>> >>     at /usr/local/include/ndn-cxx/data.hpp:35
>>> >> No locals.
>>> >> #5  ndn::security::v2::Certificate::operator= (this=0x7fffffffdc08)
>>> >>     at /usr/local/include/ndn-cxx/security/v2/certificate.hpp:81
>>> >> No locals.
>>> >> ---Type <return> to continue, or q <return> to quit---
>>> >> #6  ndn::ndncert::ClientConfig::extractCaItem (configSection=...)
>>> >>     at ../src/client-config.cpp:66
>>> >>         item = {m_caName = {static npos = 18446744073709551615,
>>> m_wire = {
>>> >>               m_buffer = std::shared_ptr (empty) 0x0,
>>> >>               m_begin = <error reading variable>},
>>> >>           m_caInfo = "UCLA CA in NDN Testbed", m_probe = "email",
>>> >>           m_anchor = {<ndn::Data> = {<ndn::PacketBase> =
>>> {<ndn::TagHost> = {
>>> >>                   m_tags = std::map with 0 elements}, <No data
>>> fields>}, <std::enable_shared_from_this<ndn::Data>> = {
>>> >>                 _M_weak_this = std::weak_ptr (empty) 0x0}, m_name = {
>>> >>                 static npos = 18446744073709551615, m_wire = {
>>> >>                   m_buffer = std::shared_ptr (empty) 0x0,
>>> >>                   m_begin = <error reading variable>}, m_metaInfo = {
>>> >>                 m_type = 2, m_freshnessPeriod = {rep_ = 0},
>>> m_finalBlockId = {
>>> >>                   has_value_ = false, contained = {data = {
>>> >>                       __data = '\000' <repeats 87 times>,
>>> >>                       __align = {<No data fields>}}}},
>>> >>                 m_appMetaInfo =
>>> {<std::__cxx11::_List_base<ndn::Block, std::allocator<ndn::Block> >> = {
>>> >>                     _M_impl =
>>> {<std::allocator<std::_List_node<ndn::Block> >> =
>>> {<__gnu_cxx::new_allocator<std::_List_node<ndn::Block> >> = {<No data
>>> fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_base> = {
>>> >>                           _M_next = 0x7fffffffdd10, _M_prev =
>>> 0x7fffffffdd10},
>>> >> ---Type <return> to continue, or q <return> to quit---
>>> >>                         _M_data = 0}}}, <No data fields>}, m_wire = {
>>> >>                   m_buffer = std::shared_ptr (empty) 0x0,
>>> >>                   m_begin = <error reading variable>}, m_content = {
>>> >>                 m_buffer = std::shared_ptr (empty) 0x0,
>>> >>                 m_begin = <error reading variable>, m_signature =
>>> {m_info = {
>>> >>                   m_type = -1, m_hasKeyLocator = false, m_keyLocator
>>> = {
>>> >>                     m_locator = {data = {
>>> >>                         __data = '\000' <repeats 33 times>,
>>> "\340\000\000\000\356p\000\000\340\016\000\000\236\066", '\000' <repeats 17
>>> times>, "VmZW5nCANLRVkICH\000\000\000\000\000\000\000", __align = {<No data
>>> fields>}},
>>> >>                       type_index = 0 '\000'}, m_wire = {
>>> >>                       m_buffer = std::shared_ptr (empty) 0x0,
>>> >>                       m_begin = <error reading variable>},
>>> >>                   m_otherTlvs =
>>> {<std::__cxx11::_List_base<ndn::Block, std::allocator<ndn::Block> >> = {
>>> >>                       _M_impl =
>>> {<std::allocator<std::_List_node<ndn::Block> >> =
>>> {<__gnu_cxx::new_allocator<std::_List_node<ndn::Block> >> = {<No data
>>> fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_base> = {
>>> >>                             _M_next = 0x7fffffffde98,
>>> >>                             _M_prev = 0x7fffffffde98},
>>> >>                           _M_data = 0}}}, <No data fields>}, m_wire =
>>> {
>>> >>                     m_buffer = std::shared_ptr (empty) 0x0,
>>> >>                     m_begin = <error reading variable>}, m_value = {
>>> >> ---Type <return> to continue, or q <return> to quit---
>>> >>                   m_buffer = std::shared_ptr (empty) 0x0,
>>> >>                   m_begin = <error reading variable>}, m_wire = {
>>> >>                 m_buffer = std::shared_ptr (empty) 0x0,
>>> >>                 m_begin = <error reading variable>, m_fullName = {
>>> >>                 static npos = 18446744073709551615, m_wire = {
>>> >>                   m_buffer = std::shared_ptr (empty) 0x0,
>>> >>                   m_begin = <error reading variable>}},
>>> >>             static VERSION_OFFSET = -1, static ISSUER_ID_OFFSET = -2,
>>> >>             static KEY_COMPONENT_OFFSET = -4, static KEY_ID_OFFSET =
>>> -3,
>>> >>             static MIN_CERT_NAME_LENGTH = 4, static
>>> MIN_KEY_NAME_LENGTH = 2,
>>> >>             static KEY_COMPONENT = {<ndn::Block> = {m_buffer =
>>> >>     std::shared_ptr (count 1, weak 0) 0x439820, m_begin = 8 '\b',
>>> >>                 m_end = 127 '\177', m_valueBegin = 75 'K',
>>> >>                 m_valueEnd = 127 '\177', m_type = 8, m_size = 5,
>>> >>                 m_elements = std::vector of length 0, capacity 0},
>>> <No data fields>}}}
>>> >>         ss = <incomplete type>
>>> >> #7  0x00007ffff7f941a2 in ndn::ndncert::ClientConfig::load (
>>> >>     this=this at entry=0x4233c8 <ndn::ndncert::client+8>,
>>> configSection=...)
>>> >>     at ../src/client-config.cpp:53
>>> >>         caList = {m_data = "", m_children = 0x496fe0}
>>> >>         it =
>>> {<boost::iterators::iterator_adaptor<boost::property_tree::basic_ptree<std::__cxx11::basic_string<char>,
>>> std::__cxx11::basic_string<char> >::iterat---Type <return> to continue, or
>>> q <return> to quit---
>>> >> or,
>>> boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> boost::iterators::use_default, boost::iterators::use_default,
>>> boost::iterators::use_default>> =
>>> {<boost::iterators::iterator_facade<boost::property_tree::basic_ptree<std::__cxx11::basic_string<char>,
>>> std::__cxx11::basic_string<char> >::iterator,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char---Type <return> to continue, or
>>> q <return> to quit---
>>> >> > >, std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> boost::iterators::bidirectional_traversal_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >&, long>> =
>>> {<boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__cxx11::basic_string<char>,
>>> std::__cxx11::basic_string<char> >::iterator,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> boost::iterators::bidirectional_traversal_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >&, long, true, false>>
>>> =
>>> {<boost::iterators::detail::iterator_facade_base<boost::property_tree::basic_ptree<std::__cxx11::basic_string<char>,
>>> std::__cxx11::basic_string<char> >::iterator,
>>> std::pair<std::__cxx11::basic_stri---Type <return> to continue, or q
>>> <return> to quit---
>>> >> ng<char, std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> boost::iterators::bidirectional_traversal_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >&, long, false, false>>
>>> = {<No data fields>}, <No data fields>}, <No data fields>},
>>> >>             m_iterator =
>>> {<boost::bidirectional_iterator_helper<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<---Type <return> to continue, or q
>>> <return> to quit---
>>> >> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > > > > > > > > >,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >, long,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const&>> =
>>> {<boost::bidirectional_iteratable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_strin---Type <return>
>>> to continue, or q <return> to quit---
>>> >> g<char, std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> std::iterator<std::bidirectional_iterator_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >, long,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const, boost::property_tree::basic_p---Type <return>
>>> to continue, or q <return> to quit---
>>> >> tree<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::less<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > > > > const&> >> =
>>> {<boost::forward_iteratable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> boost::decrementable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::---Type
>>> <return> to continue, or q <return> to quit---
>>> >>
>>> ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::iterator<std::bidirectional_iterator_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >, long,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const, boost::property_tree::basic_ptree<s---Type
>>> <return> to continue, or q <return> to quit---
>>> >> td::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::less<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > > > > const&> > >> =
>>> {<boost::input_iteratable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> boost::decrementable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordere---Type
>>> <return> to continue, or q <return> to quit---
>>> >>
>>> d_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::iterator<std::bidirectional_iterator_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >, long,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__---Type <return> to continue, or q
>>> <return> to quit---
>>> >> cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::less<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > > > > const&> > >> =
>>> {<boost::equality_comparable1<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> boost::incrementable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::c---Type <return> to continue, or q <return> to quit---
>>> >> har_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> boost::dereferenceable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, s---Type <return> to continue, or q <return> to
>>> quit---
>>> >> td::allocator<char> > > > > const*,
>>> boost::decrementable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::iterator<std::bidirectional_iterator_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >, long,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_t---Type <return> to continue, or q <return> to quit---
>>> >> raits<char>, std::allocator<char> > > > > const*,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const&> > > > >> =
>>> {<boost::incrementable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> boost::dereferenceable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_stri---Type <return>
>>> to continue, or q <return> to quit---
>>> >> ng<char, std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> boost::decrementable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_trait---Type <return> to continue, or q <return> to quit---
>>> >> s<char>, std::allocator<char> >, std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::less<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > > > > > > > > >,
>>> std::iterator<std::bidirectional_iterator_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >, long,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const&> > > >> =
>>> {<boost::dereferenceable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<ch---Type
>>> <return> to continue, or q <return> to quit---
>>> >> ar, std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> boost::decrementable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<cha---Type <return> to continue, or q <return> to quit---
>>> >> r>, std::allocator<char> >, std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::less<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > > > > > > > > >,
>>> std::iterator<std::bidirectional_iterator_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >, long,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const&> > >> =
>>> {<boost::decrementable<boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::sequenced_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::---Type <return> to continue, or q <return> to quit---
>>> >> char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >,
>>> std::allocator<std::pair<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > > > > > >,
>>> std::iterator<std::bidirectional_iterator_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >, long,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std:---Type <return> to continue, or q <return> to
>>> quit---
>>> >> :allocator<char> > > > > const&> >> =
>>> {<std::iterator<std::bidirectional_iterator_tag,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > >, long,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const*,
>>> std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> > const,
>>> boost::property_tree::basic_ptree<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >,
>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> > > > > const&>> = {<No data
>>> fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <No data
>>> fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <No data
>>> fields>}, node = 0x4976f0}}, <No data fields>}
>>> >> #8  0x00007ffff7f957f3 in ndn::ndncert::ClientConfig::load (
>>> >>     this=this at entry=0x4233c8 <ndn::ndncert::client+8>,
>>> >>     fileName="/usr/local/etc/ndncert/client.conf")
>>> >>     at ../src/client-config.cpp:43
>>> >> ---Type <return> to continue, or q <return> to quit---
>>> >>         config = {m_data = "", m_children = 0x494100}
>>> >>         __PRETTY_FUNCTION__ = "void
>>> ndn::ndncert::ClientConfig::load(const string&)"
>>> >> #9  0x0000000000412df0 in ndn::ndncert::main (argc=1,
>>> argv=0x7fffffffe5b8)
>>> >>     at ../tools/ndncert-client.cpp:347
>>> >>         configFilePath = "/usr/local/etc/ndncert/client.conf"
>>> >>         description = {static m_default_line_length = 80,
>>> >>           m_caption = "General Usage\n ndncert-client [-h] [-f]\n",
>>> >>           m_line_length = 80, m_min_description_length = 40,
>>> >>           m_options = std::vector of length 2, capacity 2 = {{px =
>>> 0x494af0,
>>> >>               pn = {pi_ = 0x493790}}, {px = 0x494b70, pn = {pi_ =
>>> 0x494190}}},
>>> >>           belong_to_group = std::vector<bool> of length 2, capacity
>>> 64 = {0,
>>> >>             0}, groups = std::vector of length 0, capacity 0}
>>> >>
>>> >>         p = {m_names = std::vector of length 0, capacity 0,
>>> m_trailing = ""}
>>> >>
>>> >>         vm = <incomplete type>
>>> >> #10 0x0000000000413028 in main (argc=<optimized out>, argv=<optimized
>>> out>)
>>> >>     at ../tools/ndncert-client.cpp:363
>>> >> No locals.
>>> >>
>>> >> My environment:
>>> >>
>>> >> Ubuntu 16.04 amd64
>>> >> ndn-cxx ef654dd3ba16f7ec950b4c9ae293617097dc645c
>>> >> NFD df1dc6590cc2f21faf9e51fe7ec2604cc5e923ca
>>> >> ndncert 151906039cc6bc2a6f5ba8ce5f25ab98ee519ca5
>>> >>
>>> >>
>>> >> Yours, Junxiao
>>> >>
>>> >> On Thu, Jun 27, 2019 at 6:37 PM Zhiyi Zhang <zhiyi at cs.ucla.edu>
>>> wrote:
>>> >>>
>>> >>> Hi all,
>>> >>>
>>> >>> We have deployed a test NDNCERT server and it's available now.
>>> >>> To play with the new NDNCERT, one can simply follow the instructions
>>> here:
>>> >>> https://zhiyi-zhang.com/content/try-ndncert-today.pdf
>>> >>>
>>> >>> Any comments or suggestions are welcome.
>>> >>>
>>> >>> Please be aware that the NDNCERT CA certificate is a self-signed
>>> certificate, so all the certificates issued by this NDNCERT test server
>>> cannot be trusted by the Testbed forwarders (e.g., the request will be
>>> denied when you want to use the cert to register a prefix on the testbed.)
>>> >>>
>>> >>> Best,
>>> >>> Zhiyi
>>> >
>>> > _______________________________________________
>>> > Nfd-dev mailing list
>>> > Nfd-dev at lists.cs.ucla.edu
>>> > http://www.lists.cs.ucla.edu/mailman/listinfo/nfd-dev
>>>
>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/nfd-dev/attachments/20190903/3352a515/attachment-0001.html>


More information about the Nfd-dev mailing list