diff --git a/README.md b/README.md index eba0b41..1be251d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +# This repository has moved to it's own organization https://github.com/cpp-pre + lib-cpp-pre {#mainpage} =========== C++11 header-only boost companion library baked with love. diff --git a/html/annotated.html b/html/annotated.html index b50c8c0..3a03c2a 100644 --- a/html/annotated.html +++ b/html/annotated.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Class List @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
- + - - + + + +
diff --git a/html/bits_2utils_8hpp_source.html b/html/bits_2utils_8hpp_source.html index ea08f20..b349eb4 100644 --- a/html/bits_2utils_8hpp_source.html +++ b/html/bits_2utils_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/bits/utils.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
utils.hpp
-
1 #ifndef SWISSARMYKNIFE_BITS_UTILS_HPP
2 #define SWISSARMYKNIFE_BITS_UTILS_HPP
3 
4 #include <pre/detail/namespace_compatibility.hpp>
5 
6 #include <iostream>
7 #include <bitset>
8 #include <string>
9 #include <sstream>
10 #include <math.h>
11 #include <boost/assert.hpp>
12 #include <boost/cstdint.hpp>
13 #include <boost/dynamic_bitset.hpp>
14 #include <boost/container/vector.hpp>
15 
16 namespace pre { namespace bits {
17 
22  inline std::string to_string(const boost::dynamic_bitset<boost::uint8_t> & bitset) {
23  std::string result;
24  boost::to_string(bitset, result);
25  return result;
26  }
27 
33  template <typename uintX_t>
34  inline std::string to_binstring(uintX_t value) {
35  std::stringstream bitsRepresentation;
36  const int shift = 8 * sizeof( uintX_t ) - 1;
37  uintX_t one = 1;
38  const uintX_t mask = one << shift;
39 
40  for ( size_t i = 1; i <= shift + 1; i++ ) {
41  bitsRepresentation << ( value & mask ? '1' : '0' );
42  value <<= 1;
43  }
44 
45  return bitsRepresentation.str();
46  }
47 
48  template <typename uintX_t, size_t bitsetSize>
49  inline uintX_t to_uint(const std::bitset<bitsetSize> value) {
50  const size_t uintX_t_size = 8 * sizeof ( uintX_t );
51 
52  BOOST_ASSERT(uintX_t_size >= bitsetSize);
53 
54  const uintX_t one = 1;
55  const uintX_t zero = 0;
56  uintX_t result = 0x0;
57 
58  for (size_t i=0; i < value.size(); ++i) {
59  result |= (value.test(i)) ? (one << i) : (zero << i);
60  }
61 
62  return result;
63  }
64 
72  inline boost::dynamic_bitset<boost::uint8_t> & shift_in_bitset(boost::dynamic_bitset<boost::uint8_t> &hostBitset, const boost::dynamic_bitset<boost::uint8_t> & clientBitset) {
73  boost::dynamic_bitset<boost::uint8_t> clientBitsetCopy = clientBitset;
74  clientBitsetCopy.resize(hostBitset.size()); // Resize to have the hostBitset size
75 
76  hostBitset <<= clientBitset.size();
77  hostBitset |= clientBitsetCopy;
78 
79  return hostBitset;
80  }
81 
87  inline boost::container::vector<boost::uint8_t> to_bytearray(const boost::dynamic_bitset<boost::uint8_t> &bitset) {
88  size_t sizeBytesPadded = static_cast<size_t>(ceil(static_cast<double>(bitset.size()) / CHAR_BIT));
89  boost::container::vector<boost::uint8_t> bytes(sizeBytesPadded);
90  boost::container::vector<boost::uint8_t>::reverse_iterator iter = bytes.rbegin();
91  boost::to_block_range(bitset, iter);
92 
93  return bytes;
94  }
95 
101  inline boost::dynamic_bitset<boost::uint8_t> to_bitset(const boost::container::vector<boost::uint8_t> &byteArray, size_t resultingBitSetSize = 0) {
102  boost::dynamic_bitset<boost::uint8_t> bitset((resultingBitSetSize == 0) ? (byteArray.size() * CHAR_BIT) : resultingBitSetSize);
103  boost::from_block_range(byteArray.rbegin(), byteArray.rend(), bitset);
104 
105  return bitset;
106  }
107 }}
108 
109 #endif
std::string to_string(const boost::dynamic_bitset< boost::uint8_t > &bitset)
Create string representation of the dynamic bitset given.
Definition: utils.hpp:22
-
boost::dynamic_bitset< boost::uint8_t > to_bitset(const boost::container::vector< boost::uint8_t > &byteArray, size_t resultingBitSetSize=0)
Converts a byte array into a bitset.
Definition: utils.hpp:101
-
boost::container::vector< boost::uint8_t > to_bytearray(const boost::dynamic_bitset< boost::uint8_t > &bitset)
This converts the given boost::dynamic_bitset to an array of 8-bit wide bytes.
Definition: utils.hpp:87
- -
std::string to_binstring(uintX_t value)
Returns a string representation in bits of the int given.
Definition: utils.hpp:34
-
boost::dynamic_bitset< boost::uint8_t > & shift_in_bitset(boost::dynamic_bitset< boost::uint8_t > &hostBitset, const boost::dynamic_bitset< boost::uint8_t > &clientBitset)
This function pads the given client bitset in the host by making a copy of clientBitset, resizing the clientBitset or-ing it in the hostBitset and returning the hostBitset.
Definition: utils.hpp:72
+
1 #ifndef SWISSARMYKNIFE_BITS_UTILS_HPP
+
2 #define SWISSARMYKNIFE_BITS_UTILS_HPP
+
3 
+
4 #include <pre/detail/namespace_compatibility.hpp>
+
5 
+
6 #include <iostream>
+
7 #include <bitset>
+
8 #include <string>
+
9 #include <sstream>
+
10 #include <math.h>
+
11 #include <boost/assert.hpp>
+
12 #include <boost/cstdint.hpp>
+
13 #include <boost/dynamic_bitset.hpp>
+
14 #include <boost/container/vector.hpp>
+
15 
+
16 namespace pre { namespace bits {
+
17 
+
22  inline std::string to_string(const boost::dynamic_bitset<boost::uint8_t> & bitset) {
+
23  std::string result;
+
24  boost::to_string(bitset, result);
+
25  return result;
+
26  }
+
27 
+
33  template <typename uintX_t>
+
34  inline std::string to_binstring(uintX_t value) {
+
35  std::stringstream bitsRepresentation;
+
36  const int shift = 8 * sizeof( uintX_t ) - 1;
+
37  uintX_t one = 1;
+
38  const uintX_t mask = one << shift;
+
39 
+
40  for ( size_t i = 1; i <= shift + 1; i++ ) {
+
41  bitsRepresentation << ( value & mask ? '1' : '0' );
+
42  value <<= 1;
+
43  }
+
44 
+
45  return bitsRepresentation.str();
+
46  }
+
47 
+
48  template <typename uintX_t, size_t bitsetSize>
+
49  inline uintX_t to_uint(const std::bitset<bitsetSize> value) {
+
50  const size_t uintX_t_size = 8 * sizeof ( uintX_t );
+
51 
+
52  BOOST_ASSERT(uintX_t_size >= bitsetSize);
+
53 
+
54  const uintX_t one = 1;
+
55  const uintX_t zero = 0;
+
56  uintX_t result = 0x0;
+
57 
+
58  for (size_t i=0; i < value.size(); ++i) {
+
59  result |= (value.test(i)) ? (one << i) : (zero << i);
+
60  }
+
61 
+
62  return result;
+
63  }
+
64 
+
72  inline boost::dynamic_bitset<boost::uint8_t> & shift_in_bitset(boost::dynamic_bitset<boost::uint8_t> &hostBitset, const boost::dynamic_bitset<boost::uint8_t> & clientBitset) {
+
73  boost::dynamic_bitset<boost::uint8_t> clientBitsetCopy = clientBitset;
+
74  clientBitsetCopy.resize(hostBitset.size()); // Resize to have the hostBitset size
+
75 
+
76  hostBitset <<= clientBitset.size();
+
77  hostBitset |= clientBitsetCopy;
+
78 
+
79  return hostBitset;
+
80  }
+
81 
+
87  inline boost::container::vector<boost::uint8_t> to_bytearray(const boost::dynamic_bitset<boost::uint8_t> &bitset) {
+
88  size_t sizeBytesPadded = static_cast<size_t>(ceil(static_cast<double>(bitset.size()) / CHAR_BIT));
+
89  boost::container::vector<boost::uint8_t> bytes(sizeBytesPadded);
+
90  boost::container::vector<boost::uint8_t>::reverse_iterator iter = bytes.rbegin();
+
91  boost::to_block_range(bitset, iter);
+
92 
+
93  return bytes;
+
94  }
+
95 
+
101  inline boost::dynamic_bitset<boost::uint8_t> to_bitset(const boost::container::vector<boost::uint8_t> &byteArray, size_t resultingBitSetSize = 0) {
+
102  boost::dynamic_bitset<boost::uint8_t> bitset((resultingBitSetSize == 0) ? (byteArray.size() * CHAR_BIT) : resultingBitSetSize);
+
103  boost::from_block_range(byteArray.rbegin(), byteArray.rend(), bitset);
+
104 
+
105  return bitset;
+
106  }
+
107 }}
+
108 
+
109 #endif
+
boost::dynamic_bitset< boost::uint8_t > & shift_in_bitset(boost::dynamic_bitset< boost::uint8_t > &hostBitset, const boost::dynamic_bitset< boost::uint8_t > &clientBitset)
This function pads the given client bitset in the host by making a copy of clientBitset,...
Definition: utils.hpp:72
+
boost::container::vector< boost::uint8_t > to_bytearray(const boost::dynamic_bitset< boost::uint8_t > &bitset)
This converts the given boost::dynamic_bitset to an array of 8-bit wide bytes.
Definition: utils.hpp:87
+ +
std::string to_binstring(uintX_t value)
Returns a string representation in bits of the int given.
Definition: utils.hpp:34
+
boost::dynamic_bitset< boost::uint8_t > to_bitset(const boost::container::vector< boost::uint8_t > &byteArray, size_t resultingBitSetSize=0)
Converts a byte array into a bitset.
Definition: utils.hpp:101
+
std::string to_string(const boost::dynamic_bitset< boost::uint8_t > &bitset)
Create string representation of the dynamic bitset given.
Definition: utils.hpp:22
@@ -111,9 +173,9 @@
diff --git a/html/bytes_2utils_8hpp_source.html b/html/bytes_2utils_8hpp_source.html index 5ccbf6f..07bebbb 100644 --- a/html/bytes_2utils_8hpp_source.html +++ b/html/bytes_2utils_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/bytes/utils.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
utils.hpp
-
1 #ifndef SWISSARMYKNIFE_BYTES_UTILS_HPP
2 #define SWISSARMYKNIFE_BYTES_UTILS_HPP
3 
4 #include <pre/detail/namespace_compatibility.hpp>
5 
6 #include <string>
7 #include <sstream>
8 #include <cctype>
9 #include <math.h>
10 #include <stdexcept>
11 #include <fstream>
12 #include <boost/shared_ptr.hpp>
13 #include <boost/cstdint.hpp>
14 #include <boost/container/vector.hpp>
15 #include <boost/container/map.hpp>
16 #include <boost/assign.hpp>
17 #include <boost/foreach.hpp>
18 
19 namespace pre { namespace bytes {
20 
24  const size_t NIBBLE_BITS = 4;
25 
29  const size_t BYTE_NIBBLES = 2;
30 
36  inline std::string to_hexstring(const boost::uint8_t *bytes, const size_t length) {
37  uint8_t ch = 0x00;
38  size_t i = 0;
39 
40  if (bytes == NULL || length <= 0)
41  return std::string("");
42 
46  const char nibbleToChar[] = {'0', '1', '2', '3', '4', '5',
47  '6', '7', '8', '9', 'a', 'b',
48  'c', 'd', 'e', 'f'};
49 
50  std::string out;
51  out.reserve(length*2);
52  while (i < length) {
53 
54  ch = (bytes[i] & 0xF0); // Strip off high nibble
55  ch = (ch >> NIBBLE_BITS); // shift the bits down
56  ch = (ch & 0x0F); // must do this is high order bit is on!
57 
58  out.push_back(nibbleToChar[ch]); // convert the nibble to a String Character
59 
60  ch = (bytes[i] & 0x0F); // Strip off low nibble
61 
62  out.push_back(nibbleToChar[ch]); // convert the nibble to a String Character
63 
64  i++;
65  }
66 
67  return out;
68  }
69 
74  inline std::string to_hexstring(const std::string& bytes) {
75  uint8_t ch = 0x00;
76  size_t i = 0;
77 
78  if (bytes.size() == 0)
79  return std::string("");
80 
84  const char nibbleToChar[] = {'0', '1', '2', '3', '4', '5',
85  '6', '7', '8', '9', 'a', 'b',
86  'c', 'd', 'e', 'f'};
87 
88  std::string out;
89  out.reserve(bytes.size()*2);
90  while (i < bytes.size()) {
91 
92  ch = (bytes[i] & 0xF0); // Strip off high nibble
93  ch = (ch >> NIBBLE_BITS); // shift the bits down
94  ch = (ch & 0x0F); // must do this is high order bit is on!
95 
96  out.push_back(nibbleToChar[ch]); // convert the nibble to a String Character
97 
98  ch = (bytes[i] & 0x0F); // Strip off low nibble
99 
100  out.push_back(nibbleToChar[ch]); // convert the nibble to a String Character
101 
102  i++;
103  }
104 
105  return out;
106  }
107 
108 
113  inline std::string to_binstring(const boost::container::vector<boost::uint8_t> &byteArray) {
114  std::stringstream bitsRepresentation;
115  const int shift = 8 * sizeof( uint8_t ) - 1;
116  const uint8_t mask = 1 << shift;
117 
118  BOOST_FOREACH(uint8_t byte, byteArray) {
119 
120  for ( size_t i = 1; i <= shift + 1; i++ ) {
121  bitsRepresentation << ( byte & mask ? '1' : '0' );
122  byte <<= 1;
123  }
124  }
125 
126  return bitsRepresentation.str();
127  }
128 
134  inline boost::uint8_t from_hexchar(char highNibbleChar, char lowNibbleChar) {
135  const boost::container::map<char, boost::uint8_t> charToNibble = boost::assign::map_list_of('0', 0)('1', 1)('2', 2)
136  ('3', 3)('4', 4)('5', 5)
137  ('6', 6)('7', 7)('8', 8)
138  ('9', 9)('a', 10)('b', 11)
139  ('c', 12)('d', 13)('e', 14)
140  ('f', 15);
141  if (!isdigit(highNibbleChar)) {
142  highNibbleChar = tolower(highNibbleChar);
143  }
144 
145  if (!isdigit(lowNibbleChar)) {
146  lowNibbleChar = tolower(lowNibbleChar);
147  }
148 
149  if ( (charToNibble.find(highNibbleChar) != charToNibble.end()) && ( charToNibble.find(lowNibbleChar) != charToNibble.end() ) ) {
150  boost::uint8_t highNibble = charToNibble.find(highNibbleChar)->second;
151  boost::uint8_t lowNibble = charToNibble.find(lowNibbleChar)->second;
152 
153  highNibble <<= NIBBLE_BITS; // make it high
154  lowNibble |= highNibble; // merge them together
155 
156  return lowNibble;
157  }
158 
159  return 0; // This is invalid
160  }
161 
167  inline boost::container::vector<boost::uint8_t> from_hexstring(const std::string &hexString) {
168  size_t nibblePaddedSize = ( (hexString.size() / BYTE_NIBBLES) + (hexString.size() % BYTE_NIBBLES) );
169 
170  if ((nibblePaddedSize & 1) != 0) {
171  ++nibblePaddedSize;
172  }
173 
174  boost::container::vector<boost::uint8_t> result;
175  result.reserve(nibblePaddedSize);
176 
177  for (std::string::const_iterator iter = hexString.begin(); iter != hexString.end(); iter += BYTE_NIBBLES) {
178 
179  if ( (iter+1) != hexString.end() ) {
180  result.push_back(from_hexchar(*iter, *(iter+1)));
181  } else {
182  result.push_back(from_hexchar(*iter, '0'));
183  break;
184  }
185  }
186 
187  return result;
188  }
189 
194  inline std::string buffer_from_hexstring(const std::string& hex) {
195  std::vector<char> bytes;
196  for (unsigned int i = 0; i < hex.length(); i += 2) {
197  std::string byteString = hex.substr(i, 2);
198  char byte = (char) strtol(byteString.c_str(), NULL, 16);
199  bytes.push_back(byte);
200  }
201  std::string bb(bytes.begin(),bytes.end());
202  return bb;
203  }
204 
210  template<typename intX_t>
211  inline intX_t from_byteArray(const boost::container::vector<boost::uint8_t> &byteArray) {
212  intX_t result = 0x0;
213 
214  for (size_t i = 0; i < sizeof(intX_t); ++i) {
215  result |= static_cast<intX_t>(byteArray[i] << (CHAR_BIT * (sizeof(intX_t) - (i+1))));
216  }
217 
218  return result;
219  }
220 
228  inline boost::shared_ptr<boost::container::vector<boost::uint8_t> > load_bytearray(const std::string binaryFilePath) {
229  boost::shared_ptr<boost::container::vector<boost::uint8_t> > bytearray;
230  std::ifstream in(binaryFilePath.data(), std::ios_base::in | std::ios::binary);
231 
232  if (in.good()) {
233  in.seekg(0, in.end);
234  std::streampos lengthToRead = in.tellg();
235  in.seekg(0, in.beg);
236 
237  bytearray.reset(new boost::container::vector<boost::uint8_t>(lengthToRead, 0x0));
238  in.read(reinterpret_cast<char*>(&bytearray->at(0)), lengthToRead);
239  in.close();
240  } else {
241  throw std::runtime_error("File " + binaryFilePath + " not found.");
242  }
243 
244  return bytearray;
245  }
246 }}
247 
248 #endif
boost::container::vector< boost::uint8_t > from_hexstring(const std::string &hexString)
This function can be used to parse a string of hexadecimal number back into bits representation. Note that it runs from left to right, putting eventually the last nibble empty if the size of the input string isn&#39;t a multiple of 2.
Definition: utils.hpp:167
-
const size_t BYTE_NIBBLES
Constant telling how much Nibbles are in a byte.
Definition: utils.hpp:29
-
std::string to_hexstring(const boost::uint8_t *bytes, const size_t length)
Convers the given byte array of the given length to a corresponding hexadecimal number in a string...
Definition: utils.hpp:36
-
std::string to_binstring(const boost::container::vector< boost::uint8_t > &byteArray)
Convers the given byte array of the given length to a corresponding binary number in a string...
Definition: utils.hpp:113
-
boost::shared_ptr< boost::container::vector< boost::uint8_t > > load_bytearray(const std::string binaryFilePath)
This methods opens up a file and parses it&#39;s bytes into a bytearray.
Definition: utils.hpp:228
-
const size_t NIBBLE_BITS
Constant telling how much bits there is in a nibble.
Definition: utils.hpp:24
-
std::string buffer_from_hexstring(const std::string &hex)
Converts a string of hexadecimal number into a binary buffer of this valeu.
Definition: utils.hpp:194
- -
boost::uint8_t from_hexchar(char highNibbleChar, char lowNibbleChar)
Converts the given hexChars to the byte corresponding.
Definition: utils.hpp:134
-
intX_t from_byteArray(const boost::container::vector< boost::uint8_t > &byteArray)
This function transforms any byteArray in the chosen (u)int*_t type.
Definition: utils.hpp:211
+
1 #ifndef SWISSARMYKNIFE_BYTES_UTILS_HPP
+
2 #define SWISSARMYKNIFE_BYTES_UTILS_HPP
+
3 
+
4 #include <pre/detail/namespace_compatibility.hpp>
+
5 
+
6 #include <string>
+
7 #include <sstream>
+
8 #include <cctype>
+
9 #include <math.h>
+
10 #include <stdexcept>
+
11 #include <fstream>
+
12 #include <boost/shared_ptr.hpp>
+
13 #include <boost/cstdint.hpp>
+
14 #include <boost/container/vector.hpp>
+
15 #include <boost/container/map.hpp>
+
16 #include <boost/assign.hpp>
+
17 #include <boost/foreach.hpp>
+
18 
+
19 namespace pre { namespace bytes {
+
20 
+
24  const size_t NIBBLE_BITS = 4;
+
25 
+
29  const size_t BYTE_NIBBLES = 2;
+
30 
+
36  inline std::string to_hexstring(const boost::uint8_t *bytes, const size_t length) {
+
37  uint8_t ch = 0x00;
+
38  size_t i = 0;
+
39 
+
40  if (bytes == NULL || length <= 0)
+
41  return std::string("");
+
42 
+
46  const char nibbleToChar[] = {'0', '1', '2', '3', '4', '5',
+
47  '6', '7', '8', '9', 'a', 'b',
+
48  'c', 'd', 'e', 'f'};
+
49 
+
50  std::string out;
+
51  out.reserve(length*2);
+
52  while (i < length) {
+
53 
+
54  ch = (bytes[i] & 0xF0); // Strip off high nibble
+
55  ch = (ch >> NIBBLE_BITS); // shift the bits down
+
56  ch = (ch & 0x0F); // must do this is high order bit is on!
+
57 
+
58  out.push_back(nibbleToChar[ch]); // convert the nibble to a String Character
+
59 
+
60  ch = (bytes[i] & 0x0F); // Strip off low nibble
+
61 
+
62  out.push_back(nibbleToChar[ch]); // convert the nibble to a String Character
+
63 
+
64  i++;
+
65  }
+
66 
+
67  return out;
+
68  }
+
69 
+
74  inline std::string to_hexstring(const std::string& bytes) {
+
75  uint8_t ch = 0x00;
+
76  size_t i = 0;
+
77 
+
78  if (bytes.size() == 0)
+
79  return std::string("");
+
80 
+
84  const char nibbleToChar[] = {'0', '1', '2', '3', '4', '5',
+
85  '6', '7', '8', '9', 'a', 'b',
+
86  'c', 'd', 'e', 'f'};
+
87 
+
88  std::string out;
+
89  out.reserve(bytes.size()*2);
+
90  while (i < bytes.size()) {
+
91 
+
92  ch = (bytes[i] & 0xF0); // Strip off high nibble
+
93  ch = (ch >> NIBBLE_BITS); // shift the bits down
+
94  ch = (ch & 0x0F); // must do this is high order bit is on!
+
95 
+
96  out.push_back(nibbleToChar[ch]); // convert the nibble to a String Character
+
97 
+
98  ch = (bytes[i] & 0x0F); // Strip off low nibble
+
99 
+
100  out.push_back(nibbleToChar[ch]); // convert the nibble to a String Character
+
101 
+
102  i++;
+
103  }
+
104 
+
105  return out;
+
106  }
+
107 
+
108 
+
113  inline std::string to_binstring(const boost::container::vector<boost::uint8_t> &byteArray) {
+
114  std::stringstream bitsRepresentation;
+
115  const int shift = 8 * sizeof( uint8_t ) - 1;
+
116  const uint8_t mask = 1 << shift;
+
117 
+
118  BOOST_FOREACH(uint8_t byte, byteArray) {
+
119 
+
120  for ( size_t i = 1; i <= shift + 1; i++ ) {
+
121  bitsRepresentation << ( byte & mask ? '1' : '0' );
+
122  byte <<= 1;
+
123  }
+
124  }
+
125 
+
126  return bitsRepresentation.str();
+
127  }
+
128 
+
134  inline boost::uint8_t from_hexchar(char highNibbleChar, char lowNibbleChar) {
+
135  const boost::container::map<char, boost::uint8_t> charToNibble = boost::assign::map_list_of('0', 0)('1', 1)('2', 2)
+
136  ('3', 3)('4', 4)('5', 5)
+
137  ('6', 6)('7', 7)('8', 8)
+
138  ('9', 9)('a', 10)('b', 11)
+
139  ('c', 12)('d', 13)('e', 14)
+
140  ('f', 15);
+
141  if (!isdigit(highNibbleChar)) {
+
142  highNibbleChar = tolower(highNibbleChar);
+
143  }
+
144 
+
145  if (!isdigit(lowNibbleChar)) {
+
146  lowNibbleChar = tolower(lowNibbleChar);
+
147  }
+
148 
+
149  if ( (charToNibble.find(highNibbleChar) != charToNibble.end()) && ( charToNibble.find(lowNibbleChar) != charToNibble.end() ) ) {
+
150  boost::uint8_t highNibble = charToNibble.find(highNibbleChar)->second;
+
151  boost::uint8_t lowNibble = charToNibble.find(lowNibbleChar)->second;
+
152 
+
153  highNibble <<= NIBBLE_BITS; // make it high
+
154  lowNibble |= highNibble; // merge them together
+
155 
+
156  return lowNibble;
+
157  }
+
158 
+
159  return 0; // This is invalid
+
160  }
+
161 
+
167  inline boost::container::vector<boost::uint8_t> from_hexstring(const std::string &hexString) {
+
168  size_t nibblePaddedSize = ( (hexString.size() / BYTE_NIBBLES) + (hexString.size() % BYTE_NIBBLES) );
+
169 
+
170  if ((nibblePaddedSize & 1) != 0) {
+
171  ++nibblePaddedSize;
+
172  }
+
173 
+
174  boost::container::vector<boost::uint8_t> result;
+
175  result.reserve(nibblePaddedSize);
+
176 
+
177  for (std::string::const_iterator iter = hexString.begin(); iter != hexString.end(); iter += BYTE_NIBBLES) {
+
178 
+
179  if ( (iter+1) != hexString.end() ) {
+
180  result.push_back(from_hexchar(*iter, *(iter+1)));
+
181  } else {
+
182  result.push_back(from_hexchar(*iter, '0'));
+
183  break;
+
184  }
+
185  }
+
186 
+
187  return result;
+
188  }
+
189 
+
194  inline std::string buffer_from_hexstring(const std::string& hex) {
+
195  std::vector<char> bytes;
+
196  for (unsigned int i = 0; i < hex.length(); i += 2) {
+
197  std::string byteString = hex.substr(i, 2);
+
198  char byte = (char) strtol(byteString.c_str(), NULL, 16);
+
199  bytes.push_back(byte);
+
200  }
+
201  std::string bb(bytes.begin(),bytes.end());
+
202  return bb;
+
203  }
+
204 
+
210  template<typename intX_t>
+
211  inline intX_t from_byteArray(const boost::container::vector<boost::uint8_t> &byteArray) {
+
212  intX_t result = 0x0;
+
213 
+
214  for (size_t i = 0; i < sizeof(intX_t); ++i) {
+
215  result |= static_cast<intX_t>(byteArray[i] << (CHAR_BIT * (sizeof(intX_t) - (i+1))));
+
216  }
+
217 
+
218  return result;
+
219  }
+
220 
+
228  inline boost::shared_ptr<boost::container::vector<boost::uint8_t> > load_bytearray(const std::string binaryFilePath) {
+
229  boost::shared_ptr<boost::container::vector<boost::uint8_t> > bytearray;
+
230  std::ifstream in(binaryFilePath.data(), std::ios_base::in | std::ios::binary);
+
231 
+
232  if (in.good()) {
+
233  in.seekg(0, in.end);
+
234  std::streampos lengthToRead = in.tellg();
+
235  in.seekg(0, in.beg);
+
236 
+
237  bytearray.reset(new boost::container::vector<boost::uint8_t>(lengthToRead, 0x0));
+
238  in.read(reinterpret_cast<char*>(&bytearray->at(0)), lengthToRead);
+
239  in.close();
+
240  } else {
+
241  throw std::runtime_error("File " + binaryFilePath + " not found.");
+
242  }
+
243 
+
244  return bytearray;
+
245  }
+
246 }}
+
247 
+
248 #endif
+
std::string buffer_from_hexstring(const std::string &hex)
Converts a string of hexadecimal number into a binary buffer of this valeu.
Definition: utils.hpp:194
+
intX_t from_byteArray(const boost::container::vector< boost::uint8_t > &byteArray)
This function transforms any byteArray in the chosen (u)int*_t type.
Definition: utils.hpp:211
+
std::string to_binstring(const boost::container::vector< boost::uint8_t > &byteArray)
Convers the given byte array of the given length to a corresponding binary number in a string.
Definition: utils.hpp:113
+
const size_t NIBBLE_BITS
Constant telling how much bits there is in a nibble.
Definition: utils.hpp:24
+
boost::shared_ptr< boost::container::vector< boost::uint8_t > > load_bytearray(const std::string binaryFilePath)
This methods opens up a file and parses it's bytes into a bytearray.
Definition: utils.hpp:228
+
+
boost::uint8_t from_hexchar(char highNibbleChar, char lowNibbleChar)
Converts the given hexChars to the byte corresponding.
Definition: utils.hpp:134
+
boost::container::vector< boost::uint8_t > from_hexstring(const std::string &hexString)
This function can be used to parse a string of hexadecimal number back into bits representation....
Definition: utils.hpp:167
+
std::string to_hexstring(const boost::uint8_t *bytes, const size_t length)
Convers the given byte array of the given length to a corresponding hexadecimal number in a string.
Definition: utils.hpp:36
+
const size_t BYTE_NIBBLES
Constant telling how much Nibbles are in a byte.
Definition: utils.hpp:29
@@ -115,9 +291,9 @@ diff --git a/html/classboost_1_1asio_1_1mockup__serial__port__service-members.html b/html/classboost_1_1asio_1_1mockup__serial__port__service-members.html index cdf2563..b20cb3d 100644 --- a/html/classboost_1_1asio_1_1mockup__serial__port__service-members.html +++ b/html/classboost_1_1asio_1_1mockup__serial__port__service-members.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Member List @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
- + - - + + + +
close(implementation_type &impl, boost::system::error_code &ec)boost::asio::mockup_serial_port_serviceinline construct(implementation_type &impl)boost::asio::mockup_serial_port_serviceinline destroy(implementation_type &impl)boost::asio::mockup_serial_port_serviceinline - get_option(const implementation_type &impl, GettableSerialPortOption &option, boost::system::error_code &ec) const boost::asio::mockup_serial_port_serviceinline + get_option(const implementation_type &impl, GettableSerialPortOption &option, boost::system::error_code &ec) constboost::asio::mockup_serial_port_serviceinline implementation_type typedefboost::asio::mockup_serial_port_service - is_open(const implementation_type &impl) const boost::asio::mockup_serial_port_serviceinline + is_open(const implementation_type &impl) constboost::asio::mockup_serial_port_serviceinline mockup_serial_port_service(boost::asio::io_service &io_service)boost::asio::mockup_serial_port_serviceinlineexplicit move_construct(implementation_type &impl, implementation_type &other_impl)boost::asio::mockup_serial_port_serviceinline native(implementation_type &impl)boost::asio::mockup_serial_port_serviceinline @@ -136,9 +112,9 @@
diff --git a/html/classboost_1_1asio_1_1mockup__serial__port__service.html b/html/classboost_1_1asio_1_1mockup__serial__port__service.html index 7ec7e82..933edb8 100644 --- a/html/classboost_1_1asio_1_1mockup__serial__port__service.html +++ b/html/classboost_1_1asio_1_1mockup__serial__port__service.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: boost::asio::mockup_serial_port_service Class Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
- + - - + + + +
- - - +
- - -

Public Types

+
typedef service_impl_type::implementation_type implementation_type
 The type of a serial port implementation.
 
+
typedef service_impl_type::native_handle_type native_type
 (Deprecated: Use native_handle_type.) The native handle type.
 
+
typedef service_impl_type::native_handle_type native_handle_type
 The native handle type.
 
- - - - - - - - - - + + + - - + - - - - - - - - + + + - - - - - -

Public Member Functions

+
 mockup_serial_port_service (boost::asio::io_service &io_service)
 Construct a new serial port service for the specified io_service.
 
+
void construct (implementation_type &impl)
 Construct a new serial port implementation.
 
+
void move_construct (implementation_type &impl, implementation_type &other_impl)
 Move-construct a new serial port implementation.
 
+
void destroy (implementation_type &impl)
 Destroy a serial port implementation.
 
+
boost::system::error_code open (implementation_type &impl, const std::string &device, boost::system::error_code &ec)
 Open a serial port.
 
+
boost::system::error_code assign (implementation_type &impl, const native_handle_type &handle, boost::system::error_code &ec)
 Assign an existing native handle to a serial port.
 
-bool is_open (const implementation_type &impl) const
 Determine whether the handle is open.
 
+
+bool is_open (const implementation_type &impl) const
 Determine whether the handle is open.
 
boost::system::error_code close (implementation_type &impl, boost::system::error_code &ec)
 Close a serial port implementation.
 
+
native_type native (implementation_type &impl)
 (Deprecated: Use native_handle().) Get the native handle implementation.
 (Deprecated: Use native_handle().) Get the native handle implementation.
 
+
native_handle_type native_handle (implementation_type &impl)
 Get the native handle implementation.
 
+
boost::system::error_code cancel (implementation_type &impl, boost::system::error_code &ec)
 Cancel all asynchronous operations associated with the handle.
 
+
template<typename SettableSerialPortOption >
boost::system::error_code set_option (implementation_type &impl, const SettableSerialPortOption &option, boost::system::error_code &ec)
 Set a serial port option.
 
+
template<typename GettableSerialPortOption >
boost::system::error_code get_option (const implementation_type &impl, GettableSerialPortOption &option, boost::system::error_code &ec) const
 Get a serial port option.
 
+
boost::system::error_code get_option (const implementation_type &impl, GettableSerialPortOption &option, boost::system::error_code &ec) const
 Get a serial port option.
 
boost::system::error_code send_break (implementation_type &impl, boost::system::error_code &ec)
 Send a break sequence to the serial port.
 
+
template<typename ConstBufferSequence >
std::size_t write_some (implementation_type &impl, const ConstBufferSequence &buffers, boost::system::error_code &ec)
 Write the given data to the stream.
 
+
template<typename ConstBufferSequence , typename WriteHandler >
 BOOST_ASIO_INITFN_RESULT_TYPE (WriteHandler, void(boost::system::error_code, std::size_t)) async_write_some(implementation_type &impl
 Start an asynchronous write.
 
+
const ConstBufferSequence BOOST_ASIO_MOVE_ARG (WriteHandler) handler)
 
+
template<typename MutableBufferSequence >
std::size_t read_some (implementation_type &impl, const MutableBufferSequence &buffers, boost::system::error_code &ec)
 Read some data from the stream.
 
+
template<typename MutableBufferSequence , typename ReadHandler >
 BOOST_ASIO_INITFN_RESULT_TYPE (ReadHandler, void(boost::system::error_code, std::size_t)) async_read_some(implementation_type &impl
 Start an asynchronous read.
 
+
const MutableBufferSequence BOOST_ASIO_MOVE_ARG (ReadHandler) handler)
 
- -

Public Attributes

+
const ConstBufferSequence & buffers
 
+
const MutableBufferSequence & buffers
 

Detailed Description

mockup_serial_port_service : A virtual serial port allowing to write cross platform unit tests of serial communicating application.

This class can be used in your unit tests to simulate a boost::asio::serial_port.

-

Example

-
using namespace boost::asio;
boost::thread simulate_writing_device([](){
io_service ios;
basic_serial_port<mockup_serial_port_service> port{ios, "my_fake_serial_port"};
const std::string message = "Hello";
for (;;) {
boost::asio::write(port, buffer(message.data(), message.size()));
boost::this_thread::sleep_for(boost::chrono::seconds(1));
}
});
boost::thread simulate_reading_device([](){
io_service ios;
basic_serial_port<mockup_serial_port_service> port{ios, "my_fake_serial_port"};
for (;;) {
char message[5];
boost::asio::read(port, buffer(message, 5));
std::cout << "received : " << std::string(message, 5) << std::endl;
}
});
    +

    +Example

    +
    using namespace boost::asio;
    +
    +
    boost::thread simulate_writing_device([](){
    +
    io_service ios;
    +
    basic_serial_port<mockup_serial_port_service> port{ios, "my_fake_serial_port"};
    +
    +
    const std::string message = "Hello";
    +
    +
    for (;;) {
    +
    boost::asio::write(port, buffer(message.data(), message.size()));
    +
    boost::this_thread::sleep_for(boost::chrono::seconds(1));
    +
    }
    +
    +
    });
    +
    +
    boost::thread simulate_reading_device([](){
    +
    io_service ios;
    +
    basic_serial_port<mockup_serial_port_service> port{ios, "my_fake_serial_port"};
    +
    +
    for (;;) {
    +
    char message[5];
    +
    boost::asio::read(port, buffer(message, 5));
    +
    std::cout << "received : " << std::string(message, 5) << std::endl;
    +
    }
    +
    +
    });
    +
    @@ -239,6 +240,7 @@

    Example

  • pre/boost/asio/mockup_serial_port_service.hpp
+
@@ -247,9 +249,9 @@

Example

diff --git a/html/classes.html b/html/classes.html index cbcb47a..a00c2ab 100644 --- a/html/classes.html +++ b/html/classes.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Class Index @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
- + - - + + + +
Class Index
-
A | C | F | H | M | S | U
+
a | c | f | h | m | s | u
- - - + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + - + +
  a  
-
  f  
-
handles_container< pre::spirit::karma::sizeof_directive< Subject >, Attribute, Context, Iterator > (boost::spirit::traits)   mockup_serial_port_service (boost::asio)   use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > > > (boost::spirit)   
has_semantic_action< pre::spirit::karma::crc_of_directive< Subject > > (boost::spirit::traits)   
  s  
-
crc_of_directive::attribute (pre::spirit::karma)   function_traits (pre::type_traits)   has_semantic_action< pre::spirit::karma::sizeof_directive< Subject > > (boost::spirit::traits)   
sizeof_directive::attribute (pre::spirit::karma)   function_traits< F, detail::enable_if_is_function_member_pointer_t< F > > (pre::type_traits)   
  m  
-
sizeof_directive (pre::spirit::karma)   
  f  
+
handles_container< pre::spirit::karma::sizeof_directive< Subject >, Attribute, Context, Iterator > (boost::spirit::traits)   mockup_serial_port_service (boost::asio)   use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > > > (boost::spirit)   
has_semantic_action< pre::spirit::karma::crc_of_directive< Subject > > (boost::spirit::traits)   
  s  
+
crc_of_directive::attribute (pre::spirit::karma)   function_traits (pre::type_traits)   has_semantic_action< pre::spirit::karma::sizeof_directive< Subject > > (boost::spirit::traits)   
sizeof_directive::attribute (pre::spirit::karma)   function_traits< F, detail::enable_if_is_function_member_pointer_t< F > > (pre::type_traits)   
  m  
+
sizeof_directive (pre::spirit::karma)   
  c  
-
function_traits< F, detail::enable_if_is_function_t< F > > (pre::type_traits)   
  u  
-
function_traits< F, detail::enable_if_is_lambda_t< F > > (pre::type_traits)   make_directive< terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > >, Subject, Modifiers > (boost::spirit::karma)   
crc_of_directive (pre::spirit::karma)   
  h  
-
make_directive< terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > >, Subject, Modifiers > (boost::spirit::karma)   use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > > > (boost::spirit)   
function_traits< F, detail::enable_if_is_function_t< F > > (pre::type_traits)   
  u  
+
function_traits< F, detail::enable_if_is_lambda_t< F > > (pre::type_traits)   make_directive< terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > >, Subject, Modifiers > (boost::spirit::karma)   
crc_of_directive (pre::spirit::karma)   
  h  
+
make_directive< terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > >, Subject, Modifiers > (boost::spirit::karma)   use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > > > (boost::spirit)   
handles_container< pre::spirit::karma::crc_of_directive< Subject >, Attribute, Context, Iterator > (boost::spirit::traits)   
handles_container< pre::spirit::karma::crc_of_directive< Subject >, Attribute, Context, Iterator > (boost::spirit::traits)   
-
A | C | F | H | M | S | U
+
a | c | f | h | m | s | u
@@ -125,9 +125,9 @@ diff --git a/html/crc__of_8hpp_source.html b/html/crc__of_8hpp_source.html index 29a037b..c58a3ac 100644 --- a/html/crc__of_8hpp_source.html +++ b/html/crc__of_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/spirit/karma/crc_of.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
crc_of.hpp
-
1 // Copyright (c) 2015 Damien Buhl (alias daminetreg)
2 //
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 #ifndef PRE_SPIRIT_KARMA_CRC_OF_HPP
7 #define PRE_SPIRIT_KARMA_CRC_OF_HPP
8 
9 #if defined(_MSC_VER)
10 #pragma once
11 #endif
12 
13 #include <boost/spirit/home/karma/meta_compiler.hpp>
14 #include <boost/spirit/home/karma/generator.hpp>
15 #include <boost/spirit/home/karma/domain.hpp>
16 #include <boost/spirit/home/karma/detail/output_iterator.hpp>
17 #include <boost/spirit/home/support/unused.hpp>
18 #include <boost/spirit/home/support/info.hpp>
19 #include <boost/spirit/home/support/common_terminals.hpp>
20 #include <boost/spirit/home/support/has_semantic_action.hpp>
21 #include <boost/spirit/home/support/handles_container.hpp>
22 #include <boost/spirit/home/karma/detail/attributes.hpp>
23 
24 #include <string>
25 #include <boost/crc.hpp>
26 
28 // definition the place holder
29 namespace pre { namespace spirit { namespace karma {
30  BOOST_SPIRIT_TERMINAL_EX(crc_of);
31 }}}
32 
33 namespace boost { namespace spirit {
35  // Enablers
37 
38  template <typename T>
39  struct use_directive<karma::domain
40  , terminal_ex<pre::spirit::karma::tag::crc_of // enables crc_of(boost::ref(crc))[p]
41  , fusion::vector1<T> >
42  > : mpl::true_ {};
43 
44 }}
45 
46 namespace pre { namespace spirit { namespace karma {
47  namespace mpl = boost::mpl;
48 
49  using boost::spirit::buffer_type;
50 
52  // crc_of_directive buffers all generated output of the embedded generator
53  // and flushes it only if the whole embedded generator succeeds
55  template <typename Subject>
56  struct crc_of_directive : boost::spirit::karma::unary_generator<crc_of_directive<Subject> >
57  {
58  typedef Subject subject_type;
59  typedef mpl::int_<
60  subject_type::properties::value |
61  boost::spirit::karma::generator_properties::countingbuffer
62  > properties;
63 
64  crc_of_directive(Subject const& subject, uint16_t& crc)
65  : subject(subject), crc(crc) {}
66 
67  template <typename Context, typename Iterator>
68  struct attribute
69  : boost::spirit::traits::attribute_of<subject_type, Context, Iterator>
70  {};
71 
72  template <typename OutputIterator, typename Context, typename Delimiter
73  , typename Attribute>
74  bool generate(OutputIterator& sink, Context& ctx, Delimiter const& d
75  , Attribute const& attr) const
76  {
77  // wrap the given output iterator to compute crc on output
78  boost::spirit::karma::detail::enable_buffering<OutputIterator> buffering(sink);
79  boost::spirit::karma::detail::enable_counting<OutputIterator> counting(sink);
80  bool r = subject.generate(sink, ctx, d, attr);
81 
82  std::string buffered_data;
83  std::back_insert_iterator<std::string> crc_sink(buffered_data);
84  buffering.buffer_copy_to(crc_sink);
85 
86  boost::crc_ccitt_type crc_ccitt;
87  crc_ccitt.reset();
88  crc_ccitt.process_bytes(buffered_data.data(), buffered_data.size());
89  crc = crc_ccitt.checksum();
90 
91  buffering.buffer_copy();
92  return r;
93  }
94 
95  template <typename Context>
96  boost::spirit::info what(Context& context) const
97  {
98  return info("crc_of", subject.what(context));
99  }
100 
101  Subject subject;
102  uint16_t& crc;
103  };
104 }}}
105 
106 
107 namespace boost { namespace spirit { namespace karma {
108 
110  // Generator generators: make_xxx function (objects)
112  template <typename T, typename Subject, typename Modifiers>
113  struct make_directive<
114  terminal_ex<pre::spirit::karma::tag::crc_of, fusion::vector1<T> >,
115  Subject, Modifiers>
116  {
118 
119  template <typename Terminal>
120  result_type operator()(Terminal & term, Subject const& subject
121  , unused_type) const
122  {
123  return result_type(subject, fusion::at_c<0>(term.args));
124  }
125  };
126 
127 }}}
128 
129 namespace boost { namespace spirit { namespace traits
130 {
132  template <typename Subject>
133  struct has_semantic_action<pre::spirit::karma::crc_of_directive<Subject> >
134  : unary_has_semantic_action<Subject> {};
135 
137  template <typename Subject, typename Attribute, typename Context
138  , typename Iterator>
139  struct handles_container<pre::spirit::karma::crc_of_directive<Subject>, Attribute
140  , Context, Iterator>
141  : unary_handles_container<Subject, Attribute, Context, Iterator> {};
142 }}}
143 
144 #endif
Definition: crc_of.hpp:56
- - - +
1 // Copyright (c) 2015 Damien Buhl (alias daminetreg)
+
2 //
+
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
+
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
5 
+
6 #ifndef PRE_SPIRIT_KARMA_CRC_OF_HPP
+
7 #define PRE_SPIRIT_KARMA_CRC_OF_HPP
+
8 
+
9 #if defined(_MSC_VER)
+
10 #pragma once
+
11 #endif
+
12 
+
13 #include <boost/spirit/home/karma/meta_compiler.hpp>
+
14 #include <boost/spirit/home/karma/generator.hpp>
+
15 #include <boost/spirit/home/karma/domain.hpp>
+
16 #include <boost/spirit/home/karma/detail/output_iterator.hpp>
+
17 #include <boost/spirit/home/support/unused.hpp>
+
18 #include <boost/spirit/home/support/info.hpp>
+
19 #include <boost/spirit/home/support/common_terminals.hpp>
+
20 #include <boost/spirit/home/support/has_semantic_action.hpp>
+
21 #include <boost/spirit/home/support/handles_container.hpp>
+
22 #include <boost/spirit/home/karma/detail/attributes.hpp>
+
23 
+
24 #include <string>
+
25 #include <boost/crc.hpp>
+
26 
+
28 // definition the place holder
+
29 namespace pre { namespace spirit { namespace karma {
+
30  BOOST_SPIRIT_TERMINAL_EX(crc_of);
+
31 }}}
+
32 
+
33 namespace boost { namespace spirit {
+
35  // Enablers
+
37 
+
38  template <typename T>
+
39  struct use_directive<karma::domain
+
40  , terminal_ex<pre::spirit::karma::tag::crc_of // enables crc_of(boost::ref(crc))[p]
+
41  , fusion::vector1<T> >
+
42  > : mpl::true_ {};
+
43 
+
44 }}
+
45 
+
46 namespace pre { namespace spirit { namespace karma {
+
47  namespace mpl = boost::mpl;
+
48 
+
49  using boost::spirit::buffer_type;
+
50 
+
52  // crc_of_directive buffers all generated output of the embedded generator
+
53  // and flushes it only if the whole embedded generator succeeds
+
55  template <typename Subject>
+
56  struct crc_of_directive : boost::spirit::karma::unary_generator<crc_of_directive<Subject> >
+
57  {
+
58  typedef Subject subject_type;
+
59  typedef mpl::int_<
+
60  subject_type::properties::value |
+
61  boost::spirit::karma::generator_properties::countingbuffer
+
62  > properties;
+
63 
+
64  crc_of_directive(Subject const& subject, uint16_t& crc)
+
65  : subject(subject), crc(crc) {}
+
66 
+
67  template <typename Context, typename Iterator>
+
68  struct attribute
+
69  : boost::spirit::traits::attribute_of<subject_type, Context, Iterator>
+
70  {};
+
71 
+
72  template <typename OutputIterator, typename Context, typename Delimiter
+
73  , typename Attribute>
+
74  bool generate(OutputIterator& sink, Context& ctx, Delimiter const& d
+
75  , Attribute const& attr) const
+
76  {
+
77  // wrap the given output iterator to compute crc on output
+
78  boost::spirit::karma::detail::enable_buffering<OutputIterator> buffering(sink);
+
79  boost::spirit::karma::detail::enable_counting<OutputIterator> counting(sink);
+
80  bool r = subject.generate(sink, ctx, d, attr);
+
81 
+
82  std::string buffered_data;
+
83  std::back_insert_iterator<std::string> crc_sink(buffered_data);
+
84  buffering.buffer_copy_to(crc_sink);
+
85 
+
86  boost::crc_ccitt_type crc_ccitt;
+
87  crc_ccitt.reset();
+
88  crc_ccitt.process_bytes(buffered_data.data(), buffered_data.size());
+
89  crc = crc_ccitt.checksum();
+
90 
+
91  buffering.buffer_copy();
+
92  return r;
+
93  }
+
94 
+
95  template <typename Context>
+
96  boost::spirit::info what(Context& context) const
+
97  {
+
98  return info("crc_of", subject.what(context));
+
99  }
+
100 
+
101  Subject subject;
+
102  uint16_t& crc;
+
103  };
+
104 }}}
+
105 
+
106 
+
107 namespace boost { namespace spirit { namespace karma {
+
108 
+
110  // Generator generators: make_xxx function (objects)
+
112  template <typename T, typename Subject, typename Modifiers>
+
113  struct make_directive<
+
114  terminal_ex<pre::spirit::karma::tag::crc_of, fusion::vector1<T> >,
+
115  Subject, Modifiers>
+
116  {
+ +
118 
+
119  template <typename Terminal>
+
120  result_type operator()(Terminal & term, Subject const& subject
+
121  , unused_type) const
+
122  {
+
123  return result_type(subject, fusion::at_c<0>(term.args));
+
124  }
+
125  };
+
126 
+
127 }}}
+
128 
+
129 namespace boost { namespace spirit { namespace traits
+
130 {
+
132  template <typename Subject>
+
133  struct has_semantic_action<pre::spirit::karma::crc_of_directive<Subject> >
+
134  : unary_has_semantic_action<Subject> {};
+
135 
+
137  template <typename Subject, typename Attribute, typename Context
+
138  , typename Iterator>
+
139  struct handles_container<pre::spirit::karma::crc_of_directive<Subject>, Attribute
+
140  , Context, Iterator>
+
141  : unary_handles_container<Subject, Attribute, Context, Iterator> {};
+
142 }}}
+
143 
+
144 #endif
+
Definition: crc_of.hpp:68
+
+
Definition: crc_of.hpp:56
@@ -109,9 +222,9 @@ diff --git a/html/dir_09b268e1b790775097221f5352fe00de.html b/html/dir_09b268e1b790775097221f5352fe00de.html index d041247..7af953c 100644 --- a/html/dir_09b268e1b790775097221f5352fe00de.html +++ b/html/dir_09b268e1b790775097221f5352fe00de.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/enums Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
enums Directory Reference
- - -

-Files

@@ -109,9 +84,9 @@ diff --git a/html/dir_2ab61e8b016f1dea64c8ee0821411bca.html b/html/dir_2ab61e8b016f1dea64c8ee0821411bca.html index 5aafe4e..e24170d 100644 --- a/html/dir_2ab61e8b016f1dea64c8ee0821411bca.html +++ b/html/dir_2ab61e8b016f1dea64c8ee0821411bca.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/type_traits Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
type_traits Directory Reference
- - -

-Files

@@ -109,9 +84,9 @@ diff --git a/html/dir_6235959bf0ef7ff648d3d2e4dffd9ea0.html b/html/dir_6235959bf0ef7ff648d3d2e4dffd9ea0.html index c7c7fd4..876c32c 100644 --- a/html/dir_6235959bf0ef7ff648d3d2e4dffd9ea0.html +++ b/html/dir_6235959bf0ef7ff648d3d2e4dffd9ea0.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/spirit/karma Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
karma Directory Reference
- - -

-Files

@@ -109,9 +84,9 @@ diff --git a/html/dir_739a206cd6ab56995fa7449e9395e817.html b/html/dir_739a206cd6ab56995fa7449e9395e817.html index 45db246..b0c2f43 100644 --- a/html/dir_739a206cd6ab56995fa7449e9395e817.html +++ b/html/dir_739a206cd6ab56995fa7449e9395e817.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/functional Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
functional Directory Reference
- - -

-Files

@@ -109,9 +84,9 @@ diff --git a/html/dir_7f2ef62a8c8fa26d9463d434305f243e.html b/html/dir_7f2ef62a8c8fa26d9463d434305f243e.html index 247cb6e..b011a9c 100644 --- a/html/dir_7f2ef62a8c8fa26d9463d434305f243e.html +++ b/html/dir_7f2ef62a8c8fa26d9463d434305f243e.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/bits Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
bits Directory Reference
- - -

-Files

@@ -109,9 +84,9 @@ diff --git a/html/dir_8dde8daed2b88342e87fd68178198b82.html b/html/dir_8dde8daed2b88342e87fd68178198b82.html index c321157..1d2b7c3 100644 --- a/html/dir_8dde8daed2b88342e87fd68178198b82.html +++ b/html/dir_8dde8daed2b88342e87fd68178198b82.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +

Directories

- - + + + +

-Files

directory  boost
 
directory  spirit
 
@@ -112,9 +92,9 @@
diff --git a/html/dir_94620701bf49b3def405649b0946f7d2.html b/html/dir_94620701bf49b3def405649b0946f7d2.html index 6f31f66..82d8aa9 100644 --- a/html/dir_94620701bf49b3def405649b0946f7d2.html +++ b/html/dir_94620701bf49b3def405649b0946f7d2.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/bytes Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
bytes Directory Reference
- - -

-Files

@@ -109,9 +84,9 @@ diff --git a/html/dir_9f2437bed472168a169f3a2f7eac9154.html b/html/dir_9f2437bed472168a169f3a2f7eac9154.html index 982e156..2ae170b 100644 --- a/html/dir_9f2437bed472168a169f3a2f7eac9154.html +++ b/html/dir_9f2437bed472168a169f3a2f7eac9154.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/spirit Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
diff --git a/html/dir_df1f791fc526c3693c1dee90c7062b8f.html b/html/dir_df1f791fc526c3693c1dee90c7062b8f.html index 13cdbe1..0994585 100644 --- a/html/dir_df1f791fc526c3693c1dee90c7062b8f.html +++ b/html/dir_df1f791fc526c3693c1dee90c7062b8f.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/boost Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
diff --git a/html/dir_e68e8157741866f444e17edd764ebbae.html b/html/dir_e68e8157741866f444e17edd764ebbae.html new file mode 100644 index 0000000..20e332b --- /dev/null +++ b/html/dir_e68e8157741866f444e17edd764ebbae.html @@ -0,0 +1,92 @@ + + + + + + + + + + + lib-cpp-pre: doc Directory Reference + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
doc Directory Reference
+
+
+
+ + +
+
+
+
+
+ + + diff --git a/html/dir_f51527c34ee6a7e329b5d88af800d657.html b/html/dir_f51527c34ee6a7e329b5d88af800d657.html index d3cfb3a..dcc12b8 100644 --- a/html/dir_f51527c34ee6a7e329b5d88af800d657.html +++ b/html/dir_f51527c34ee6a7e329b5d88af800d657.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/json Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
json Directory Reference
- - -

-Files

@@ -109,9 +84,9 @@
diff --git a/html/dir_fa2520c62bc4a50789c2cb0c35212574.html b/html/dir_fa2520c62bc4a50789c2cb0c35212574.html index ce23ee9..d078dec 100644 --- a/html/dir_fa2520c62bc4a50789c2cb0c35212574.html +++ b/html/dir_fa2520c62bc4a50789c2cb0c35212574.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/boost/asio Directory Reference @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
asio Directory Reference
- - -

-Files

@@ -109,9 +84,9 @@
diff --git a/html/doc_8hpp_source.html b/html/doc_8hpp_source.html index 565ddb0..bb71887 100644 --- a/html/doc_8hpp_source.html +++ b/html/doc_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/doc.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
doc.hpp
-
1 
+
1 
+
@@ -105,9 +85,9 @@ diff --git a/html/doxygen.css b/html/doxygen.css index 1425ec5..73ecbb2 100644 --- a/html/doxygen.css +++ b/html/doxygen.css @@ -1,9 +1,13 @@ -/* The standard CSS for doxygen 1.8.11 */ +/* The standard CSS for doxygen 1.8.17 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; } +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + /* @group Heading Levels */ h1.groupheader { @@ -49,17 +53,24 @@ dt { font-weight: bold; } -div.multicol { +ul.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; + column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; + column-count: 3; } p.startli, p.startdd { margin-top: 2px; } +th p.starttd, p.intertd, p.endtd { + font-size: 100%; + font-weight: 700; +} + p.starttd { margin-top: 0px; } @@ -76,6 +87,15 @@ p.endtd { margin-bottom: 2px; } +p.interli { +} + +p.interdd { +} + +p.intertd { +} + /* @end */ caption { @@ -130,12 +150,12 @@ a.qindex { a.qindexHL { font-weight: bold; background-color: #9CAFD4; - color: #ffffff; + color: #FFFFFF; border: 1px double #869DCA; } .contents a.qindexHL:visited { - color: #ffffff; + color: #FFFFFF; } a.el { @@ -159,6 +179,25 @@ dl.el { margin-left: -1cm; } +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; @@ -173,8 +212,8 @@ pre.fragment { } div.fragment { - padding: 4px 6px; - margin: 4px 8px 4px 2px; + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; background-color: #FBFCFD; border: 1px solid #C4CFE5; } @@ -232,10 +271,19 @@ span.lineno a:hover { background-color: #C8C8C8; } +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + div.ah, span.ah { background-color: black; font-weight: bold; - color: #ffffff; + color: #FFFFFF; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; @@ -311,7 +359,7 @@ img.formulaDsp { } -img.formulaInl { +img.formulaInl, img.inline { vertical-align: middle; } @@ -389,6 +437,13 @@ blockquote { padding: 0 12px 0 16px; } +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + /* @end */ /* @@ -485,7 +540,7 @@ table.memberdecls { white-space: nowrap; } -.memItemRight { +.memItemRight, .memTemplItemRight { width: 100%; } @@ -501,6 +556,29 @@ table.memberdecls { /* Styles for detailed member documentation */ +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + .memtemplate { font-size: 80%; color: #4665A2; @@ -539,7 +617,7 @@ table.memberdecls { } .memname { - font-weight: bold; + font-weight: 400; margin-left: 6px; } @@ -555,24 +633,24 @@ table.memberdecls { color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; + background-color: #DFE5F1; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; - border-top-left-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; } +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; @@ -630,17 +708,17 @@ dl.reflist dd { padding-left: 0px; } -.params .paramname, .retval .paramname { +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { font-weight: bold; vertical-align: top; } -.params .paramtype { +.params .paramtype, .tparams .paramtype { font-style: italic; vertical-align: top; } -.params .paramdir { +.params .paramdir, .tparams .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } @@ -914,6 +992,7 @@ table.fieldtable { padding-bottom: 4px; padding-top: 5px; text-align:left; + font-weight: 400; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; @@ -1044,72 +1123,143 @@ div.headertitle padding: 5px 5px 5px 10px; } -dl -{ - padding: 0 0 0 10px; +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; } -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { margin-left: 0px; padding-left: 0px; } -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; } -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; } -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; } -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; } -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00C0E0; +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; } -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; } -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; } dl.section dd { @@ -1178,6 +1328,11 @@ dl.section dd { text-align: center; } +.plantumlgraph +{ + text-align: center; +} + .diagraph { text-align: center; @@ -1221,6 +1376,11 @@ div.toc { width: 200px; } +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; @@ -1229,6 +1389,12 @@ div.toc li { padding-top: 2px; } +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + div.toc h3 { font: bold 12px/1.2 Arial,FreeSans,sans-serif; color: #4665A2; @@ -1258,6 +1424,26 @@ div.toc li.level4 { margin-left: 45px; } +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + .inherit_header { font-weight: bold; color: gray; @@ -1371,7 +1557,7 @@ tr.heading h2 { } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #ffffff; + border-top-color: #FFFFFF; border-width: 10px; margin: 0px -10px; } @@ -1399,7 +1585,7 @@ tr.heading h2 { } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #ffffff; + border-bottom-color: #FFFFFF; border-width: 10px; margin: 0px -10px; } @@ -1426,7 +1612,7 @@ tr.heading h2 { left: 100%; } #powerTip.e:after { - border-left-color: #ffffff; + border-left-color: #FFFFFF; border-width: 10px; top: 50%; margin-top: -10px; @@ -1442,7 +1628,7 @@ tr.heading h2 { right: 100%; } #powerTip.w:after { - border-right-color: #ffffff; + border-right-color: #FFFFFF; border-width: 10px; top: 50%; margin-top: -10px; @@ -1473,3 +1659,113 @@ tr.heading h2 { } } +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/html/dynsections.js b/html/dynsections.js index 85e1836..ea0a7b3 100644 --- a/html/dynsections.js +++ b/html/dynsections.js @@ -1,3 +1,26 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); @@ -15,7 +38,7 @@ function toggleVisibility(linkObj) summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } + } return false; } @@ -94,4 +117,4 @@ function toggleInherit(id) $(img).attr('src',src.substring(0,src.length-10)+'open.png'); } } - +/* @license-end */ diff --git a/html/files.html b/html/files.html index 2bde61d..18d1294 100644 --- a/html/files.html +++ b/html/files.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: File List @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
diff --git a/html/from__json_8hpp_source.html b/html/from__json_8hpp_source.html index b5be397..190d131 100644 --- a/html/from__json_8hpp_source.html +++ b/html/from__json_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/json/from_json.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
from_json.hpp
-
1 #ifndef PRE_JSON_FROM_JSON_HPP
2 #define PRE_JSON_FROM_JSON_HPP
3 
4 #include <pre/json/detail/dejsonizer.hpp>
5 
6 namespace pre { namespace json {
7 
68  template<class T>
69  T from_json(const std::string& serialized_json) {
70  const nlohmann::json json_object = nlohmann::json::parse(serialized_json);
71  T object;
72  detail::dejsonizer dejsonizer(json_object);
73  dejsonizer(object);
74  return object;
75  }
76 
80  template<class T>
81  T from_json(const nlohmann::json& json_object) {
82  T object;
83  detail::dejsonizer dejsonizer(json_object);
84  dejsonizer(object);
85  return object;
86  }
87 }}
88 
89 #endif
-
T from_json(const std::string &serialized_json)
Deserialize any json object or value in a C++ type.
Definition: from_json.hpp:69
+
1 #ifndef PRE_JSON_FROM_JSON_HPP
+
2 #define PRE_JSON_FROM_JSON_HPP
+
3 
+
4 #include <pre/json/detail/dejsonizer.hpp>
+
5 
+
6 namespace pre { namespace json {
+
7 
+
68  template<class T>
+
69  T from_json(const std::string& serialized_json) {
+
70  const nlohmann::json json_object = nlohmann::json::parse(serialized_json);
+
71  T object;
+
72  detail::dejsonizer dejsonizer(json_object);
+
73  dejsonizer(object);
+
74  return object;
+
75  }
+
76 
+
80  template<class T>
+
81  T from_json(const nlohmann::json& json_object) {
+
82  T object;
+
83  detail::dejsonizer dejsonizer(json_object);
+
84  dejsonizer(object);
+
85  return object;
+
86  }
+
87 }}
+
88 
+
89 #endif
+ +
T from_json(const std::string &serialized_json)
Deserialize any json object or value in a C++ type.
Definition: from_json.hpp:69
@@ -107,9 +112,9 @@
diff --git a/html/function__traits_8hpp_source.html b/html/function__traits_8hpp_source.html index a2d3a01..96ca1d6 100644 --- a/html/function__traits_8hpp_source.html +++ b/html/function__traits_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/type_traits/function_traits.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
- + - - + + + +
function_traits.hpp
-
1 
7 #ifndef PRE_TYPE_TRAITS_FUNCTION_TRAITS_HPP
8 #define PRE_TYPE_TRAITS_FUNCTION_TRAITS_HPP
9 
10 #include <pre/type_traits/detail/function_traits_impl.hpp>
11 
12 namespace pre { namespace type_traits {
13 
49  template<typename F, typename = void>
51 
52  template<typename F>
53  struct function_traits<F, detail::enable_if_is_lambda_t<F> >
54  : public detail::function_traits_impl<decltype(&F::operator())> {};
55 
56  template<typename F>
57  struct function_traits<F, detail::enable_if_is_function_t<F> >
58  : public detail::function_traits_impl<typename std::remove_pointer<F>::type> {};
59 
60  template<typename F>
61  struct function_traits<F, detail::enable_if_is_function_member_pointer_t<F> >
62  : public detail::function_traits_impl_member<F> {};
63 
64 
65 }}
66 
67 
68 #endif /*PRE_TYPE_TRAITS_FUNCTION_TRAITS_HPP*/
-
Provides access to lambda and functions arity, return type, arguments type and access as std::functio...
Definition: function_traits.hpp:50
+
1 
+
7 #ifndef PRE_TYPE_TRAITS_FUNCTION_TRAITS_HPP
+
8 #define PRE_TYPE_TRAITS_FUNCTION_TRAITS_HPP
+
9 
+
10 #include <pre/type_traits/detail/function_traits_impl.hpp>
+
11 
+
12 namespace pre { namespace type_traits {
+
13 
+
49  template<typename F, typename = void>
+ +
51 
+
52  template<typename F>
+
53  struct function_traits<F, detail::enable_if_is_lambda_t<F> >
+
54  : public detail::function_traits_impl<decltype(&F::operator())> {};
+
55 
+
56  template<typename F>
+
57  struct function_traits<F, detail::enable_if_is_function_t<F> >
+
58  : public detail::function_traits_impl<typename std::remove_pointer<F>::type> {};
+
59 
+
60  template<typename F>
+
61  struct function_traits<F, detail::enable_if_is_function_member_pointer_t<F> >
+
62  : public detail::function_traits_impl_member<F> {};
+
63 
+
64 
+
65 }}
+
66 
+
67 
+
68 #endif /*PRE_TYPE_TRAITS_FUNCTION_TRAITS_HPP*/
+
+
Provides access to lambda and functions arity, return type, arguments type and access as std::functio...
Definition: function_traits.hpp:50
@@ -107,9 +114,9 @@ diff --git a/html/functions.html b/html/functions.html index e115566..19a4f04 100644 --- a/html/functions.html +++ b/html/functions.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Class Members @@ -14,9 +14,6 @@ - @@ -38,50 +35,22 @@
- + - - - + + + +
boost::asio::mockup_serial_port_service
  • get_option() -: boost::asio::mockup_serial_port_service +: boost::asio::mockup_serial_port_service
  • implementation_type : boost::asio::mockup_serial_port_service
  • is_open() -: boost::asio::mockup_serial_port_service +: boost::asio::mockup_serial_port_service
  • mockup_serial_port_service() : boost::asio::mockup_serial_port_service @@ -169,9 +138,9 @@
  • diff --git a/html/functions_func.html b/html/functions_func.html index dbc2772..5de2488 100644 --- a/html/functions_func.html +++ b/html/functions_func.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Class Members - Functions @@ -14,9 +14,6 @@ - @@ -38,50 +35,22 @@
    - + - - - + + + +
    boost::asio::mockup_serial_port_service
  • get_option() -: boost::asio::mockup_serial_port_service +: boost::asio::mockup_serial_port_service
  • is_open() -: boost::asio::mockup_serial_port_service +: boost::asio::mockup_serial_port_service
  • mockup_serial_port_service() : boost::asio::mockup_serial_port_service @@ -160,9 +129,9 @@
  • diff --git a/html/functions_type.html b/html/functions_type.html index de44006..b941b31 100644 --- a/html/functions_type.html +++ b/html/functions_type.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Class Members - Typedefs @@ -14,9 +14,6 @@ - @@ -38,50 +35,22 @@
    - + - - - + + + +
    diff --git a/html/hierarchy.html b/html/hierarchy.html index 5eba7d9..81c92e0 100644 --- a/html/hierarchy.html +++ b/html/hierarchy.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Class Hierarchy @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    diff --git a/html/index.html b/html/index.html index 758f8b1..0f4bf55 100644 --- a/html/index.html +++ b/html/index.html @@ -6,17 +6,14 @@ - + - lib-cpp-pre: lib-cpp-pre + lib-cpp-pre: Main Page - @@ -38,35 +35,22 @@
    - + - + + + +
    -
    lib-cpp-pre
    +
    lib-cpp-pre Documentation
    -

    C++11 header-only boost companion library baked with love.

    -

    Features

    - -

    About

    -

    This C++11 header-only library provides utilities that we miss in Boost for the moment when writing productive code.

    -

    We author it in our free time to help our personal project and companies to centralize useful reusable code, that we polish until we can propose it to the Boost Libraries.

    -

    We always deprecate our own implementation when the Boost community finally accepts them, because we are just a backward-compatible staging-library for small Boost utilities.

    -

    That's why we named it pre, like pre::boost.

    -

    Getting started

    -

    The library is header only, but has dependencies on :

      -
    • Boost 1.60.0
    • -
    • nlohmann-json
    • -
    -

    With hunter CMake Package manager

    -

    Simply drop in your CMakeLists.txt the following :

    1 hunter_add_package(lib-cpp-pre)
    2 find_package(lib-cpp-pre 1.3.7 REQUIRED)
    3 include_directories(AFTER ${LIB_CPP_PRE_INCLUDE_DIRS})

    Without hunter

    -

    You can install these dependencies yourself, and then install the library this way :

    1 mkdir build/
    2 cd build/
    3 cmake .. -DHUNTER_ENABLED=OFF && make install

    What we already brought to Boost

    - -

    License

    -

    Licensed under the MIT License, see [LICENSE](LICENSE).

    -

    Contributors

    - -
    +
    @@ -130,9 +80,9 @@

    Contributors

    diff --git a/html/jquery.js b/html/jquery.js index d52a1c7..103c32d 100644 --- a/html/jquery.js +++ b/html/jquery.js @@ -1,68 +1,35 @@ -/* - * jQuery JavaScript Library v1.7.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon Nov 21 21:11:03 2011 -0500 - */ -(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
    a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
    ";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
    t
    ";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
    ";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); -/* - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
    "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
    ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
    "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
    "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

    ";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
    ","
    "]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
    ").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/* - * jQuery UI 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/* - * jQuery UI Widget 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/* - * jQuery UI Mouse 1.8.18 +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
    ');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/* - * jQuery hashchange event - v1.3 - 7/21/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ + * jquery.ui.widget.js + * jquery.ui.mouse.js */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + + +
    +
    +
    This repository has moved to it's own organization https://github.com/cpp-pre
    +
    +
    +

    +lib-cpp-pre

    +

    C++11 header-only boost companion library baked with love.

    +

    +Features

    + +

    +About

    +

    This C++11 header-only library provides utilities that we miss in Boost for the moment when writing productive code.

    +

    We author it in our free time to help our personal project and companies to centralize useful reusable code, that we polish until we can propose it to the Boost Libraries.

    +

    We always deprecate our own implementation when the Boost community finally accepts them, because we are just a backward-compatible staging-library for small Boost utilities.

    +

    That's why we named it pre, like pre::boost.

    +

    +Getting started

    +

    The library is header only, but has dependencies on :

      +
    • Boost 1.60.0
    • +
    • nlohmann-json
    • +
    +

    +With hunter CMake Package manager

    +

    Simply drop in your CMakeLists.txt the following :

    hunter_add_package(lib-cpp-pre)
    +
    find_package(lib-cpp-pre 1.3.7 REQUIRED)
    +
    include_directories(AFTER ${LIB_CPP_PRE_INCLUDE_DIRS})
    +

    +Without hunter

    +

    You can install these dependencies yourself, and then install the library this way :

    mkdir build/
    +
    cd build/
    +
    cmake .. -DHUNTER_ENABLED=OFF && make install
    +

    +What we already brought to Boost

    + +

    +License

    +

    Licensed under the MIT License, see [LICENSE](LICENSE).

    +

    +Contributors

    + +
    +
    + + + + + + + + + + diff --git a/html/md_doc_tutorial_to_and_from_json.html b/html/md_doc_tutorial_to_and_from_json.html index 43e262e..b6f70d4 100644 --- a/html/md_doc_tutorial_to_and_from_json.html +++ b/html/md_doc_tutorial_to_and_from_json.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Tutorial to or from json @@ -14,9 +14,6 @@ - @@ -38,35 +35,22 @@
    - + - + + + +
    -
    +
    Tutorial to or from json

    With pre::json you can serialize or deserialize any C++ Type to JSON, even composite and aggregate types.

    -

    Serialize anything

    +

    +Serialize anything

    You can serialize anything to json.

    See :

    -
    #include <iostream>
    #include <pre/json/to_json.hpp>
    struct customer {
    std::string name;
    size_t money_spent;
    std::vector<std::string> interests;
    };
    BOOST_FUSION_ADAPT_STRUCT(customer,
    name,
    money_spent,
    interests)
    ...
    customer my_customer{
    "Mr. Dupond",
    1000,
    {"sport articles", "food", "tools"}
    };
    std::cout << pre::json::to_json(my_customer) << std::endl;

    Deserialize anything

    +
    #include <iostream>
    +
    #include <pre/json/to_json.hpp>
    +
    +
    struct customer {
    +
    std::string name;
    +
    size_t money_spent;
    +
    std::vector<std::string> interests;
    +
    };
    +
    +
    BOOST_FUSION_ADAPT_STRUCT(customer,
    +
    name,
    +
    money_spent,
    +
    interests)
    +
    +
    ...
    +
    +
    customer my_customer{
    +
    "Mr. Dupond",
    +
    1000,
    +
    {"sport articles", "food", "tools"}
    +
    };
    +
    +
    std::cout << pre::json::to_json(my_customer) << std::endl;
    +

    +Deserialize anything

    You can deserialize to any type from json.

    See :

    -
    #include <iostream>
    #include <pre/json/from_json.hpp>
    struct customer {
    std::string name;
    size_t money_spent;
    std::vector<std::string> interests;
    };
    BOOST_FUSION_ADAPT_STRUCT(customer,
    name,
    money_spent,
    interests)
    ...
    std::string string_to_deserialize =
    "{\"interests\":[\"sport articles\"], \"money_spent\":50, \"name\":\"Mrs. Fraulein\"}";
    customer my_customer = pre::json::from_json<customer>(string_to_deserialize);
    std::cout << "Customer " << my_customer.name << " spent " <<
    my_customer.money_spent << std::endl;
    +
    #include <iostream>
    +
    #include <pre/json/from_json.hpp>
    +
    +
    struct customer {
    +
    std::string name;
    +
    size_t money_spent;
    +
    std::vector<std::string> interests;
    +
    };
    +
    +
    BOOST_FUSION_ADAPT_STRUCT(customer,
    +
    name,
    +
    money_spent,
    +
    interests)
    +
    +
    ...
    +
    +
    std::string string_to_deserialize =
    +
    "{\"interests\":[\"sport articles\"], \"money_spent\":50, \"name\":\"Mrs. Fraulein\"}";
    +
    +
    customer my_customer = pre::json::from_json<customer>(string_to_deserialize);
    +
    +
    std::cout << "Customer " << my_customer.name << " spent " <<
    +
    my_customer.money_spent << std::endl;
    +
    +
    +
    nlohmann::json to_json(const T &value)
    Serialize to a JSON object any C++ object of any type, even your own types.
    Definition: to_json.hpp:65
    @@ -111,9 +145,9 @@

    Serialize anything

    diff --git a/html/menu.js b/html/menu.js new file mode 100644 index 0000000..433c15b --- /dev/null +++ b/html/menu.js @@ -0,0 +1,50 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/html/menudata.js b/html/menudata.js new file mode 100644 index 0000000..bdb0835 --- /dev/null +++ b/html/menudata.js @@ -0,0 +1,41 @@ +/* +@licstart The following is the entire license notice for the +JavaScript code in this file. + +Copyright (C) 1997-2019 by Dimitri van Heesch + +This program is free software; you can redistribute it and/or modify +it under the terms of version 2 of the GNU General Public License as published by +the Free Software Foundation + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +@licend The above is the entire license notice +for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html"}, +{text:"Functions",url:"namespacemembers_func.html"}, +{text:"Variables",url:"namespacemembers_vars.html"}]}]}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html"}, +{text:"Functions",url:"functions_func.html"}, +{text:"Typedefs",url:"functions_type.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/html/mockup__serial__port__service_8hpp_source.html b/html/mockup__serial__port__service_8hpp_source.html index 05ad9e4..3700f1e 100644 --- a/html/mockup__serial__port__service_8hpp_source.html +++ b/html/mockup__serial__port__service_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/boost/asio/mockup_serial_port_service.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
    - + - - + + + +
    mockup_serial_port_service.hpp
    -
    1 //
    2 // mockup_serial_port_service.hpp
    3 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    4 //
    5 // Distributed under the Boost Software License, Version 1.0. (See accompanying
    6 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
    7 //
    8 
    9 #ifndef BOOST_ASIO_MOCKUP_SERIAL_PORT_SERVICE_HPP
    10 #define BOOST_ASIO_MOCKUP_SERIAL_PORT_SERVICE_HPP
    11 
    12 #include <boost/asio/detail/config.hpp>
    13 
    14 #if defined(BOOST_ASIO_HAS_SERIAL_PORT) \
    15  || defined(GENERATING_DOCUMENTATION)
    16 
    17 #include <cstddef>
    18 #include <string>
    19 #include <boost/asio/async_result.hpp>
    20 #include <pre/boost/asio/detail/mockup_serial_port_service.hpp>
    21 #include <boost/asio/error.hpp>
    22 #include <boost/asio/io_service.hpp>
    23 #include <boost/asio/serial_port_base.hpp>
    24 
    25 namespace boost {
    26 namespace asio {
    27 
    71  : public boost::asio::detail::service_base<mockup_serial_port_service>
    72 {
    73 public:
    74 
    75 private:
    76  typedef detail::mockup_serial_port_service service_impl_type;
    77 
    78 public:
    80  typedef service_impl_type::implementation_type implementation_type;
    81 
    83  typedef service_impl_type::native_handle_type native_type;
    84 
    86  typedef service_impl_type::native_handle_type native_handle_type;
    87 
    89  explicit mockup_serial_port_service(boost::asio::io_service& io_service)
    90  : boost::asio::detail::service_base<mockup_serial_port_service>(io_service),
    91  service_impl_(io_service)
    92  {
    93  }
    94 
    96  void construct(implementation_type& impl)
    97  {
    98  service_impl_.construct(impl);
    99  }
    100 
    101 #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
    102  void move_construct(implementation_type& impl,
    104  implementation_type& other_impl)
    105  {
    106  service_impl_.move_construct(impl, other_impl);
    107  }
    108 
    109 // /// Move-assign from another serial port implementation.
    110 // void move_assign(implementation_type& impl,
    111 // mockup_serial_port_service& other_service,
    112 // implementation_type& other_impl)
    113 // {
    114 // service_impl_.move_assign(impl, other_service.service_impl_, other_impl);
    115 // }
    116 #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
    117 
    119  void destroy(implementation_type& impl)
    120  {
    121  service_impl_.destroy(impl);
    122  }
    123 
    125  boost::system::error_code open(implementation_type& impl,
    126  const std::string& device, boost::system::error_code& ec)
    127  {
    128  return service_impl_.open(impl, device, ec);
    129  }
    130 
    132  boost::system::error_code assign(implementation_type& impl,
    133  const native_handle_type& handle, boost::system::error_code& ec)
    134  {
    135  return service_impl_.assign(impl, handle, ec);
    136  }
    137 
    139  bool is_open(const implementation_type& impl) const
    140  {
    141  return service_impl_.is_open(impl);
    142  }
    143 
    145  boost::system::error_code close(implementation_type& impl,
    146  boost::system::error_code& ec)
    147  {
    148  return service_impl_.close(impl, ec);
    149  }
    150 
    152  native_type native(implementation_type& impl)
    153  {
    154  return service_impl_.native_handle(impl);
    155  }
    156 
    158  native_handle_type native_handle(implementation_type& impl)
    159  {
    160  return service_impl_.native_handle(impl);
    161  }
    162 
    164  boost::system::error_code cancel(implementation_type& impl,
    165  boost::system::error_code& ec)
    166  {
    167  return service_impl_.cancel(impl, ec);
    168  }
    169 
    171  template <typename SettableSerialPortOption>
    172  boost::system::error_code set_option(implementation_type& impl,
    173  const SettableSerialPortOption& option, boost::system::error_code& ec)
    174  {
    175  return service_impl_.set_option(impl, option, ec);
    176  }
    177 
    179  template <typename GettableSerialPortOption>
    180  boost::system::error_code get_option(const implementation_type& impl,
    181  GettableSerialPortOption& option, boost::system::error_code& ec) const
    182  {
    183  return service_impl_.get_option(impl, option, ec);
    184  }
    185 
    187  boost::system::error_code send_break(implementation_type& impl,
    188  boost::system::error_code& ec)
    189  {
    190  return service_impl_.send_break(impl, ec);
    191  }
    192 
    194  template <typename ConstBufferSequence>
    195  std::size_t write_some(implementation_type& impl,
    196  const ConstBufferSequence& buffers, boost::system::error_code& ec)
    197  {
    198  return service_impl_.write_some(impl, buffers, ec);
    199  }
    200 
    202  template <typename ConstBufferSequence, typename WriteHandler>
    203  BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler,
    204  void (boost::system::error_code, std::size_t))
    205  async_write_some(implementation_type& impl,
    206  const ConstBufferSequence& buffers,
    207  BOOST_ASIO_MOVE_ARG(WriteHandler) handler)
    208  {
    209  detail::async_result_init<
    210  WriteHandler, void (boost::system::error_code, std::size_t)> init(
    211  BOOST_ASIO_MOVE_CAST(WriteHandler)(handler));
    212 
    213  service_impl_.async_write_some(impl, buffers, init.handler);
    214 
    215  return init.result.get();
    216  }
    217 
    219  template <typename MutableBufferSequence>
    220  std::size_t read_some(implementation_type& impl,
    221  const MutableBufferSequence& buffers, boost::system::error_code& ec)
    222  {
    223  return service_impl_.read_some(impl, buffers, ec);
    224  }
    225 
    227  template <typename MutableBufferSequence, typename ReadHandler>
    228  BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
    229  void (boost::system::error_code, std::size_t))
    230  async_read_some(implementation_type& impl,
    231  const MutableBufferSequence& buffers,
    232  BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
    233  {
    234  detail::async_result_init<
    235  ReadHandler, void (boost::system::error_code, std::size_t)> init(
    236  BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
    237 
    238  service_impl_.async_read_some(impl, buffers, init.handler);
    239 
    240  return init.result.get();
    241  }
    242 
    243 private:
    244  // Destroy all user-defined handler objects owned by the service.
    245  void shutdown_service()
    246  {
    247  service_impl_.shutdown_service();
    248  }
    249 
    250  // The platform-specific implementation.
    251  service_impl_type service_impl_;
    252 };
    253 
    254 } // namespace asio
    255 } // namespace boost
    256 
    257 //#include <boost/asio/detail/pop_options.hpp>
    258 
    259 #endif // defined(BOOST_ASIO_HAS_SERIAL_PORT)
    260  // || defined(GENERATING_DOCUMENTATION)
    261 
    262 #endif // BOOST_ASIO_SERIAL_PORT_SERVICE_HPP
    boost::system::error_code open(implementation_type &impl, const std::string &device, boost::system::error_code &ec)
    Open a serial port.
    Definition: mockup_serial_port_service.hpp:125
    -
    native_type native(implementation_type &impl)
    (Deprecated: Use native_handle().) Get the native handle implementation.
    Definition: mockup_serial_port_service.hpp:152
    -
    native_handle_type native_handle(implementation_type &impl)
    Get the native handle implementation.
    Definition: mockup_serial_port_service.hpp:158
    -
    bool is_open(const implementation_type &impl) const
    Determine whether the handle is open.
    Definition: mockup_serial_port_service.hpp:139
    -
    mockup_serial_port_service : A virtual serial port allowing to write cross platform unit tests of ser...
    Definition: mockup_serial_port_service.hpp:70
    - -
    service_impl_type::native_handle_type native_type
    (Deprecated: Use native_handle_type.) The native handle type.
    Definition: mockup_serial_port_service.hpp:83
    -
    void move_construct(implementation_type &impl, implementation_type &other_impl)
    Move-construct a new serial port implementation.
    Definition: mockup_serial_port_service.hpp:103
    -
    mockup_serial_port_service(boost::asio::io_service &io_service)
    Construct a new serial port service for the specified io_service.
    Definition: mockup_serial_port_service.hpp:89
    -
    service_impl_type::implementation_type implementation_type
    The type of a serial port implementation.
    Definition: mockup_serial_port_service.hpp:80
    -
    void construct(implementation_type &impl)
    Construct a new serial port implementation.
    Definition: mockup_serial_port_service.hpp:96
    -
    boost::system::error_code cancel(implementation_type &impl, boost::system::error_code &ec)
    Cancel all asynchronous operations associated with the handle.
    Definition: mockup_serial_port_service.hpp:164
    -
    std::size_t read_some(implementation_type &impl, const MutableBufferSequence &buffers, boost::system::error_code &ec)
    Read some data from the stream.
    Definition: mockup_serial_port_service.hpp:220
    -
    service_impl_type::native_handle_type native_handle_type
    The native handle type.
    Definition: mockup_serial_port_service.hpp:86
    -
    boost::system::error_code get_option(const implementation_type &impl, GettableSerialPortOption &option, boost::system::error_code &ec) const
    Get a serial port option.
    Definition: mockup_serial_port_service.hpp:180
    -
    boost::system::error_code set_option(implementation_type &impl, const SettableSerialPortOption &option, boost::system::error_code &ec)
    Set a serial port option.
    Definition: mockup_serial_port_service.hpp:172
    -
    BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, void(boost::system::error_code, std::size_t)) async_write_some(implementation_type &impl
    Start an asynchronous write.
    -
    boost::system::error_code assign(implementation_type &impl, const native_handle_type &handle, boost::system::error_code &ec)
    Assign an existing native handle to a serial port.
    Definition: mockup_serial_port_service.hpp:132
    -
    boost::system::error_code send_break(implementation_type &impl, boost::system::error_code &ec)
    Send a break sequence to the serial port.
    Definition: mockup_serial_port_service.hpp:187
    -
    boost::system::error_code close(implementation_type &impl, boost::system::error_code &ec)
    Close a serial port implementation.
    Definition: mockup_serial_port_service.hpp:145
    -
    std::size_t write_some(implementation_type &impl, const ConstBufferSequence &buffers, boost::system::error_code &ec)
    Write the given data to the stream.
    Definition: mockup_serial_port_service.hpp:195
    -
    void destroy(implementation_type &impl)
    Destroy a serial port implementation.
    Definition: mockup_serial_port_service.hpp:119
    +
    1 //
    +
    2 // mockup_serial_port_service.hpp
    +
    3 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    +
    4 //
    +
    5 // Distributed under the Boost Software License, Version 1.0. (See accompanying
    +
    6 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
    +
    7 //
    +
    8 
    +
    9 #ifndef BOOST_ASIO_MOCKUP_SERIAL_PORT_SERVICE_HPP
    +
    10 #define BOOST_ASIO_MOCKUP_SERIAL_PORT_SERVICE_HPP
    +
    11 
    +
    12 #include <boost/asio/detail/config.hpp>
    +
    13 
    +
    14 #if defined(BOOST_ASIO_HAS_SERIAL_PORT) \
    +
    15  || defined(GENERATING_DOCUMENTATION)
    +
    16 
    +
    17 #include <cstddef>
    +
    18 #include <string>
    +
    19 #include <boost/asio/async_result.hpp>
    +
    20 #include <pre/boost/asio/detail/mockup_serial_port_service.hpp>
    +
    21 #include <boost/asio/error.hpp>
    +
    22 #include <boost/asio/io_service.hpp>
    +
    23 #include <boost/asio/serial_port_base.hpp>
    +
    24 
    +
    25 namespace boost {
    +
    26 namespace asio {
    +
    27 
    + +
    71  : public boost::asio::detail::service_base<mockup_serial_port_service>
    +
    72 {
    +
    73 public:
    +
    74 
    +
    75 private:
    +
    76  typedef detail::mockup_serial_port_service service_impl_type;
    +
    77 
    +
    78 public:
    +
    80  typedef service_impl_type::implementation_type implementation_type;
    +
    81 
    +
    83  typedef service_impl_type::native_handle_type native_type;
    +
    84 
    +
    86  typedef service_impl_type::native_handle_type native_handle_type;
    +
    87 
    +
    89  explicit mockup_serial_port_service(boost::asio::io_service& io_service)
    +
    90  : boost::asio::detail::service_base<mockup_serial_port_service>(io_service),
    +
    91  service_impl_(io_service)
    +
    92  {
    +
    93  }
    +
    94 
    + +
    97  {
    +
    98  service_impl_.construct(impl);
    +
    99  }
    +
    100 
    +
    101 #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
    + +
    104  implementation_type& other_impl)
    +
    105  {
    +
    106  service_impl_.move_construct(impl, other_impl);
    +
    107  }
    +
    108 
    +
    109 // /// Move-assign from another serial port implementation.
    +
    110 // void move_assign(implementation_type& impl,
    +
    111 // mockup_serial_port_service& other_service,
    +
    112 // implementation_type& other_impl)
    +
    113 // {
    +
    114 // service_impl_.move_assign(impl, other_service.service_impl_, other_impl);
    +
    115 // }
    +
    116 #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
    +
    117 
    + +
    120  {
    +
    121  service_impl_.destroy(impl);
    +
    122  }
    +
    123 
    +
    125  boost::system::error_code open(implementation_type& impl,
    +
    126  const std::string& device, boost::system::error_code& ec)
    +
    127  {
    +
    128  return service_impl_.open(impl, device, ec);
    +
    129  }
    +
    130 
    +
    132  boost::system::error_code assign(implementation_type& impl,
    +
    133  const native_handle_type& handle, boost::system::error_code& ec)
    +
    134  {
    +
    135  return service_impl_.assign(impl, handle, ec);
    +
    136  }
    +
    137 
    +
    139  bool is_open(const implementation_type& impl) const
    +
    140  {
    +
    141  return service_impl_.is_open(impl);
    +
    142  }
    +
    143 
    +
    145  boost::system::error_code close(implementation_type& impl,
    +
    146  boost::system::error_code& ec)
    +
    147  {
    +
    148  return service_impl_.close(impl, ec);
    +
    149  }
    +
    150 
    + +
    153  {
    +
    154  return service_impl_.native_handle(impl);
    +
    155  }
    +
    156 
    + +
    159  {
    +
    160  return service_impl_.native_handle(impl);
    +
    161  }
    +
    162 
    +
    164  boost::system::error_code cancel(implementation_type& impl,
    +
    165  boost::system::error_code& ec)
    +
    166  {
    +
    167  return service_impl_.cancel(impl, ec);
    +
    168  }
    +
    169 
    +
    171  template <typename SettableSerialPortOption>
    +
    172  boost::system::error_code set_option(implementation_type& impl,
    +
    173  const SettableSerialPortOption& option, boost::system::error_code& ec)
    +
    174  {
    +
    175  return service_impl_.set_option(impl, option, ec);
    +
    176  }
    +
    177 
    +
    179  template <typename GettableSerialPortOption>
    +
    180  boost::system::error_code get_option(const implementation_type& impl,
    +
    181  GettableSerialPortOption& option, boost::system::error_code& ec) const
    +
    182  {
    +
    183  return service_impl_.get_option(impl, option, ec);
    +
    184  }
    +
    185 
    +
    187  boost::system::error_code send_break(implementation_type& impl,
    +
    188  boost::system::error_code& ec)
    +
    189  {
    +
    190  return service_impl_.send_break(impl, ec);
    +
    191  }
    +
    192 
    +
    194  template <typename ConstBufferSequence>
    +
    195  std::size_t write_some(implementation_type& impl,
    +
    196  const ConstBufferSequence& buffers, boost::system::error_code& ec)
    +
    197  {
    +
    198  return service_impl_.write_some(impl, buffers, ec);
    +
    199  }
    +
    200 
    +
    202  template <typename ConstBufferSequence, typename WriteHandler>
    +
    203  BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler,
    +
    204  void (boost::system::error_code, std::size_t))
    +
    205  async_write_some(implementation_type& impl,
    +
    206  const ConstBufferSequence& buffers,
    +
    207  BOOST_ASIO_MOVE_ARG(WriteHandler) handler)
    +
    208  {
    +
    209  detail::async_result_init<
    +
    210  WriteHandler, void (boost::system::error_code, std::size_t)> init(
    +
    211  BOOST_ASIO_MOVE_CAST(WriteHandler)(handler));
    +
    212 
    +
    213  service_impl_.async_write_some(impl, buffers, init.handler);
    +
    214 
    +
    215  return init.result.get();
    +
    216  }
    +
    217 
    +
    219  template <typename MutableBufferSequence>
    +
    220  std::size_t read_some(implementation_type& impl,
    +
    221  const MutableBufferSequence& buffers, boost::system::error_code& ec)
    +
    222  {
    +
    223  return service_impl_.read_some(impl, buffers, ec);
    +
    224  }
    +
    225 
    +
    227  template <typename MutableBufferSequence, typename ReadHandler>
    +
    228  BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
    +
    229  void (boost::system::error_code, std::size_t))
    +
    230  async_read_some(implementation_type& impl,
    +
    231  const MutableBufferSequence& buffers,
    +
    232  BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
    +
    233  {
    +
    234  detail::async_result_init<
    +
    235  ReadHandler, void (boost::system::error_code, std::size_t)> init(
    +
    236  BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
    +
    237 
    +
    238  service_impl_.async_read_some(impl, buffers, init.handler);
    +
    239 
    +
    240  return init.result.get();
    +
    241  }
    +
    242 
    +
    243 private:
    +
    244  // Destroy all user-defined handler objects owned by the service.
    +
    245  void shutdown_service()
    +
    246  {
    +
    247  service_impl_.shutdown_service();
    +
    248  }
    +
    249 
    +
    250  // The platform-specific implementation.
    +
    251  service_impl_type service_impl_;
    +
    252 };
    +
    253 
    +
    254 } // namespace asio
    +
    255 } // namespace boost
    +
    256 
    +
    257 //#include <boost/asio/detail/pop_options.hpp>
    +
    258 
    +
    259 #endif // defined(BOOST_ASIO_HAS_SERIAL_PORT)
    +
    260  // || defined(GENERATING_DOCUMENTATION)
    +
    261 
    +
    262 #endif // BOOST_ASIO_SERIAL_PORT_SERVICE_HPP
    +
    boost::system::error_code assign(implementation_type &impl, const native_handle_type &handle, boost::system::error_code &ec)
    Assign an existing native handle to a serial port.
    Definition: mockup_serial_port_service.hpp:132
    +
    service_impl_type::native_handle_type native_handle_type
    The native handle type.
    Definition: mockup_serial_port_service.hpp:86
    +
    BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, void(boost::system::error_code, std::size_t)) async_write_some(implementation_type &impl
    Start an asynchronous write.
    +
    boost::system::error_code get_option(const implementation_type &impl, GettableSerialPortOption &option, boost::system::error_code &ec) const
    Get a serial port option.
    Definition: mockup_serial_port_service.hpp:180
    +
    service_impl_type::native_handle_type native_type
    (Deprecated: Use native_handle_type.) The native handle type.
    Definition: mockup_serial_port_service.hpp:83
    +
    service_impl_type::implementation_type implementation_type
    The type of a serial port implementation.
    Definition: mockup_serial_port_service.hpp:80
    +
    std::size_t write_some(implementation_type &impl, const ConstBufferSequence &buffers, boost::system::error_code &ec)
    Write the given data to the stream.
    Definition: mockup_serial_port_service.hpp:195
    +
    mockup_serial_port_service(boost::asio::io_service &io_service)
    Construct a new serial port service for the specified io_service.
    Definition: mockup_serial_port_service.hpp:89
    +
    boost::system::error_code open(implementation_type &impl, const std::string &device, boost::system::error_code &ec)
    Open a serial port.
    Definition: mockup_serial_port_service.hpp:125
    +
    bool is_open(const implementation_type &impl) const
    Determine whether the handle is open.
    Definition: mockup_serial_port_service.hpp:139
    +
    boost::system::error_code send_break(implementation_type &impl, boost::system::error_code &ec)
    Send a break sequence to the serial port.
    Definition: mockup_serial_port_service.hpp:187
    +
    boost::system::error_code close(implementation_type &impl, boost::system::error_code &ec)
    Close a serial port implementation.
    Definition: mockup_serial_port_service.hpp:145
    +
    native_handle_type native_handle(implementation_type &impl)
    Get the native handle implementation.
    Definition: mockup_serial_port_service.hpp:158
    +
    boost::system::error_code cancel(implementation_type &impl, boost::system::error_code &ec)
    Cancel all asynchronous operations associated with the handle.
    Definition: mockup_serial_port_service.hpp:164
    +
    native_type native(implementation_type &impl)
    (Deprecated: Use native_handle().) Get the native handle implementation.
    Definition: mockup_serial_port_service.hpp:152
    +
    void construct(implementation_type &impl)
    Construct a new serial port implementation.
    Definition: mockup_serial_port_service.hpp:96
    +
    void destroy(implementation_type &impl)
    Destroy a serial port implementation.
    Definition: mockup_serial_port_service.hpp:119
    +
    boost::system::error_code set_option(implementation_type &impl, const SettableSerialPortOption &option, boost::system::error_code &ec)
    Set a serial port option.
    Definition: mockup_serial_port_service.hpp:172
    +
    std::size_t read_some(implementation_type &impl, const MutableBufferSequence &buffers, boost::system::error_code &ec)
    Read some data from the stream.
    Definition: mockup_serial_port_service.hpp:220
    +
    mockup_serial_port_service : A virtual serial port allowing to write cross platform unit tests of ser...
    Definition: mockup_serial_port_service.hpp:70
    +
    void move_construct(implementation_type &impl, implementation_type &other_impl)
    Move-construct a new serial port implementation.
    Definition: mockup_serial_port_service.hpp:103
    @@ -127,9 +304,9 @@ diff --git a/html/namespaceboost_1_1asio.html b/html/namespaceboost_1_1asio.html index 767cf24..df43ab8 100644 --- a/html/namespaceboost_1_1asio.html +++ b/html/namespaceboost_1_1asio.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: boost::asio Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespacemembers.html b/html/namespacemembers.html index 424e3fd..31c68ab 100644 --- a/html/namespacemembers.html +++ b/html/namespacemembers.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Namespace Members @@ -14,9 +14,6 @@ - @@ -38,48 +35,22 @@
    - + - - - + + + +
    diff --git a/html/namespacemembers_func.html b/html/namespacemembers_func.html index 6d69048..1bc46c2 100644 --- a/html/namespacemembers_func.html +++ b/html/namespacemembers_func.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Namespace Members @@ -14,9 +14,6 @@ - @@ -38,48 +35,22 @@
    - + - - - + + + +
    diff --git a/html/namespacemembers_vars.html b/html/namespacemembers_vars.html index a195338..6f6e91c 100644 --- a/html/namespacemembers_vars.html +++ b/html/namespacemembers_vars.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Namespace Members @@ -14,9 +14,6 @@ - @@ -38,48 +35,22 @@
    - + - - - + + + +
    diff --git a/html/namespacepre.html b/html/namespacepre.html index 806c96b..c3934c3 100644 --- a/html/namespacepre.html +++ b/html/namespacepre.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespacepre_1_1CV.html b/html/namespacepre_1_1CV.html index 215eb85..3922a59 100644 --- a/html/namespacepre_1_1CV.html +++ b/html/namespacepre_1_1CV.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::CV Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespacepre_1_1bits.html b/html/namespacepre_1_1bits.html index 2b85a73..c8abb1a 100644 --- a/html/namespacepre_1_1bits.html +++ b/html/namespacepre_1_1bits.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::bits Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    - + - + - - + - + - +

    Functions

    std::string to_string (const boost::dynamic_bitset< boost::uint8_t > &bitset)
     Create string representation of the dynamic bitset given. More...
     Create string representation of the dynamic bitset given. More...
     
    template<typename uintX_t >
    std::string to_binstring (uintX_t value)
     Returns a string representation in bits of the int given. More...
     Returns a string representation in bits of the int given. More...
     
    +
    template<typename uintX_t , size_t bitsetSize>
    uintX_t to_uint (const std::bitset< bitsetSize > value)
     
    boost::dynamic_bitset< boost::uint8_t > & shift_in_bitset (boost::dynamic_bitset< boost::uint8_t > &hostBitset, const boost::dynamic_bitset< boost::uint8_t > &clientBitset)
     This function pads the given client bitset in the host by making a copy of clientBitset, resizing the clientBitset or-ing it in the hostBitset and returning the hostBitset. More...
     This function pads the given client bitset in the host by making a copy of clientBitset, resizing the clientBitset or-ing it in the hostBitset and returning the hostBitset. More...
     
    boost::container::vector< boost::uint8_t > to_bytearray (const boost::dynamic_bitset< boost::uint8_t > &bitset)
     This converts the given boost::dynamic_bitset to an array of 8-bit wide bytes. More...
     This converts the given boost::dynamic_bitset to an array of 8-bit wide bytes. More...
     
    boost::dynamic_bitset< boost::uint8_t > to_bitset (const boost::container::vector< boost::uint8_t > &byteArray, size_t resultingBitSetSize=0)
     Converts a byte array into a bitset. More...
     Converts a byte array into a bitset. More...
     

    Detailed Description

    Utilities to deal with bits : shift them, read them out in a given uint_X_t type and so on.

    Function Documentation

    - + +

    ◆ shift_in_bitset()

    +
    @@ -170,7 +150,9 @@ - + +

    ◆ to_binstring()

    +
    @@ -205,7 +187,9 @@
    - + +

    ◆ to_bitset()

    +
    @@ -248,7 +232,9 @@ - + +

    ◆ to_bytearray()

    +
    @@ -281,7 +267,9 @@ - + +

    ◆ to_string()

    +
    @@ -322,9 +310,9 @@ diff --git a/html/namespacepre_1_1bytes.html b/html/namespacepre_1_1bytes.html index 8a6c431..e3545a8 100644 --- a/html/namespacepre_1_1bytes.html +++ b/html/namespacepre_1_1bytes.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::bytes Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    - + - + - + - + - + - + - + - +

    Functions

    std::string to_hexstring (const boost::uint8_t *bytes, const size_t length)
     Convers the given byte array of the given length to a corresponding hexadecimal number in a string. More...
     Convers the given byte array of the given length to a corresponding hexadecimal number in a string. More...
     
    std::string to_hexstring (const std::string &bytes)
     Convers the given byte array of the given length to a corresponding hexadecimal number in a human readable string. More...
     Convers the given byte array of the given length to a corresponding hexadecimal number in a human readable string. More...
     
    std::string to_binstring (const boost::container::vector< boost::uint8_t > &byteArray)
     Convers the given byte array of the given length to a corresponding binary number in a string. More...
     Convers the given byte array of the given length to a corresponding binary number in a string. More...
     
    boost::uint8_t from_hexchar (char highNibbleChar, char lowNibbleChar)
     Converts the given hexChars to the byte corresponding. More...
     Converts the given hexChars to the byte corresponding. More...
     
    boost::container::vector< boost::uint8_t > from_hexstring (const std::string &hexString)
     This function can be used to parse a string of hexadecimal number back into bits representation. Note that it runs from left to right, putting eventually the last nibble empty if the size of the input string isn't a multiple of 2. More...
     This function can be used to parse a string of hexadecimal number back into bits representation. Note that it runs from left to right, putting eventually the last nibble empty if the size of the input string isn't a multiple of 2. More...
     
    std::string buffer_from_hexstring (const std::string &hex)
     Converts a string of hexadecimal number into a binary buffer of this valeu. More...
     Converts a string of hexadecimal number into a binary buffer of this valeu. More...
     
    template<typename intX_t >
    intX_t from_byteArray (const boost::container::vector< boost::uint8_t > &byteArray)
     This function transforms any byteArray in the chosen (u)int*_t type. More...
     This function transforms any byteArray in the chosen (u)int*_t type. More...
     
    boost::shared_ptr< boost::container::vector< boost::uint8_t > > load_bytearray (const std::string binaryFilePath)
     This methods opens up a file and parses it's bytes into a bytearray. More...
     This methods opens up a file and parses it's bytes into a bytearray. More...
     
    - - @@ -143,7 +121,9 @@

    Detailed Description

    Utilities to print bytes, transform them to string, reading them from files...

    Function Documentation

    - + +

    ◆ buffer_from_hexstring()

    +

    Variables

    +
    const size_t NIBBLE_BITS = 4
     Constant telling how much bits there is in a nibble.
     
    +
    const size_t BYTE_NIBBLES = 2
     Constant telling how much Nibbles are in a byte.
     
    @@ -175,7 +155,9 @@ - + +

    ◆ from_byteArray()

    +
    @@ -210,7 +192,9 @@
    - + +

    ◆ from_hexchar()

    +
    @@ -253,7 +237,9 @@ - + +

    ◆ from_hexstring()

    +
    @@ -285,7 +271,9 @@ - + +

    ◆ load_bytearray()

    +
    @@ -324,7 +312,9 @@ - + +

    ◆ to_binstring()

    +
    @@ -356,7 +346,9 @@ - + +

    ◆ to_hexstring() [1/2]

    +
    @@ -400,7 +392,9 @@ - + +

    ◆ to_hexstring() [2/2]

    +
    @@ -442,9 +436,9 @@ diff --git a/html/namespacepre_1_1chrono_1_1boost.html b/html/namespacepre_1_1chrono_1_1boost.html index e09eaad..9177538 100644 --- a/html/namespacepre_1_1chrono_1_1boost.html +++ b/html/namespacepre_1_1chrono_1_1boost.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::chrono::boost Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespacepre_1_1chrono_1_1std.html b/html/namespacepre_1_1chrono_1_1std.html index d87cf6f..a3dcd68 100644 --- a/html/namespacepre_1_1chrono_1_1std.html +++ b/html/namespacepre_1_1chrono_1_1std.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::chrono::std Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespacepre_1_1enums.html b/html/namespacepre_1_1enums.html index 23aab71..2953941 100644 --- a/html/namespacepre_1_1enums.html +++ b/html/namespacepre_1_1enums.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::enums Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +

    Detailed Description

    Some prototype features to reflect enums informations and reflect their text easily

    Function Documentation

    - + +

    ◆ to_underlying()

    +
    @@ -137,9 +117,9 @@
    diff --git a/html/namespacepre_1_1functional.html b/html/namespacepre_1_1functional.html index 7a3fdcc..22de1da 100644 --- a/html/namespacepre_1_1functional.html +++ b/html/namespacepre_1_1functional.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::functional Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    - @@ -118,9 +96,9 @@ diff --git a/html/namespacepre_1_1fusion.html b/html/namespacepre_1_1fusion.html index 0706d7c..f0f3573 100644 --- a/html/namespacepre_1_1fusion.html +++ b/html/namespacepre_1_1fusion.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::fusion Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespacepre_1_1iostreams.html b/html/namespacepre_1_1iostreams.html index 25be3f0..5230bfe 100644 --- a/html/namespacepre_1_1iostreams.html +++ b/html/namespacepre_1_1iostreams.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::iostreams Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespacepre_1_1iterators.html b/html/namespacepre_1_1iterators.html index 7a207c8..78614a1 100644 --- a/html/namespacepre_1_1iterators.html +++ b/html/namespacepre_1_1iterators.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::iterators Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespacepre_1_1json.html b/html/namespacepre_1_1json.html index 50ba221..0e28a24 100644 --- a/html/namespacepre_1_1json.html +++ b/html/namespacepre_1_1json.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::json Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    - + - + - - +

    Functions

    +
    template<class T >
    auto to_std_function (T t) -> typename type_traits::function_traits< T >::function_type
     
    template<class T >
    nlohmann::json to_json (const T &value)
     Serialize to a JSON object any C++ object of any type, even your own types. More...
     Serialize to a JSON object any C++ object of any type, even your own types. More...
     
    template<class T >
    from_json (const std::string &serialized_json)
     Deserialize any json object or value in a C++ type. More...
     Deserialize any json object or value in a C++ type. More...
     
    +
    template<class T >
    from_json (const nlohmann::json &json_object)
     Same as pre::json::from_json(const std::string&) but directly with a JSON.
     Same as pre::json::from_json(const std::string&) but directly with a JSON.
     

    Detailed Description

    Serialize and Deserialize any C++ type, class... into JSON

    Function Documentation

    - + +

    ◆ from_json()

    +
    @@ -147,12 +127,37 @@

    The function throws an std::exception if a mandatory member isn't found, but doesn't in the case of boost::optional.

    The type has to be supported, or adapted with BOOST_FUSION_ADAPT_STRUCT.

    See below for supported types.

    -

    Example

    -
    #include <iostream>
    #include <pre/json/from_json.hpp>
    struct customer {
    std::string name;
    size_t money_spent;
    std::vector<std::string> interests;
    };
    BOOST_FUSION_ADAPT_STRUCT(customer,
    name,
    money_spent,
    interests)
    ...
    std::string string_to_deserialize =
    "{\"interests\":[\"sport articles\"], \"money_spent\":50, \"name\":\"Mrs. Fraulein\"}";
    customer my_customer = pre::json::from_json<customer>(string_to_deserialize);
    std::cout << "Customer " << my_customer.name << " spent " <<
    my_customer.money_spent << std::endl;
      +

      +Example

      +
      #include <iostream>
      +
      #include <pre/json/from_json.hpp>
      +
      +
      struct customer {
      +
      std::string name;
      +
      size_t money_spent;
      +
      std::vector<std::string> interests;
      +
      };
      +
      +
      BOOST_FUSION_ADAPT_STRUCT(customer,
      +
      name,
      +
      money_spent,
      +
      interests)
      +
      +
      ...
      +
      +
      std::string string_to_deserialize =
      +
      "{\"interests\":[\"sport articles\"], \"money_spent\":50, \"name\":\"Mrs. Fraulein\"}";
      +
      +
      customer my_customer = pre::json::from_json<customer>(string_to_deserialize);
      +
      +
      std::cout << "Customer " << my_customer.name << " spent " <<
      +
      my_customer.money_spent << std::endl;
      +
      -

      Supported types

      +

      +Supported types

    - + +

    ◆ to_json()

    +
    @@ -194,12 +201,37 @@

    Supported types

    Serialize to a JSON object any C++ object of any type, even your own types.

    It uses type traits introspection as well as Boost.Fusion reflection information to generate JSON from any types.

    -

    Example

    -
    #include <iostream>
    #include <pre/json/to_json.hpp>
    struct customer {
    std::string name;
    size_t money_spent;
    std::vector<std::string> interests;
    };
    BOOST_FUSION_ADAPT_STRUCT(customer,
    name,
    money_spent,
    interests)
    ...
    customer my_customer{
    "Mr. Dupond",
    1000,
    {"sport articles", "food", "tools"}
    };
    std::cout << pre::json::to_json(my_customer) << std::endl;
      +

      +Example

      +
      #include <iostream>
      +
      #include <pre/json/to_json.hpp>
      +
      +
      struct customer {
      +
      std::string name;
      +
      size_t money_spent;
      +
      std::vector<std::string> interests;
      +
      };
      +
      +
      BOOST_FUSION_ADAPT_STRUCT(customer,
      +
      name,
      +
      money_spent,
      +
      interests)
      +
      +
      ...
      +
      +
      customer my_customer{
      +
      "Mr. Dupond",
      +
      1000,
      +
      {"sport articles", "food", "tools"}
      +
      };
      +
      +
      std::cout << pre::json::to_json(my_customer) << std::endl;
      +
      -

      Supported types

      +

      +Supported types

    +
    nlohmann::json to_json(const T &value)
    Serialize to a JSON object any C++ object of any type, even your own types.
    Definition: to_json.hpp:65
    @@ -224,9 +257,9 @@

    Supported types

    diff --git a/html/namespacepre_1_1range.html b/html/namespacepre_1_1range.html index 724cadf..08208ac 100644 --- a/html/namespacepre_1_1range.html +++ b/html/namespacepre_1_1range.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::range Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespacepre_1_1spirit_1_1karma.html b/html/namespacepre_1_1spirit_1_1karma.html index 81ed6a2..d6f6ec0 100644 --- a/html/namespacepre_1_1spirit_1_1karma.html +++ b/html/namespacepre_1_1spirit_1_1karma.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::spirit::karma Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    - -

    Functions

    +
     BOOST_SPIRIT_TERMINAL_EX (crc_of)
     
    +
     BOOST_SPIRIT_TERMINAL_EX (size_of)
     
    @@ -128,9 +106,9 @@
    diff --git a/html/namespacepre_1_1type__traits.html b/html/namespacepre_1_1type__traits.html index 174d305..7068c44 100644 --- a/html/namespacepre_1_1type__traits.html +++ b/html/namespacepre_1_1type__traits.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::type_traits Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespacepre_1_1variant.html b/html/namespacepre_1_1variant.html index c5b3f6e..2025271 100644 --- a/html/namespacepre_1_1variant.html +++ b/html/namespacepre_1_1variant.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::variant Namespace Reference @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/namespaces.html b/html/namespaces.html index b7671fb..31e0337 100644 --- a/html/namespaces.html +++ b/html/namespaces.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Namespace List @@ -14,9 +14,6 @@ - @@ -38,41 +35,22 @@
    - + - - + + + +
    diff --git a/html/pages.html b/html/pages.html index eef3ae9..056e245 100644 --- a/html/pages.html +++ b/html/pages.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Related Pages @@ -14,9 +14,6 @@ - @@ -38,35 +35,22 @@
    - + - + + + +
    @@ -101,9 +86,9 @@
    diff --git a/html/search/all_0.html b/html/search/all_0.html index d54e0bd..26dd244 100644 --- a/html/search/all_0.html +++ b/html/search/all_0.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_0.js b/html/search/all_0.js index 4f46791..8a76166 100644 --- a/html/search/all_0.js +++ b/html/search/all_0.js @@ -1,6 +1,5 @@ var searchData= [ - ['assign',['assign',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a7aaf39d22ceb14c08d81bd0ddf2d621e',1,'boost::asio::mockup_serial_port_service']]], - ['attribute',['attribute',['../structpre_1_1spirit_1_1karma_1_1crc__of__directive_1_1attribute.html',1,'pre::spirit::karma::crc_of_directive']]], - ['attribute',['attribute',['../structpre_1_1spirit_1_1karma_1_1sizeof__directive_1_1attribute.html',1,'pre::spirit::karma::sizeof_directive']]] + ['assign_0',['assign',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a7aaf39d22ceb14c08d81bd0ddf2d621e',1,'boost::asio::mockup_serial_port_service']]], + ['attribute_1',['attribute',['../structpre_1_1spirit_1_1karma_1_1crc__of__directive_1_1attribute.html',1,'pre::spirit::karma::crc_of_directive< Subject >::attribute< Context, Iterator >'],['../structpre_1_1spirit_1_1karma_1_1sizeof__directive_1_1attribute.html',1,'pre::spirit::karma::sizeof_directive< Subject >::attribute< Context, Iterator >']]] ]; diff --git a/html/search/all_1.html b/html/search/all_1.html index 8cc6a1d..8eb215b 100644 --- a/html/search/all_1.html +++ b/html/search/all_1.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_1.js b/html/search/all_1.js index 1d23b7e..a20599c 100644 --- a/html/search/all_1.js +++ b/html/search/all_1.js @@ -1,7 +1,7 @@ var searchData= [ - ['asio',['asio',['../namespaceboost_1_1asio.html',1,'boost']]], - ['boost_5fasio_5finitfn_5fresult_5ftype',['BOOST_ASIO_INITFN_RESULT_TYPE',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a3eec5cc88de0d64fffe0ea5d51091535',1,'boost::asio::mockup_serial_port_service::BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, void(boost::system::error_code, std::size_t)) async_write_some(implementation_type &impl'],['../classboost_1_1asio_1_1mockup__serial__port__service.html#a6d6deb5e1f22c231af357e850ca48486',1,'boost::asio::mockup_serial_port_service::BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler, void(boost::system::error_code, std::size_t)) async_read_some(implementation_type &impl']]], - ['buffer_5ffrom_5fhexstring',['buffer_from_hexstring',['../namespacepre_1_1bytes.html#a3fc6f9edbe4415d1378a6cf7303a6363',1,'pre::bytes']]], - ['byte_5fnibbles',['BYTE_NIBBLES',['../namespacepre_1_1bytes.html#ac518edb25d48b9c5abfd051e800e7212',1,'pre::bytes']]] + ['asio_2',['asio',['../namespaceboost_1_1asio.html',1,'boost']]], + ['boost_5fasio_5finitfn_5fresult_5ftype_3',['BOOST_ASIO_INITFN_RESULT_TYPE',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a3eec5cc88de0d64fffe0ea5d51091535',1,'boost::asio::mockup_serial_port_service::BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, void(boost::system::error_code, std::size_t)) async_write_some(implementation_type &impl'],['../classboost_1_1asio_1_1mockup__serial__port__service.html#a6d6deb5e1f22c231af357e850ca48486',1,'boost::asio::mockup_serial_port_service::BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler, void(boost::system::error_code, std::size_t)) async_read_some(implementation_type &impl']]], + ['buffer_5ffrom_5fhexstring_4',['buffer_from_hexstring',['../namespacepre_1_1bytes.html#a3fc6f9edbe4415d1378a6cf7303a6363',1,'pre::bytes']]], + ['byte_5fnibbles_5',['BYTE_NIBBLES',['../namespacepre_1_1bytes.html#ac518edb25d48b9c5abfd051e800e7212',1,'pre::bytes']]] ]; diff --git a/html/search/all_10.html b/html/search/all_10.html index c25484f..6fd3a4a 100644 --- a/html/search/all_10.html +++ b/html/search/all_10.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_10.js b/html/search/all_10.js index e626da1..4bb1e25 100644 --- a/html/search/all_10.js +++ b/html/search/all_10.js @@ -1,5 +1,5 @@ var searchData= [ - ['use_5fdirective_3c_20karma_3a_3adomain_2c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3acrc_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_20_3e',['use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > > >',['../structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_632d70f780c9bbd12f86656bf2a5f3ce.html',1,'boost::spirit']]], - ['use_5fdirective_3c_20karma_3a_3adomain_2c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3asize_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_20_3e',['use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > > >',['../structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_9a24535ec3fb070215516644145fa642.html',1,'boost::spirit']]] + ['use_5fdirective_3c_20karma_3a_3adomain_2c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3acrc_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_20_3e_67',['use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > > >',['../structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_632d70f780c9bbd12f86656bf2a5f3ce.html',1,'boost::spirit']]], + ['use_5fdirective_3c_20karma_3a_3adomain_2c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3asize_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_20_3e_68',['use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > > >',['../structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_9a24535ec3fb070215516644145fa642.html',1,'boost::spirit']]] ]; diff --git a/html/search/all_11.html b/html/search/all_11.html index 3615c28..f78343b 100644 --- a/html/search/all_11.html +++ b/html/search/all_11.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_11.js b/html/search/all_11.js index 37a82d2..c9c54a2 100644 --- a/html/search/all_11.js +++ b/html/search/all_11.js @@ -1,4 +1,4 @@ var searchData= [ - ['write_5fsome',['write_some',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ac6b24b02c6a44700c208d81063e8202e',1,'boost::asio::mockup_serial_port_service']]] + ['write_5fsome_69',['write_some',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ac6b24b02c6a44700c208d81063e8202e',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/all_2.html b/html/search/all_2.html index d15ac65..b26d916 100644 --- a/html/search/all_2.html +++ b/html/search/all_2.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_2.js b/html/search/all_2.js index d778c8f..069462c 100644 --- a/html/search/all_2.js +++ b/html/search/all_2.js @@ -1,7 +1,7 @@ var searchData= [ - ['cancel',['cancel',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a5de50ee6c22b9a02c6ec88c6989dff9e',1,'boost::asio::mockup_serial_port_service']]], - ['close',['close',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af70ef9b51d7448fae594d32c72893e8c',1,'boost::asio::mockup_serial_port_service']]], - ['construct',['construct',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ab651a1d5f3426bd4b54069bc9d966940',1,'boost::asio::mockup_serial_port_service']]], - ['crc_5fof_5fdirective',['crc_of_directive',['../structpre_1_1spirit_1_1karma_1_1crc__of__directive.html',1,'pre::spirit::karma']]] + ['cancel_6',['cancel',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a5de50ee6c22b9a02c6ec88c6989dff9e',1,'boost::asio::mockup_serial_port_service']]], + ['close_7',['close',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af70ef9b51d7448fae594d32c72893e8c',1,'boost::asio::mockup_serial_port_service']]], + ['construct_8',['construct',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ab651a1d5f3426bd4b54069bc9d966940',1,'boost::asio::mockup_serial_port_service']]], + ['crc_5fof_5fdirective_9',['crc_of_directive',['../structpre_1_1spirit_1_1karma_1_1crc__of__directive.html',1,'pre::spirit::karma']]] ]; diff --git a/html/search/all_3.html b/html/search/all_3.html index 9f526c6..b61b96f 100644 --- a/html/search/all_3.html +++ b/html/search/all_3.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_3.js b/html/search/all_3.js index 97f6f9c..a63b821 100644 --- a/html/search/all_3.js +++ b/html/search/all_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['destroy',['destroy',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a6fea02a624c3c064442d4a0c9ec1dda0',1,'boost::asio::mockup_serial_port_service']]] + ['destroy_10',['destroy',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a6fea02a624c3c064442d4a0c9ec1dda0',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/all_4.html b/html/search/all_4.html index 7b814aa..06de155 100644 --- a/html/search/all_4.html +++ b/html/search/all_4.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_4.js b/html/search/all_4.js index 361d763..74ad143 100644 --- a/html/search/all_4.js +++ b/html/search/all_4.js @@ -1,11 +1,11 @@ var searchData= [ - ['from_5fbytearray',['from_byteArray',['../namespacepre_1_1bytes.html#a198dab9c9bea5998501b78c84ea9961c',1,'pre::bytes']]], - ['from_5fhexchar',['from_hexchar',['../namespacepre_1_1bytes.html#a45c336f50e5786a0cbcdaa814c73c5eb',1,'pre::bytes']]], - ['from_5fhexstring',['from_hexstring',['../namespacepre_1_1bytes.html#a00d7fe24693408f3b5d167f94f794314',1,'pre::bytes']]], - ['from_5fjson',['from_json',['../namespacepre_1_1json.html#af15a5fcde560c7eb22de936ed6fd1303',1,'pre::json::from_json(const std::string &serialized_json)'],['../namespacepre_1_1json.html#a7c7c690dc4f6840dd7b71b4e549beebe',1,'pre::json::from_json(const nlohmann::json &json_object)']]], - ['function_5ftraits',['function_traits',['../structpre_1_1type__traits_1_1function__traits.html',1,'pre::type_traits']]], - ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5ffunction_5fmember_5fpointer_5ft_3c_20f_20_3e_20_3e',['function_traits< F, detail::enable_if_is_function_member_pointer_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__member__pointer__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]], - ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5ffunction_5ft_3c_20f_20_3e_20_3e',['function_traits< F, detail::enable_if_is_function_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]], - ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5flambda_5ft_3c_20f_20_3e_20_3e',['function_traits< F, detail::enable_if_is_lambda_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__lambda__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]] + ['from_5fbytearray_11',['from_byteArray',['../namespacepre_1_1bytes.html#a198dab9c9bea5998501b78c84ea9961c',1,'pre::bytes']]], + ['from_5fhexchar_12',['from_hexchar',['../namespacepre_1_1bytes.html#a45c336f50e5786a0cbcdaa814c73c5eb',1,'pre::bytes']]], + ['from_5fhexstring_13',['from_hexstring',['../namespacepre_1_1bytes.html#a00d7fe24693408f3b5d167f94f794314',1,'pre::bytes']]], + ['from_5fjson_14',['from_json',['../namespacepre_1_1json.html#af15a5fcde560c7eb22de936ed6fd1303',1,'pre::json::from_json(const std::string &serialized_json)'],['../namespacepre_1_1json.html#a7c7c690dc4f6840dd7b71b4e549beebe',1,'pre::json::from_json(const nlohmann::json &json_object)']]], + ['function_5ftraits_15',['function_traits',['../structpre_1_1type__traits_1_1function__traits.html',1,'pre::type_traits']]], + ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5ffunction_5fmember_5fpointer_5ft_3c_20f_20_3e_20_3e_16',['function_traits< F, detail::enable_if_is_function_member_pointer_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__member__pointer__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]], + ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5ffunction_5ft_3c_20f_20_3e_20_3e_17',['function_traits< F, detail::enable_if_is_function_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]], + ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5flambda_5ft_3c_20f_20_3e_20_3e_18',['function_traits< F, detail::enable_if_is_lambda_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__lambda__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]] ]; diff --git a/html/search/all_5.html b/html/search/all_5.html index d8de556..2544c4e 100644 --- a/html/search/all_5.html +++ b/html/search/all_5.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_5.js b/html/search/all_5.js index 2a780a3..ce9d7ec 100644 --- a/html/search/all_5.js +++ b/html/search/all_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['get_5foption',['get_option',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a664cdb8482b010c7e53b8c31a6b25e04',1,'boost::asio::mockup_serial_port_service']]] + ['get_5foption_19',['get_option',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a304121ce554f54d399157d7bb0f4ed92',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/all_6.html b/html/search/all_6.html index 9ba0cc2..43f14ea 100644 --- a/html/search/all_6.html +++ b/html/search/all_6.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_6.js b/html/search/all_6.js index d203018..2044197 100644 --- a/html/search/all_6.js +++ b/html/search/all_6.js @@ -1,7 +1,7 @@ var searchData= [ - ['handles_5fcontainer_3c_20pre_3a_3aspirit_3a_3akarma_3a_3acrc_5fof_5fdirective_3c_20subject_20_3e_2c_20attribute_2c_20context_2c_20iterator_20_3e',['handles_container< pre::spirit::karma::crc_of_directive< Subject >, Attribute, Context, Iterator >',['../structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1crc__of__dir399a186e2d639ee2af7d7f049233656b.html',1,'boost::spirit::traits']]], - ['handles_5fcontainer_3c_20pre_3a_3aspirit_3a_3akarma_3a_3asizeof_5fdirective_3c_20subject_20_3e_2c_20attribute_2c_20context_2c_20iterator_20_3e',['handles_container< pre::spirit::karma::sizeof_directive< Subject >, Attribute, Context, Iterator >',['../structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1sizeof__dire7f631c3c70d51d01d23427f63dab3fd1.html',1,'boost::spirit::traits']]], - ['has_5fsemantic_5faction_3c_20pre_3a_3aspirit_3a_3akarma_3a_3acrc_5fof_5fdirective_3c_20subject_20_3e_20_3e',['has_semantic_action< pre::spirit::karma::crc_of_directive< Subject > >',['../structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1crc__of__directive_3_01Subject_01_4_01_4.html',1,'boost::spirit::traits']]], - ['has_5fsemantic_5faction_3c_20pre_3a_3aspirit_3a_3akarma_3a_3asizeof_5fdirective_3c_20subject_20_3e_20_3e',['has_semantic_action< pre::spirit::karma::sizeof_directive< Subject > >',['../structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1sizeof__directive_3_01Subject_01_4_01_4.html',1,'boost::spirit::traits']]] + ['handles_5fcontainer_3c_20pre_3a_3aspirit_3a_3akarma_3a_3acrc_5fof_5fdirective_3c_20subject_20_3e_2c_20attribute_2c_20context_2c_20iterator_20_3e_20',['handles_container< pre::spirit::karma::crc_of_directive< Subject >, Attribute, Context, Iterator >',['../structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1crc__of__dir399a186e2d639ee2af7d7f049233656b.html',1,'boost::spirit::traits']]], + ['handles_5fcontainer_3c_20pre_3a_3aspirit_3a_3akarma_3a_3asizeof_5fdirective_3c_20subject_20_3e_2c_20attribute_2c_20context_2c_20iterator_20_3e_21',['handles_container< pre::spirit::karma::sizeof_directive< Subject >, Attribute, Context, Iterator >',['../structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1sizeof__dire7f631c3c70d51d01d23427f63dab3fd1.html',1,'boost::spirit::traits']]], + ['has_5fsemantic_5faction_3c_20pre_3a_3aspirit_3a_3akarma_3a_3acrc_5fof_5fdirective_3c_20subject_20_3e_20_3e_22',['has_semantic_action< pre::spirit::karma::crc_of_directive< Subject > >',['../structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1crc__of__directive_3_01Subject_01_4_01_4.html',1,'boost::spirit::traits']]], + ['has_5fsemantic_5faction_3c_20pre_3a_3aspirit_3a_3akarma_3a_3asizeof_5fdirective_3c_20subject_20_3e_20_3e_23',['has_semantic_action< pre::spirit::karma::sizeof_directive< Subject > >',['../structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1sizeof__directive_3_01Subject_01_4_01_4.html',1,'boost::spirit::traits']]] ]; diff --git a/html/search/all_7.html b/html/search/all_7.html index 9384ec9..af52f82 100644 --- a/html/search/all_7.html +++ b/html/search/all_7.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_7.js b/html/search/all_7.js index 6cac324..036a819 100644 --- a/html/search/all_7.js +++ b/html/search/all_7.js @@ -1,5 +1,5 @@ var searchData= [ - ['implementation_5ftype',['implementation_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a2f335a245e36f9a13094d700537e9ae8',1,'boost::asio::mockup_serial_port_service']]], - ['is_5fopen',['is_open',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a56f6adec73b18368887f50d79830c584',1,'boost::asio::mockup_serial_port_service']]] + ['implementation_5ftype_24',['implementation_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a2f335a245e36f9a13094d700537e9ae8',1,'boost::asio::mockup_serial_port_service']]], + ['is_5fopen_25',['is_open',['../classboost_1_1asio_1_1mockup__serial__port__service.html#aede4726eb067705e9aa94f1d2b96ecd5',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/all_8.html b/html/search/all_8.html index 37566c5..cf2b5df 100644 --- a/html/search/all_8.html +++ b/html/search/all_8.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_8.js b/html/search/all_8.js index c3e5bba..7dcba5e 100644 --- a/html/search/all_8.js +++ b/html/search/all_8.js @@ -1,5 +1,4 @@ var searchData= [ - ['lib_2dcpp_2dpre',['lib-cpp-pre',['../index.html',1,'']]], - ['load_5fbytearray',['load_bytearray',['../namespacepre_1_1bytes.html#a6320f726bd74b95862d39a8438a28156',1,'pre::bytes']]] + ['load_5fbytearray_26',['load_bytearray',['../namespacepre_1_1bytes.html#a6320f726bd74b95862d39a8438a28156',1,'pre::bytes']]] ]; diff --git a/html/search/all_9.html b/html/search/all_9.html index c8c5102..690785a 100644 --- a/html/search/all_9.html +++ b/html/search/all_9.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_9.js b/html/search/all_9.js index 4c238ea..901c869 100644 --- a/html/search/all_9.js +++ b/html/search/all_9.js @@ -1,8 +1,7 @@ var searchData= [ - ['make_5fdirective_3c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3acrc_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_2c_20subject_2c_20modifiers_20_3e',['make_directive< terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > >, Subject, Modifiers >',['../structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_5ff51dacc8f29010bebeee6a7eeb70be.html',1,'boost::spirit::karma']]], - ['make_5fdirective_3c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3asize_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_2c_20subject_2c_20modifiers_20_3e',['make_directive< terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > >, Subject, Modifiers >',['../structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_34b5d88cc5bd64521f46f30f49dbe425.html',1,'boost::spirit::karma']]], - ['mockup_5fserial_5fport_5fservice',['mockup_serial_port_service',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af1890f05dd51b62a53f1a376b33afa68',1,'boost::asio::mockup_serial_port_service']]], - ['mockup_5fserial_5fport_5fservice',['mockup_serial_port_service',['../classboost_1_1asio_1_1mockup__serial__port__service.html',1,'boost::asio']]], - ['move_5fconstruct',['move_construct',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ab4822804b043dada2fec1b83daa35d99',1,'boost::asio::mockup_serial_port_service']]] + ['make_5fdirective_3c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3acrc_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_2c_20subject_2c_20modifiers_20_3e_27',['make_directive< terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > >, Subject, Modifiers >',['../structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_5ff51dacc8f29010bebeee6a7eeb70be.html',1,'boost::spirit::karma']]], + ['make_5fdirective_3c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3asize_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_2c_20subject_2c_20modifiers_20_3e_28',['make_directive< terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > >, Subject, Modifiers >',['../structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_34b5d88cc5bd64521f46f30f49dbe425.html',1,'boost::spirit::karma']]], + ['mockup_5fserial_5fport_5fservice_29',['mockup_serial_port_service',['../classboost_1_1asio_1_1mockup__serial__port__service.html',1,'boost::asio::mockup_serial_port_service'],['../classboost_1_1asio_1_1mockup__serial__port__service.html#af1890f05dd51b62a53f1a376b33afa68',1,'boost::asio::mockup_serial_port_service::mockup_serial_port_service()']]], + ['move_5fconstruct_30',['move_construct',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ab4822804b043dada2fec1b83daa35d99',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/all_a.html b/html/search/all_a.html index 4cb31f0..f2f3d3a 100644 --- a/html/search/all_a.html +++ b/html/search/all_a.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_a.js b/html/search/all_a.js index 6e655ec..1b60cb1 100644 --- a/html/search/all_a.js +++ b/html/search/all_a.js @@ -1,8 +1,8 @@ var searchData= [ - ['native',['native',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a28133b563ee41a789e66969129e956d9',1,'boost::asio::mockup_serial_port_service']]], - ['native_5fhandle',['native_handle',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a224db5fbf2fe88706732bebd5ad8d3b1',1,'boost::asio::mockup_serial_port_service']]], - ['native_5fhandle_5ftype',['native_handle_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a9244f03da1f2d4bc212a9ece2078dad9',1,'boost::asio::mockup_serial_port_service']]], - ['native_5ftype',['native_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a58270a0f7d8038aaa0116f2a3250183b',1,'boost::asio::mockup_serial_port_service']]], - ['nibble_5fbits',['NIBBLE_BITS',['../namespacepre_1_1bytes.html#a2c425b8992dcd3d9f5110a1fa03efab2',1,'pre::bytes']]] + ['native_31',['native',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a28133b563ee41a789e66969129e956d9',1,'boost::asio::mockup_serial_port_service']]], + ['native_5fhandle_32',['native_handle',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a224db5fbf2fe88706732bebd5ad8d3b1',1,'boost::asio::mockup_serial_port_service']]], + ['native_5fhandle_5ftype_33',['native_handle_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a9244f03da1f2d4bc212a9ece2078dad9',1,'boost::asio::mockup_serial_port_service']]], + ['native_5ftype_34',['native_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a58270a0f7d8038aaa0116f2a3250183b',1,'boost::asio::mockup_serial_port_service']]], + ['nibble_5fbits_35',['NIBBLE_BITS',['../namespacepre_1_1bytes.html#a2c425b8992dcd3d9f5110a1fa03efab2',1,'pre::bytes']]] ]; diff --git a/html/search/all_b.html b/html/search/all_b.html index d34a612..14f3403 100644 --- a/html/search/all_b.html +++ b/html/search/all_b.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_b.js b/html/search/all_b.js index 6ea0374..eb2d874 100644 --- a/html/search/all_b.js +++ b/html/search/all_b.js @@ -1,4 +1,4 @@ var searchData= [ - ['open',['open',['../classboost_1_1asio_1_1mockup__serial__port__service.html#abf2ffcbc3446e187b686af00c55fac00',1,'boost::asio::mockup_serial_port_service']]] + ['open_36',['open',['../classboost_1_1asio_1_1mockup__serial__port__service.html#abf2ffcbc3446e187b686af00c55fac00',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/all_c.html b/html/search/all_c.html index c1ae2ca..da60ab8 100644 --- a/html/search/all_c.html +++ b/html/search/all_c.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_c.js b/html/search/all_c.js index e44f56b..979c368 100644 --- a/html/search/all_c.js +++ b/html/search/all_c.js @@ -1,19 +1,19 @@ var searchData= [ - ['bits',['bits',['../namespacepre_1_1bits.html',1,'pre']]], - ['boost',['boost',['../namespacepre_1_1chrono_1_1boost.html',1,'pre::chrono']]], - ['bytes',['bytes',['../namespacepre_1_1bytes.html',1,'pre']]], - ['cv',['CV',['../namespacepre_1_1CV.html',1,'pre']]], - ['enums',['enums',['../namespacepre_1_1enums.html',1,'pre']]], - ['functional',['functional',['../namespacepre_1_1functional.html',1,'pre']]], - ['fusion',['fusion',['../namespacepre_1_1fusion.html',1,'pre']]], - ['iostreams',['iostreams',['../namespacepre_1_1iostreams.html',1,'pre']]], - ['iterators',['iterators',['../namespacepre_1_1iterators.html',1,'pre']]], - ['json',['json',['../namespacepre_1_1json.html',1,'pre']]], - ['karma',['karma',['../namespacepre_1_1spirit_1_1karma.html',1,'pre::spirit']]], - ['pre',['pre',['../namespacepre.html',1,'']]], - ['range',['range',['../namespacepre_1_1range.html',1,'pre']]], - ['std',['std',['../namespacepre_1_1chrono_1_1std.html',1,'pre::chrono']]], - ['type_5ftraits',['type_traits',['../namespacepre_1_1type__traits.html',1,'pre']]], - ['variant',['variant',['../namespacepre_1_1variant.html',1,'pre']]] + ['bits_37',['bits',['../namespacepre_1_1bits.html',1,'pre']]], + ['boost_38',['boost',['../namespacepre_1_1chrono_1_1boost.html',1,'pre::chrono']]], + ['bytes_39',['bytes',['../namespacepre_1_1bytes.html',1,'pre']]], + ['cv_40',['CV',['../namespacepre_1_1CV.html',1,'pre']]], + ['enums_41',['enums',['../namespacepre_1_1enums.html',1,'pre']]], + ['functional_42',['functional',['../namespacepre_1_1functional.html',1,'pre']]], + ['fusion_43',['fusion',['../namespacepre_1_1fusion.html',1,'pre']]], + ['iostreams_44',['iostreams',['../namespacepre_1_1iostreams.html',1,'pre']]], + ['iterators_45',['iterators',['../namespacepre_1_1iterators.html',1,'pre']]], + ['json_46',['json',['../namespacepre_1_1json.html',1,'pre']]], + ['karma_47',['karma',['../namespacepre_1_1spirit_1_1karma.html',1,'pre::spirit']]], + ['pre_48',['pre',['../namespacepre.html',1,'']]], + ['range_49',['range',['../namespacepre_1_1range.html',1,'pre']]], + ['std_50',['std',['../namespacepre_1_1chrono_1_1std.html',1,'pre::chrono']]], + ['type_5ftraits_51',['type_traits',['../namespacepre_1_1type__traits.html',1,'pre']]], + ['variant_52',['variant',['../namespacepre_1_1variant.html',1,'pre']]] ]; diff --git a/html/search/all_d.html b/html/search/all_d.html index 712223c..bc376fe 100644 --- a/html/search/all_d.html +++ b/html/search/all_d.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_d.js b/html/search/all_d.js index a3db6e1..cf090ea 100644 --- a/html/search/all_d.js +++ b/html/search/all_d.js @@ -1,4 +1,4 @@ var searchData= [ - ['read_5fsome',['read_some',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af108a60cc69494b46dfe82bf4c3aa88b',1,'boost::asio::mockup_serial_port_service']]] + ['read_5fsome_53',['read_some',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af108a60cc69494b46dfe82bf4c3aa88b',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/all_e.html b/html/search/all_e.html index d553ffa..2e3c74d 100644 --- a/html/search/all_e.html +++ b/html/search/all_e.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_e.js b/html/search/all_e.js index f101d79..5afe85a 100644 --- a/html/search/all_e.js +++ b/html/search/all_e.js @@ -1,7 +1,7 @@ var searchData= [ - ['send_5fbreak',['send_break',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a83ab60370996b812e2d322c942241144',1,'boost::asio::mockup_serial_port_service']]], - ['set_5foption',['set_option',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a04ae7086d61e3931e37334ec4ba66e71',1,'boost::asio::mockup_serial_port_service']]], - ['shift_5fin_5fbitset',['shift_in_bitset',['../namespacepre_1_1bits.html#a75a9200f92b3ce33110fa2b5a4371ebe',1,'pre::bits']]], - ['sizeof_5fdirective',['sizeof_directive',['../structpre_1_1spirit_1_1karma_1_1sizeof__directive.html',1,'pre::spirit::karma']]] + ['send_5fbreak_54',['send_break',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a83ab60370996b812e2d322c942241144',1,'boost::asio::mockup_serial_port_service']]], + ['set_5foption_55',['set_option',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a04ae7086d61e3931e37334ec4ba66e71',1,'boost::asio::mockup_serial_port_service']]], + ['shift_5fin_5fbitset_56',['shift_in_bitset',['../namespacepre_1_1bits.html#a75a9200f92b3ce33110fa2b5a4371ebe',1,'pre::bits']]], + ['sizeof_5fdirective_57',['sizeof_directive',['../structpre_1_1spirit_1_1karma_1_1sizeof__directive.html',1,'pre::spirit::karma']]] ]; diff --git a/html/search/all_f.html b/html/search/all_f.html index c77391a..246f8ab 100644 --- a/html/search/all_f.html +++ b/html/search/all_f.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/all_f.js b/html/search/all_f.js index b35112b..d3e85f3 100644 --- a/html/search/all_f.js +++ b/html/search/all_f.js @@ -1,11 +1,12 @@ var searchData= [ - ['tutorial_20to_20or_20from_20json',['Tutorial to or from json',['../md_doc_tutorial_to_and_from_json.html',1,'']]], - ['to_5fbinstring',['to_binstring',['../namespacepre_1_1bytes.html#a768edbcc129b4ae4a054d90314756261',1,'pre::bytes::to_binstring()'],['../namespacepre_1_1bits.html#a5a376445e1ed3128aa2805ee7b7cfb6d',1,'pre::bits::to_binstring()']]], - ['to_5fbitset',['to_bitset',['../namespacepre_1_1bits.html#aeb0029590c7220bd5df43f66f4a5f97c',1,'pre::bits']]], - ['to_5fbytearray',['to_bytearray',['../namespacepre_1_1bits.html#a262bc8dfd3bf22b5e1513a9a6ee28d6b',1,'pre::bits']]], - ['to_5fhexstring',['to_hexstring',['../namespacepre_1_1bytes.html#a431df4ebf59e246ca3557541f3ee4a82',1,'pre::bytes::to_hexstring(const boost::uint8_t *bytes, const size_t length)'],['../namespacepre_1_1bytes.html#a29c41eb22e9254f6387094cbdb4e9691',1,'pre::bytes::to_hexstring(const std::string &bytes)']]], - ['to_5fjson',['to_json',['../namespacepre_1_1json.html#a4325d2cdd64a7e321303fd4428f298b9',1,'pre::json']]], - ['to_5fstring',['to_string',['../namespacepre_1_1bits.html#aecaaad85dab7adcffff170cce17e309c',1,'pre::bits']]], - ['to_5funderlying',['to_underlying',['../namespacepre_1_1enums.html#aa34e3ac31f67f25fa822560729323141',1,'pre::enums']]] + ['tutorial_20to_20or_20from_20json_58',['Tutorial to or from json',['../md_doc_tutorial_to_and_from_json.html',1,'']]], + ['this_20repository_20has_20moved_20to_20it_27s_20own_20organization_20https_3a_2f_2fgithub_2ecom_2fcpp_2dpre_59',['This repository has moved to it's own organization https://github.com/cpp-pre',['../md_README.html',1,'']]], + ['to_5fbinstring_60',['to_binstring',['../namespacepre_1_1bytes.html#a768edbcc129b4ae4a054d90314756261',1,'pre::bytes::to_binstring()'],['../namespacepre_1_1bits.html#a5a376445e1ed3128aa2805ee7b7cfb6d',1,'pre::bits::to_binstring()']]], + ['to_5fbitset_61',['to_bitset',['../namespacepre_1_1bits.html#aeb0029590c7220bd5df43f66f4a5f97c',1,'pre::bits']]], + ['to_5fbytearray_62',['to_bytearray',['../namespacepre_1_1bits.html#a262bc8dfd3bf22b5e1513a9a6ee28d6b',1,'pre::bits']]], + ['to_5fhexstring_63',['to_hexstring',['../namespacepre_1_1bytes.html#a431df4ebf59e246ca3557541f3ee4a82',1,'pre::bytes::to_hexstring(const boost::uint8_t *bytes, const size_t length)'],['../namespacepre_1_1bytes.html#a29c41eb22e9254f6387094cbdb4e9691',1,'pre::bytes::to_hexstring(const std::string &bytes)']]], + ['to_5fjson_64',['to_json',['../namespacepre_1_1json.html#a4325d2cdd64a7e321303fd4428f298b9',1,'pre::json']]], + ['to_5fstring_65',['to_string',['../namespacepre_1_1bits.html#aecaaad85dab7adcffff170cce17e309c',1,'pre::bits']]], + ['to_5funderlying_66',['to_underlying',['../namespacepre_1_1enums.html#aa34e3ac31f67f25fa822560729323141',1,'pre::enums']]] ]; diff --git a/html/search/classes_0.html b/html/search/classes_0.html index 025587a..f7e4c14 100644 --- a/html/search/classes_0.html +++ b/html/search/classes_0.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/classes_0.js b/html/search/classes_0.js index 3bf6845..5a04ce5 100644 --- a/html/search/classes_0.js +++ b/html/search/classes_0.js @@ -1,5 +1,4 @@ var searchData= [ - ['attribute',['attribute',['../structpre_1_1spirit_1_1karma_1_1crc__of__directive_1_1attribute.html',1,'pre::spirit::karma::crc_of_directive']]], - ['attribute',['attribute',['../structpre_1_1spirit_1_1karma_1_1sizeof__directive_1_1attribute.html',1,'pre::spirit::karma::sizeof_directive']]] + ['attribute_70',['attribute',['../structpre_1_1spirit_1_1karma_1_1crc__of__directive_1_1attribute.html',1,'pre::spirit::karma::crc_of_directive< Subject >::attribute< Context, Iterator >'],['../structpre_1_1spirit_1_1karma_1_1sizeof__directive_1_1attribute.html',1,'pre::spirit::karma::sizeof_directive< Subject >::attribute< Context, Iterator >']]] ]; diff --git a/html/search/classes_1.html b/html/search/classes_1.html index 86dc4ff..c7ff4b3 100644 --- a/html/search/classes_1.html +++ b/html/search/classes_1.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/classes_1.js b/html/search/classes_1.js index a10a9ae..15b5431 100644 --- a/html/search/classes_1.js +++ b/html/search/classes_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['crc_5fof_5fdirective',['crc_of_directive',['../structpre_1_1spirit_1_1karma_1_1crc__of__directive.html',1,'pre::spirit::karma']]] + ['crc_5fof_5fdirective_71',['crc_of_directive',['../structpre_1_1spirit_1_1karma_1_1crc__of__directive.html',1,'pre::spirit::karma']]] ]; diff --git a/html/search/classes_2.html b/html/search/classes_2.html index 014caf8..0d1e8a0 100644 --- a/html/search/classes_2.html +++ b/html/search/classes_2.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/classes_2.js b/html/search/classes_2.js index fcd1c2b..88fb0a5 100644 --- a/html/search/classes_2.js +++ b/html/search/classes_2.js @@ -1,7 +1,7 @@ var searchData= [ - ['function_5ftraits',['function_traits',['../structpre_1_1type__traits_1_1function__traits.html',1,'pre::type_traits']]], - ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5ffunction_5fmember_5fpointer_5ft_3c_20f_20_3e_20_3e',['function_traits< F, detail::enable_if_is_function_member_pointer_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__member__pointer__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]], - ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5ffunction_5ft_3c_20f_20_3e_20_3e',['function_traits< F, detail::enable_if_is_function_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]], - ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5flambda_5ft_3c_20f_20_3e_20_3e',['function_traits< F, detail::enable_if_is_lambda_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__lambda__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]] + ['function_5ftraits_72',['function_traits',['../structpre_1_1type__traits_1_1function__traits.html',1,'pre::type_traits']]], + ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5ffunction_5fmember_5fpointer_5ft_3c_20f_20_3e_20_3e_73',['function_traits< F, detail::enable_if_is_function_member_pointer_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__member__pointer__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]], + ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5ffunction_5ft_3c_20f_20_3e_20_3e_74',['function_traits< F, detail::enable_if_is_function_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]], + ['function_5ftraits_3c_20f_2c_20detail_3a_3aenable_5fif_5fis_5flambda_5ft_3c_20f_20_3e_20_3e_75',['function_traits< F, detail::enable_if_is_lambda_t< F > >',['../structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__lambda__t_3_01F_01_4_01_4.html',1,'pre::type_traits']]] ]; diff --git a/html/search/classes_3.html b/html/search/classes_3.html index 2e97201..2102545 100644 --- a/html/search/classes_3.html +++ b/html/search/classes_3.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/classes_3.js b/html/search/classes_3.js index d203018..57160bf 100644 --- a/html/search/classes_3.js +++ b/html/search/classes_3.js @@ -1,7 +1,7 @@ var searchData= [ - ['handles_5fcontainer_3c_20pre_3a_3aspirit_3a_3akarma_3a_3acrc_5fof_5fdirective_3c_20subject_20_3e_2c_20attribute_2c_20context_2c_20iterator_20_3e',['handles_container< pre::spirit::karma::crc_of_directive< Subject >, Attribute, Context, Iterator >',['../structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1crc__of__dir399a186e2d639ee2af7d7f049233656b.html',1,'boost::spirit::traits']]], - ['handles_5fcontainer_3c_20pre_3a_3aspirit_3a_3akarma_3a_3asizeof_5fdirective_3c_20subject_20_3e_2c_20attribute_2c_20context_2c_20iterator_20_3e',['handles_container< pre::spirit::karma::sizeof_directive< Subject >, Attribute, Context, Iterator >',['../structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1sizeof__dire7f631c3c70d51d01d23427f63dab3fd1.html',1,'boost::spirit::traits']]], - ['has_5fsemantic_5faction_3c_20pre_3a_3aspirit_3a_3akarma_3a_3acrc_5fof_5fdirective_3c_20subject_20_3e_20_3e',['has_semantic_action< pre::spirit::karma::crc_of_directive< Subject > >',['../structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1crc__of__directive_3_01Subject_01_4_01_4.html',1,'boost::spirit::traits']]], - ['has_5fsemantic_5faction_3c_20pre_3a_3aspirit_3a_3akarma_3a_3asizeof_5fdirective_3c_20subject_20_3e_20_3e',['has_semantic_action< pre::spirit::karma::sizeof_directive< Subject > >',['../structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1sizeof__directive_3_01Subject_01_4_01_4.html',1,'boost::spirit::traits']]] + ['handles_5fcontainer_3c_20pre_3a_3aspirit_3a_3akarma_3a_3acrc_5fof_5fdirective_3c_20subject_20_3e_2c_20attribute_2c_20context_2c_20iterator_20_3e_76',['handles_container< pre::spirit::karma::crc_of_directive< Subject >, Attribute, Context, Iterator >',['../structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1crc__of__dir399a186e2d639ee2af7d7f049233656b.html',1,'boost::spirit::traits']]], + ['handles_5fcontainer_3c_20pre_3a_3aspirit_3a_3akarma_3a_3asizeof_5fdirective_3c_20subject_20_3e_2c_20attribute_2c_20context_2c_20iterator_20_3e_77',['handles_container< pre::spirit::karma::sizeof_directive< Subject >, Attribute, Context, Iterator >',['../structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1sizeof__dire7f631c3c70d51d01d23427f63dab3fd1.html',1,'boost::spirit::traits']]], + ['has_5fsemantic_5faction_3c_20pre_3a_3aspirit_3a_3akarma_3a_3acrc_5fof_5fdirective_3c_20subject_20_3e_20_3e_78',['has_semantic_action< pre::spirit::karma::crc_of_directive< Subject > >',['../structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1crc__of__directive_3_01Subject_01_4_01_4.html',1,'boost::spirit::traits']]], + ['has_5fsemantic_5faction_3c_20pre_3a_3aspirit_3a_3akarma_3a_3asizeof_5fdirective_3c_20subject_20_3e_20_3e_79',['has_semantic_action< pre::spirit::karma::sizeof_directive< Subject > >',['../structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1sizeof__directive_3_01Subject_01_4_01_4.html',1,'boost::spirit::traits']]] ]; diff --git a/html/search/classes_4.html b/html/search/classes_4.html index 776fee3..095ab59 100644 --- a/html/search/classes_4.html +++ b/html/search/classes_4.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/classes_4.js b/html/search/classes_4.js index 888d40e..2249482 100644 --- a/html/search/classes_4.js +++ b/html/search/classes_4.js @@ -1,6 +1,6 @@ var searchData= [ - ['make_5fdirective_3c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3acrc_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_2c_20subject_2c_20modifiers_20_3e',['make_directive< terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > >, Subject, Modifiers >',['../structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_5ff51dacc8f29010bebeee6a7eeb70be.html',1,'boost::spirit::karma']]], - ['make_5fdirective_3c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3asize_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_2c_20subject_2c_20modifiers_20_3e',['make_directive< terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > >, Subject, Modifiers >',['../structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_34b5d88cc5bd64521f46f30f49dbe425.html',1,'boost::spirit::karma']]], - ['mockup_5fserial_5fport_5fservice',['mockup_serial_port_service',['../classboost_1_1asio_1_1mockup__serial__port__service.html',1,'boost::asio']]] + ['make_5fdirective_3c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3acrc_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_2c_20subject_2c_20modifiers_20_3e_80',['make_directive< terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > >, Subject, Modifiers >',['../structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_5ff51dacc8f29010bebeee6a7eeb70be.html',1,'boost::spirit::karma']]], + ['make_5fdirective_3c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3asize_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_2c_20subject_2c_20modifiers_20_3e_81',['make_directive< terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > >, Subject, Modifiers >',['../structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_34b5d88cc5bd64521f46f30f49dbe425.html',1,'boost::spirit::karma']]], + ['mockup_5fserial_5fport_5fservice_82',['mockup_serial_port_service',['../classboost_1_1asio_1_1mockup__serial__port__service.html',1,'boost::asio']]] ]; diff --git a/html/search/classes_5.html b/html/search/classes_5.html index 69bbcc8..fc9cdc9 100644 --- a/html/search/classes_5.html +++ b/html/search/classes_5.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/classes_5.js b/html/search/classes_5.js index d2c171a..522ff6f 100644 --- a/html/search/classes_5.js +++ b/html/search/classes_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['sizeof_5fdirective',['sizeof_directive',['../structpre_1_1spirit_1_1karma_1_1sizeof__directive.html',1,'pre::spirit::karma']]] + ['sizeof_5fdirective_83',['sizeof_directive',['../structpre_1_1spirit_1_1karma_1_1sizeof__directive.html',1,'pre::spirit::karma']]] ]; diff --git a/html/search/classes_6.html b/html/search/classes_6.html index 2db08a0..1ecfddd 100644 --- a/html/search/classes_6.html +++ b/html/search/classes_6.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/classes_6.js b/html/search/classes_6.js index e626da1..cf11296 100644 --- a/html/search/classes_6.js +++ b/html/search/classes_6.js @@ -1,5 +1,5 @@ var searchData= [ - ['use_5fdirective_3c_20karma_3a_3adomain_2c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3acrc_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_20_3e',['use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > > >',['../structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_632d70f780c9bbd12f86656bf2a5f3ce.html',1,'boost::spirit']]], - ['use_5fdirective_3c_20karma_3a_3adomain_2c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3asize_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_20_3e',['use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > > >',['../structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_9a24535ec3fb070215516644145fa642.html',1,'boost::spirit']]] + ['use_5fdirective_3c_20karma_3a_3adomain_2c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3acrc_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_20_3e_84',['use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > > >',['../structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_632d70f780c9bbd12f86656bf2a5f3ce.html',1,'boost::spirit']]], + ['use_5fdirective_3c_20karma_3a_3adomain_2c_20terminal_5fex_3c_20pre_3a_3aspirit_3a_3akarma_3a_3atag_3a_3asize_5fof_2c_20fusion_3a_3avector1_3c_20t_20_3e_20_3e_20_3e_85',['use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > > >',['../structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_9a24535ec3fb070215516644145fa642.html',1,'boost::spirit']]] ]; diff --git a/html/search/functions_0.html b/html/search/functions_0.html index 6bc52b6..e17c711 100644 --- a/html/search/functions_0.html +++ b/html/search/functions_0.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_0.js b/html/search/functions_0.js index d08297a..4be9018 100644 --- a/html/search/functions_0.js +++ b/html/search/functions_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['assign',['assign',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a7aaf39d22ceb14c08d81bd0ddf2d621e',1,'boost::asio::mockup_serial_port_service']]] + ['assign_103',['assign',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a7aaf39d22ceb14c08d81bd0ddf2d621e',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/functions_1.html b/html/search/functions_1.html index 648831f..0ddac0a 100644 --- a/html/search/functions_1.html +++ b/html/search/functions_1.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_1.js b/html/search/functions_1.js index 094eaca..3e10e57 100644 --- a/html/search/functions_1.js +++ b/html/search/functions_1.js @@ -1,5 +1,5 @@ var searchData= [ - ['boost_5fasio_5finitfn_5fresult_5ftype',['BOOST_ASIO_INITFN_RESULT_TYPE',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a3eec5cc88de0d64fffe0ea5d51091535',1,'boost::asio::mockup_serial_port_service::BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, void(boost::system::error_code, std::size_t)) async_write_some(implementation_type &impl'],['../classboost_1_1asio_1_1mockup__serial__port__service.html#a6d6deb5e1f22c231af357e850ca48486',1,'boost::asio::mockup_serial_port_service::BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler, void(boost::system::error_code, std::size_t)) async_read_some(implementation_type &impl']]], - ['buffer_5ffrom_5fhexstring',['buffer_from_hexstring',['../namespacepre_1_1bytes.html#a3fc6f9edbe4415d1378a6cf7303a6363',1,'pre::bytes']]] + ['boost_5fasio_5finitfn_5fresult_5ftype_104',['BOOST_ASIO_INITFN_RESULT_TYPE',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a3eec5cc88de0d64fffe0ea5d51091535',1,'boost::asio::mockup_serial_port_service::BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, void(boost::system::error_code, std::size_t)) async_write_some(implementation_type &impl'],['../classboost_1_1asio_1_1mockup__serial__port__service.html#a6d6deb5e1f22c231af357e850ca48486',1,'boost::asio::mockup_serial_port_service::BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler, void(boost::system::error_code, std::size_t)) async_read_some(implementation_type &impl']]], + ['buffer_5ffrom_5fhexstring_105',['buffer_from_hexstring',['../namespacepre_1_1bytes.html#a3fc6f9edbe4415d1378a6cf7303a6363',1,'pre::bytes']]] ]; diff --git a/html/search/functions_2.html b/html/search/functions_2.html index c93d089..2737c5a 100644 --- a/html/search/functions_2.html +++ b/html/search/functions_2.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_2.js b/html/search/functions_2.js index b5d3cfa..4e583bf 100644 --- a/html/search/functions_2.js +++ b/html/search/functions_2.js @@ -1,6 +1,6 @@ var searchData= [ - ['cancel',['cancel',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a5de50ee6c22b9a02c6ec88c6989dff9e',1,'boost::asio::mockup_serial_port_service']]], - ['close',['close',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af70ef9b51d7448fae594d32c72893e8c',1,'boost::asio::mockup_serial_port_service']]], - ['construct',['construct',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ab651a1d5f3426bd4b54069bc9d966940',1,'boost::asio::mockup_serial_port_service']]] + ['cancel_106',['cancel',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a5de50ee6c22b9a02c6ec88c6989dff9e',1,'boost::asio::mockup_serial_port_service']]], + ['close_107',['close',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af70ef9b51d7448fae594d32c72893e8c',1,'boost::asio::mockup_serial_port_service']]], + ['construct_108',['construct',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ab651a1d5f3426bd4b54069bc9d966940',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/functions_3.html b/html/search/functions_3.html index caa48ea..6da86e7 100644 --- a/html/search/functions_3.html +++ b/html/search/functions_3.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_3.js b/html/search/functions_3.js index 97f6f9c..ca0e4eb 100644 --- a/html/search/functions_3.js +++ b/html/search/functions_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['destroy',['destroy',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a6fea02a624c3c064442d4a0c9ec1dda0',1,'boost::asio::mockup_serial_port_service']]] + ['destroy_109',['destroy',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a6fea02a624c3c064442d4a0c9ec1dda0',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/functions_4.html b/html/search/functions_4.html index a9c64ad..911304e 100644 --- a/html/search/functions_4.html +++ b/html/search/functions_4.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_4.js b/html/search/functions_4.js index 5b1b89c..32ddbda 100644 --- a/html/search/functions_4.js +++ b/html/search/functions_4.js @@ -1,7 +1,7 @@ var searchData= [ - ['from_5fbytearray',['from_byteArray',['../namespacepre_1_1bytes.html#a198dab9c9bea5998501b78c84ea9961c',1,'pre::bytes']]], - ['from_5fhexchar',['from_hexchar',['../namespacepre_1_1bytes.html#a45c336f50e5786a0cbcdaa814c73c5eb',1,'pre::bytes']]], - ['from_5fhexstring',['from_hexstring',['../namespacepre_1_1bytes.html#a00d7fe24693408f3b5d167f94f794314',1,'pre::bytes']]], - ['from_5fjson',['from_json',['../namespacepre_1_1json.html#af15a5fcde560c7eb22de936ed6fd1303',1,'pre::json::from_json(const std::string &serialized_json)'],['../namespacepre_1_1json.html#a7c7c690dc4f6840dd7b71b4e549beebe',1,'pre::json::from_json(const nlohmann::json &json_object)']]] + ['from_5fbytearray_110',['from_byteArray',['../namespacepre_1_1bytes.html#a198dab9c9bea5998501b78c84ea9961c',1,'pre::bytes']]], + ['from_5fhexchar_111',['from_hexchar',['../namespacepre_1_1bytes.html#a45c336f50e5786a0cbcdaa814c73c5eb',1,'pre::bytes']]], + ['from_5fhexstring_112',['from_hexstring',['../namespacepre_1_1bytes.html#a00d7fe24693408f3b5d167f94f794314',1,'pre::bytes']]], + ['from_5fjson_113',['from_json',['../namespacepre_1_1json.html#af15a5fcde560c7eb22de936ed6fd1303',1,'pre::json::from_json(const std::string &serialized_json)'],['../namespacepre_1_1json.html#a7c7c690dc4f6840dd7b71b4e549beebe',1,'pre::json::from_json(const nlohmann::json &json_object)']]] ]; diff --git a/html/search/functions_5.html b/html/search/functions_5.html index 9d135fa..61b920d 100644 --- a/html/search/functions_5.html +++ b/html/search/functions_5.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_5.js b/html/search/functions_5.js index 2a780a3..c6cee28 100644 --- a/html/search/functions_5.js +++ b/html/search/functions_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['get_5foption',['get_option',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a664cdb8482b010c7e53b8c31a6b25e04',1,'boost::asio::mockup_serial_port_service']]] + ['get_5foption_114',['get_option',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a304121ce554f54d399157d7bb0f4ed92',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/functions_6.html b/html/search/functions_6.html index 5fca897..dc70a4a 100644 --- a/html/search/functions_6.html +++ b/html/search/functions_6.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_6.js b/html/search/functions_6.js index a20f63a..c3dae7d 100644 --- a/html/search/functions_6.js +++ b/html/search/functions_6.js @@ -1,4 +1,4 @@ var searchData= [ - ['is_5fopen',['is_open',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a56f6adec73b18368887f50d79830c584',1,'boost::asio::mockup_serial_port_service']]] + ['is_5fopen_115',['is_open',['../classboost_1_1asio_1_1mockup__serial__port__service.html#aede4726eb067705e9aa94f1d2b96ecd5',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/functions_7.html b/html/search/functions_7.html index 02631a3..7de3106 100644 --- a/html/search/functions_7.html +++ b/html/search/functions_7.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_7.js b/html/search/functions_7.js index 435df79..14baf89 100644 --- a/html/search/functions_7.js +++ b/html/search/functions_7.js @@ -1,4 +1,4 @@ var searchData= [ - ['load_5fbytearray',['load_bytearray',['../namespacepre_1_1bytes.html#a6320f726bd74b95862d39a8438a28156',1,'pre::bytes']]] + ['load_5fbytearray_116',['load_bytearray',['../namespacepre_1_1bytes.html#a6320f726bd74b95862d39a8438a28156',1,'pre::bytes']]] ]; diff --git a/html/search/functions_8.html b/html/search/functions_8.html index ff37095..7422be2 100644 --- a/html/search/functions_8.html +++ b/html/search/functions_8.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_8.js b/html/search/functions_8.js index 6fc8ccb..bccca18 100644 --- a/html/search/functions_8.js +++ b/html/search/functions_8.js @@ -1,5 +1,5 @@ var searchData= [ - ['mockup_5fserial_5fport_5fservice',['mockup_serial_port_service',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af1890f05dd51b62a53f1a376b33afa68',1,'boost::asio::mockup_serial_port_service']]], - ['move_5fconstruct',['move_construct',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ab4822804b043dada2fec1b83daa35d99',1,'boost::asio::mockup_serial_port_service']]] + ['mockup_5fserial_5fport_5fservice_117',['mockup_serial_port_service',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af1890f05dd51b62a53f1a376b33afa68',1,'boost::asio::mockup_serial_port_service']]], + ['move_5fconstruct_118',['move_construct',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ab4822804b043dada2fec1b83daa35d99',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/functions_9.html b/html/search/functions_9.html index 1d34583..befd4fa 100644 --- a/html/search/functions_9.html +++ b/html/search/functions_9.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_9.js b/html/search/functions_9.js index 8f58727..6cccede 100644 --- a/html/search/functions_9.js +++ b/html/search/functions_9.js @@ -1,5 +1,5 @@ var searchData= [ - ['native',['native',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a28133b563ee41a789e66969129e956d9',1,'boost::asio::mockup_serial_port_service']]], - ['native_5fhandle',['native_handle',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a224db5fbf2fe88706732bebd5ad8d3b1',1,'boost::asio::mockup_serial_port_service']]] + ['native_119',['native',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a28133b563ee41a789e66969129e956d9',1,'boost::asio::mockup_serial_port_service']]], + ['native_5fhandle_120',['native_handle',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a224db5fbf2fe88706732bebd5ad8d3b1',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/functions_a.html b/html/search/functions_a.html index 8eb5e56..a81e963 100644 --- a/html/search/functions_a.html +++ b/html/search/functions_a.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_a.js b/html/search/functions_a.js index 6ea0374..14ada4a 100644 --- a/html/search/functions_a.js +++ b/html/search/functions_a.js @@ -1,4 +1,4 @@ var searchData= [ - ['open',['open',['../classboost_1_1asio_1_1mockup__serial__port__service.html#abf2ffcbc3446e187b686af00c55fac00',1,'boost::asio::mockup_serial_port_service']]] + ['open_121',['open',['../classboost_1_1asio_1_1mockup__serial__port__service.html#abf2ffcbc3446e187b686af00c55fac00',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/functions_b.html b/html/search/functions_b.html index fa9cff5..345265d 100644 --- a/html/search/functions_b.html +++ b/html/search/functions_b.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_b.js b/html/search/functions_b.js index a3db6e1..c50122f 100644 --- a/html/search/functions_b.js +++ b/html/search/functions_b.js @@ -1,4 +1,4 @@ var searchData= [ - ['read_5fsome',['read_some',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af108a60cc69494b46dfe82bf4c3aa88b',1,'boost::asio::mockup_serial_port_service']]] + ['read_5fsome_122',['read_some',['../classboost_1_1asio_1_1mockup__serial__port__service.html#af108a60cc69494b46dfe82bf4c3aa88b',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/functions_c.html b/html/search/functions_c.html index fce7a6b..858bfd6 100644 --- a/html/search/functions_c.html +++ b/html/search/functions_c.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_c.js b/html/search/functions_c.js index fa249b3..f7e04c7 100644 --- a/html/search/functions_c.js +++ b/html/search/functions_c.js @@ -1,6 +1,6 @@ var searchData= [ - ['send_5fbreak',['send_break',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a83ab60370996b812e2d322c942241144',1,'boost::asio::mockup_serial_port_service']]], - ['set_5foption',['set_option',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a04ae7086d61e3931e37334ec4ba66e71',1,'boost::asio::mockup_serial_port_service']]], - ['shift_5fin_5fbitset',['shift_in_bitset',['../namespacepre_1_1bits.html#a75a9200f92b3ce33110fa2b5a4371ebe',1,'pre::bits']]] + ['send_5fbreak_123',['send_break',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a83ab60370996b812e2d322c942241144',1,'boost::asio::mockup_serial_port_service']]], + ['set_5foption_124',['set_option',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a04ae7086d61e3931e37334ec4ba66e71',1,'boost::asio::mockup_serial_port_service']]], + ['shift_5fin_5fbitset_125',['shift_in_bitset',['../namespacepre_1_1bits.html#a75a9200f92b3ce33110fa2b5a4371ebe',1,'pre::bits']]] ]; diff --git a/html/search/functions_d.html b/html/search/functions_d.html index 82b2b0c..2f09f51 100644 --- a/html/search/functions_d.html +++ b/html/search/functions_d.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_d.js b/html/search/functions_d.js index c01cf1a..e4cdaa8 100644 --- a/html/search/functions_d.js +++ b/html/search/functions_d.js @@ -1,10 +1,10 @@ var searchData= [ - ['to_5fbinstring',['to_binstring',['../namespacepre_1_1bytes.html#a768edbcc129b4ae4a054d90314756261',1,'pre::bytes::to_binstring()'],['../namespacepre_1_1bits.html#a5a376445e1ed3128aa2805ee7b7cfb6d',1,'pre::bits::to_binstring()']]], - ['to_5fbitset',['to_bitset',['../namespacepre_1_1bits.html#aeb0029590c7220bd5df43f66f4a5f97c',1,'pre::bits']]], - ['to_5fbytearray',['to_bytearray',['../namespacepre_1_1bits.html#a262bc8dfd3bf22b5e1513a9a6ee28d6b',1,'pre::bits']]], - ['to_5fhexstring',['to_hexstring',['../namespacepre_1_1bytes.html#a431df4ebf59e246ca3557541f3ee4a82',1,'pre::bytes::to_hexstring(const boost::uint8_t *bytes, const size_t length)'],['../namespacepre_1_1bytes.html#a29c41eb22e9254f6387094cbdb4e9691',1,'pre::bytes::to_hexstring(const std::string &bytes)']]], - ['to_5fjson',['to_json',['../namespacepre_1_1json.html#a4325d2cdd64a7e321303fd4428f298b9',1,'pre::json']]], - ['to_5fstring',['to_string',['../namespacepre_1_1bits.html#aecaaad85dab7adcffff170cce17e309c',1,'pre::bits']]], - ['to_5funderlying',['to_underlying',['../namespacepre_1_1enums.html#aa34e3ac31f67f25fa822560729323141',1,'pre::enums']]] + ['to_5fbinstring_126',['to_binstring',['../namespacepre_1_1bytes.html#a768edbcc129b4ae4a054d90314756261',1,'pre::bytes::to_binstring()'],['../namespacepre_1_1bits.html#a5a376445e1ed3128aa2805ee7b7cfb6d',1,'pre::bits::to_binstring()']]], + ['to_5fbitset_127',['to_bitset',['../namespacepre_1_1bits.html#aeb0029590c7220bd5df43f66f4a5f97c',1,'pre::bits']]], + ['to_5fbytearray_128',['to_bytearray',['../namespacepre_1_1bits.html#a262bc8dfd3bf22b5e1513a9a6ee28d6b',1,'pre::bits']]], + ['to_5fhexstring_129',['to_hexstring',['../namespacepre_1_1bytes.html#a431df4ebf59e246ca3557541f3ee4a82',1,'pre::bytes::to_hexstring(const boost::uint8_t *bytes, const size_t length)'],['../namespacepre_1_1bytes.html#a29c41eb22e9254f6387094cbdb4e9691',1,'pre::bytes::to_hexstring(const std::string &bytes)']]], + ['to_5fjson_130',['to_json',['../namespacepre_1_1json.html#a4325d2cdd64a7e321303fd4428f298b9',1,'pre::json']]], + ['to_5fstring_131',['to_string',['../namespacepre_1_1bits.html#aecaaad85dab7adcffff170cce17e309c',1,'pre::bits']]], + ['to_5funderlying_132',['to_underlying',['../namespacepre_1_1enums.html#aa34e3ac31f67f25fa822560729323141',1,'pre::enums']]] ]; diff --git a/html/search/functions_e.html b/html/search/functions_e.html index 557ae9a..ee5afa6 100644 --- a/html/search/functions_e.html +++ b/html/search/functions_e.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/functions_e.js b/html/search/functions_e.js index 37a82d2..a4b0ae0 100644 --- a/html/search/functions_e.js +++ b/html/search/functions_e.js @@ -1,4 +1,4 @@ var searchData= [ - ['write_5fsome',['write_some',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ac6b24b02c6a44700c208d81063e8202e',1,'boost::asio::mockup_serial_port_service']]] + ['write_5fsome_133',['write_some',['../classboost_1_1asio_1_1mockup__serial__port__service.html#ac6b24b02c6a44700c208d81063e8202e',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/mag_sel.png b/html/search/mag_sel.png index 81f6040..39c0ed5 100644 Binary files a/html/search/mag_sel.png and b/html/search/mag_sel.png differ diff --git a/html/search/namespaces_0.html b/html/search/namespaces_0.html index f1b59ec..76996d1 100644 --- a/html/search/namespaces_0.html +++ b/html/search/namespaces_0.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/namespaces_0.js b/html/search/namespaces_0.js index 79ede83..f32be17 100644 --- a/html/search/namespaces_0.js +++ b/html/search/namespaces_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['asio',['asio',['../namespaceboost_1_1asio.html',1,'boost']]] + ['asio_86',['asio',['../namespaceboost_1_1asio.html',1,'boost']]] ]; diff --git a/html/search/namespaces_1.html b/html/search/namespaces_1.html index e180b43..c69e366 100644 --- a/html/search/namespaces_1.html +++ b/html/search/namespaces_1.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/namespaces_1.js b/html/search/namespaces_1.js index e44f56b..434004e 100644 --- a/html/search/namespaces_1.js +++ b/html/search/namespaces_1.js @@ -1,19 +1,19 @@ var searchData= [ - ['bits',['bits',['../namespacepre_1_1bits.html',1,'pre']]], - ['boost',['boost',['../namespacepre_1_1chrono_1_1boost.html',1,'pre::chrono']]], - ['bytes',['bytes',['../namespacepre_1_1bytes.html',1,'pre']]], - ['cv',['CV',['../namespacepre_1_1CV.html',1,'pre']]], - ['enums',['enums',['../namespacepre_1_1enums.html',1,'pre']]], - ['functional',['functional',['../namespacepre_1_1functional.html',1,'pre']]], - ['fusion',['fusion',['../namespacepre_1_1fusion.html',1,'pre']]], - ['iostreams',['iostreams',['../namespacepre_1_1iostreams.html',1,'pre']]], - ['iterators',['iterators',['../namespacepre_1_1iterators.html',1,'pre']]], - ['json',['json',['../namespacepre_1_1json.html',1,'pre']]], - ['karma',['karma',['../namespacepre_1_1spirit_1_1karma.html',1,'pre::spirit']]], - ['pre',['pre',['../namespacepre.html',1,'']]], - ['range',['range',['../namespacepre_1_1range.html',1,'pre']]], - ['std',['std',['../namespacepre_1_1chrono_1_1std.html',1,'pre::chrono']]], - ['type_5ftraits',['type_traits',['../namespacepre_1_1type__traits.html',1,'pre']]], - ['variant',['variant',['../namespacepre_1_1variant.html',1,'pre']]] + ['bits_87',['bits',['../namespacepre_1_1bits.html',1,'pre']]], + ['boost_88',['boost',['../namespacepre_1_1chrono_1_1boost.html',1,'pre::chrono']]], + ['bytes_89',['bytes',['../namespacepre_1_1bytes.html',1,'pre']]], + ['cv_90',['CV',['../namespacepre_1_1CV.html',1,'pre']]], + ['enums_91',['enums',['../namespacepre_1_1enums.html',1,'pre']]], + ['functional_92',['functional',['../namespacepre_1_1functional.html',1,'pre']]], + ['fusion_93',['fusion',['../namespacepre_1_1fusion.html',1,'pre']]], + ['iostreams_94',['iostreams',['../namespacepre_1_1iostreams.html',1,'pre']]], + ['iterators_95',['iterators',['../namespacepre_1_1iterators.html',1,'pre']]], + ['json_96',['json',['../namespacepre_1_1json.html',1,'pre']]], + ['karma_97',['karma',['../namespacepre_1_1spirit_1_1karma.html',1,'pre::spirit']]], + ['pre_98',['pre',['../namespacepre.html',1,'']]], + ['range_99',['range',['../namespacepre_1_1range.html',1,'pre']]], + ['std_100',['std',['../namespacepre_1_1chrono_1_1std.html',1,'pre::chrono']]], + ['type_5ftraits_101',['type_traits',['../namespacepre_1_1type__traits.html',1,'pre']]], + ['variant_102',['variant',['../namespacepre_1_1variant.html',1,'pre']]] ]; diff --git a/html/search/nomatches.html b/html/search/nomatches.html index b1ded27..4377320 100644 --- a/html/search/nomatches.html +++ b/html/search/nomatches.html @@ -1,4 +1,4 @@ - + diff --git a/html/search/pages_0.html b/html/search/pages_0.html index 0db7267..9a6a29a 100644 --- a/html/search/pages_0.html +++ b/html/search/pages_0.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/pages_0.js b/html/search/pages_0.js index 5cc40a6..8463fb1 100644 --- a/html/search/pages_0.js +++ b/html/search/pages_0.js @@ -1,4 +1,5 @@ var searchData= [ - ['lib_2dcpp_2dpre',['lib-cpp-pre',['../index.html',1,'']]] + ['tutorial_20to_20or_20from_20json_139',['Tutorial to or from json',['../md_doc_tutorial_to_and_from_json.html',1,'']]], + ['this_20repository_20has_20moved_20to_20it_27s_20own_20organization_20https_3a_2f_2fgithub_2ecom_2fcpp_2dpre_140',['This repository has moved to it's own organization https://github.com/cpp-pre',['../md_README.html',1,'']]] ]; diff --git a/html/search/search.css b/html/search/search.css index 4d7612f..3cf9df9 100644 --- a/html/search/search.css +++ b/html/search/search.css @@ -6,14 +6,12 @@ #MSearchBox { white-space : nowrap; - position: absolute; float: none; - display: inline; margin-top: 8px; right: 0px; width: 170px; + height: 24px; z-index: 102; - background-color: white; } #MSearchBox .left @@ -48,12 +46,13 @@ height:19px; background:url('search_m.png') repeat-x; border:none; - width:111px; + width:115px; margin-left:20px; padding-left:4px; color: #909090; outline: none; font: 9pt Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; } #FSearchBox #MSearchField { @@ -64,7 +63,7 @@ display:block; position:absolute; right:10px; - top:0px; + top:8px; width:20px; height:19px; background:url('search_r.png') no-repeat; @@ -102,7 +101,7 @@ left: 0; top: 0; border: 1px solid #90A5CE; background-color: #F9FAFC; - z-index: 1; + z-index: 10001; padding-top: 4px; padding-bottom: 4px; -moz-border-radius: 4px; @@ -165,6 +164,7 @@ iframe#MSearchResults { left: 0; top: 0; border: 1px solid #000; background-color: #EEF1F7; + z-index:10000; } /* ----------------------------------- */ diff --git a/html/search/search.js b/html/search/search.js index dedce3b..a554ab9 100644 --- a/html/search/search.js +++ b/html/search/search.js @@ -1,3 +1,26 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ function convertToId(search) { var result = ''; @@ -788,4 +811,4 @@ function init_search() } searchBox.OnSelectItem(0); } - +/* @license-end */ diff --git a/html/search/search_l.png b/html/search/search_l.png index c872f4d..fd5f7da 100644 Binary files a/html/search/search_l.png and b/html/search/search_l.png differ diff --git a/html/search/search_r.png b/html/search/search_r.png index 97ee8b4..1af5d21 100644 Binary files a/html/search/search_r.png and b/html/search/search_r.png differ diff --git a/html/search/searchdata.js b/html/search/searchdata.js index fa81cad..6c58180 100644 --- a/html/search/searchdata.js +++ b/html/search/searchdata.js @@ -6,7 +6,7 @@ var indexSectionsWithContent = 3: "abcdfgilmnorstw", 4: "bn", 5: "in", - 6: "lt" + 6: "t" }; var indexSectionNames = diff --git a/html/search/typedefs_0.html b/html/search/typedefs_0.html index fb07195..376db47 100644 --- a/html/search/typedefs_0.html +++ b/html/search/typedefs_0.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/typedefs_0.js b/html/search/typedefs_0.js index a09fe6d..f4b85e5 100644 --- a/html/search/typedefs_0.js +++ b/html/search/typedefs_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['implementation_5ftype',['implementation_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a2f335a245e36f9a13094d700537e9ae8',1,'boost::asio::mockup_serial_port_service']]] + ['implementation_5ftype_136',['implementation_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a2f335a245e36f9a13094d700537e9ae8',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/typedefs_1.html b/html/search/typedefs_1.html index 6edac96..9b8bf72 100644 --- a/html/search/typedefs_1.html +++ b/html/search/typedefs_1.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/typedefs_1.js b/html/search/typedefs_1.js index 726301d..9a1309b 100644 --- a/html/search/typedefs_1.js +++ b/html/search/typedefs_1.js @@ -1,5 +1,5 @@ var searchData= [ - ['native_5fhandle_5ftype',['native_handle_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a9244f03da1f2d4bc212a9ece2078dad9',1,'boost::asio::mockup_serial_port_service']]], - ['native_5ftype',['native_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a58270a0f7d8038aaa0116f2a3250183b',1,'boost::asio::mockup_serial_port_service']]] + ['native_5fhandle_5ftype_137',['native_handle_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a9244f03da1f2d4bc212a9ece2078dad9',1,'boost::asio::mockup_serial_port_service']]], + ['native_5ftype_138',['native_type',['../classboost_1_1asio_1_1mockup__serial__port__service.html#a58270a0f7d8038aaa0116f2a3250183b',1,'boost::asio::mockup_serial_port_service']]] ]; diff --git a/html/search/variables_0.html b/html/search/variables_0.html index 3835278..bf3eba5 100644 --- a/html/search/variables_0.html +++ b/html/search/variables_0.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/variables_0.js b/html/search/variables_0.js index 6dc72fb..cf171c9 100644 --- a/html/search/variables_0.js +++ b/html/search/variables_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['byte_5fnibbles',['BYTE_NIBBLES',['../namespacepre_1_1bytes.html#ac518edb25d48b9c5abfd051e800e7212',1,'pre::bytes']]] + ['byte_5fnibbles_134',['BYTE_NIBBLES',['../namespacepre_1_1bytes.html#ac518edb25d48b9c5abfd051e800e7212',1,'pre::bytes']]] ]; diff --git a/html/search/variables_1.html b/html/search/variables_1.html index 3c65cf2..49fe59a 100644 --- a/html/search/variables_1.html +++ b/html/search/variables_1.html @@ -1,7 +1,7 @@ - + - + @@ -11,15 +11,19 @@
    Loading...
    Searching...
    No Matches
    diff --git a/html/search/variables_1.js b/html/search/variables_1.js index ffb9d60..f4d1874 100644 --- a/html/search/variables_1.js +++ b/html/search/variables_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['nibble_5fbits',['NIBBLE_BITS',['../namespacepre_1_1bytes.html#a2c425b8992dcd3d9f5110a1fa03efab2',1,'pre::bytes']]] + ['nibble_5fbits_135',['NIBBLE_BITS',['../namespacepre_1_1bytes.html#a2c425b8992dcd3d9f5110a1fa03efab2',1,'pre::bytes']]] ]; diff --git a/html/size__of_8hpp_source.html b/html/size__of_8hpp_source.html index c21fc55..63cb47f 100644 --- a/html/size__of_8hpp_source.html +++ b/html/size__of_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/spirit/karma/size_of.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
    - + - - + + + +
    size_of.hpp
    -
    1 // Copyright (c) 2015 Damien Buhl (alias daminetreg)
    2 //
    3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
    4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
    5 
    6 #ifndef PRE_SPIRIT_KARMA_SIZE_OF_HPP
    7 #define PRE_SPIRIT_KARMA_SIZE_OF_HPP
    8 
    9 #if defined(_MSC_VER)
    10 #pragma once
    11 #endif
    12 
    13 #include <boost/spirit/home/karma/meta_compiler.hpp>
    14 #include <boost/spirit/home/karma/generator.hpp>
    15 #include <boost/spirit/home/karma/domain.hpp>
    16 #include <boost/spirit/home/karma/detail/output_iterator.hpp>
    17 #include <boost/spirit/home/support/unused.hpp>
    18 #include <boost/spirit/home/support/info.hpp>
    19 #include <boost/spirit/home/support/common_terminals.hpp>
    20 #include <boost/spirit/home/support/has_semantic_action.hpp>
    21 #include <boost/spirit/home/support/handles_container.hpp>
    22 #include <boost/spirit/home/karma/detail/attributes.hpp>
    23 
    24 #include <boost/fusion/include/vector.hpp>
    25 
    26 #include <string>
    27 
    29 // definition the place holder
    30 namespace pre { namespace spirit { namespace karma {
    31  namespace mpl = boost::mpl;
    32  namespace fusion = boost::fusion;
    33 
    34  BOOST_SPIRIT_TERMINAL_EX(size_of);
    35 
    36 }}}
    37 
    38 namespace boost { namespace spirit {
    40  // Enablers
    42 
    43  template <typename T>
    44  struct use_directive<karma::domain
    45  , terminal_ex<pre::spirit::karma::tag::size_of // enables size_of(boost::ref(size))[p]
    46  , fusion::vector1<T> >
    47  > : mpl::true_ {};
    48 
    49 }}
    50 
    51 namespace pre { namespace spirit { namespace karma {
    52 
    53  namespace mpl = boost::mpl;
    54 
    55  using boost::spirit::buffer_type;
    56 
    58  // sizeof_directive discards all generated output of the embedded generator
    59  // and only give out the size that would have been generated.
    61  template <typename Subject>
    62  struct sizeof_directive : boost::spirit::karma::unary_generator<sizeof_directive<Subject> >
    63  {
    64  typedef Subject subject_type;
    65  typedef mpl::int_<
    66  subject_type::properties::value |
    67  boost::spirit::karma::generator_properties::countingbuffer
    68  > properties;
    69 
    70  sizeof_directive(Subject const& subject, std::size_t& size)
    71  : subject(subject), size(size) {}
    72 
    73  template <typename Context, typename Iterator>
    74  struct attribute
    75  : boost::spirit::traits::attribute_of<subject_type, Context, Iterator>
    76  {};
    77 
    78  template <typename OutputIterator, typename Context, typename Delimiter
    79  , typename Attribute>
    80  bool generate(OutputIterator& sink, Context& ctx, Delimiter const& d
    81  , Attribute const& attr_param) const
    82  {
    83  // wrap the given output iterator to compute size of output
    84  boost::spirit::karma::detail::enable_buffering<OutputIterator> buffering(sink);
    85  boost::spirit::karma::detail::enable_counting<OutputIterator> counting(sink);
    86 
    87  bool r = subject.generate(sink, ctx, d, attr_param);
    88  size = buffering.buffer_size();
    89  return r;
    90  }
    91 
    92  template <typename Context>
    93  boost::spirit::info what(Context& context) const
    94  {
    95  return info("size_of", subject.what(context));
    96  }
    97 
    98  Subject subject;
    99  std::size_t& size;
    100  };
    101 }}}
    102 
    103 
    104 namespace boost { namespace spirit { namespace karma {
    105 
    107  // Generator generators: make_xxx function (objects)
    109  template <typename T, typename Subject, typename Modifiers>
    110  struct make_directive<
    111  terminal_ex<pre::spirit::karma::tag::size_of, fusion::vector1<T> >,
    112  Subject, Modifiers>
    113  {
    115 
    116  template <typename Terminal>
    117  result_type operator()(Terminal & term, Subject const& subject
    118  , unused_type) const
    119  {
    120  return result_type(subject, fusion::at_c<0>(term.args));
    121  }
    122  };
    123 
    124 }}}
    125 
    126 namespace boost { namespace spirit { namespace traits
    127 {
    129  template <typename Subject>
    130  struct has_semantic_action<pre::spirit::karma::sizeof_directive<Subject> >
    131  : unary_has_semantic_action<Subject> {};
    132 
    134  template <typename Subject, typename Attribute, typename Context
    135  , typename Iterator>
    136  struct handles_container<pre::spirit::karma::sizeof_directive<Subject>, Attribute
    137  , Context, Iterator>
    138  : unary_handles_container<Subject, Attribute, Context, Iterator> {};
    139 }}}
    140 
    141 #endif
    -
    Definition: size_of.hpp:62
    - - +
    1 // Copyright (c) 2015 Damien Buhl (alias daminetreg)
    +
    2 //
    +
    3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
    +
    4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
    +
    5 
    +
    6 #ifndef PRE_SPIRIT_KARMA_SIZE_OF_HPP
    +
    7 #define PRE_SPIRIT_KARMA_SIZE_OF_HPP
    +
    8 
    +
    9 #if defined(_MSC_VER)
    +
    10 #pragma once
    +
    11 #endif
    +
    12 
    +
    13 #include <boost/spirit/home/karma/meta_compiler.hpp>
    +
    14 #include <boost/spirit/home/karma/generator.hpp>
    +
    15 #include <boost/spirit/home/karma/domain.hpp>
    +
    16 #include <boost/spirit/home/karma/detail/output_iterator.hpp>
    +
    17 #include <boost/spirit/home/support/unused.hpp>
    +
    18 #include <boost/spirit/home/support/info.hpp>
    +
    19 #include <boost/spirit/home/support/common_terminals.hpp>
    +
    20 #include <boost/spirit/home/support/has_semantic_action.hpp>
    +
    21 #include <boost/spirit/home/support/handles_container.hpp>
    +
    22 #include <boost/spirit/home/karma/detail/attributes.hpp>
    +
    23 
    +
    24 #include <boost/fusion/include/vector.hpp>
    +
    25 
    +
    26 #include <string>
    +
    27 
    +
    29 // definition the place holder
    +
    30 namespace pre { namespace spirit { namespace karma {
    +
    31  namespace mpl = boost::mpl;
    +
    32  namespace fusion = boost::fusion;
    +
    33 
    +
    34  BOOST_SPIRIT_TERMINAL_EX(size_of);
    +
    35 
    +
    36 }}}
    +
    37 
    +
    38 namespace boost { namespace spirit {
    +
    40  // Enablers
    +
    42 
    +
    43  template <typename T>
    +
    44  struct use_directive<karma::domain
    +
    45  , terminal_ex<pre::spirit::karma::tag::size_of // enables size_of(boost::ref(size))[p]
    +
    46  , fusion::vector1<T> >
    +
    47  > : mpl::true_ {};
    +
    48 
    +
    49 }}
    +
    50 
    +
    51 namespace pre { namespace spirit { namespace karma {
    +
    52 
    +
    53  namespace mpl = boost::mpl;
    +
    54 
    +
    55  using boost::spirit::buffer_type;
    +
    56 
    +
    58  // sizeof_directive discards all generated output of the embedded generator
    +
    59  // and only give out the size that would have been generated.
    +
    61  template <typename Subject>
    +
    62  struct sizeof_directive : boost::spirit::karma::unary_generator<sizeof_directive<Subject> >
    +
    63  {
    +
    64  typedef Subject subject_type;
    +
    65  typedef mpl::int_<
    +
    66  subject_type::properties::value |
    +
    67  boost::spirit::karma::generator_properties::countingbuffer
    +
    68  > properties;
    +
    69 
    +
    70  sizeof_directive(Subject const& subject, std::size_t& size)
    +
    71  : subject(subject), size(size) {}
    +
    72 
    +
    73  template <typename Context, typename Iterator>
    +
    74  struct attribute
    +
    75  : boost::spirit::traits::attribute_of<subject_type, Context, Iterator>
    +
    76  {};
    +
    77 
    +
    78  template <typename OutputIterator, typename Context, typename Delimiter
    +
    79  , typename Attribute>
    +
    80  bool generate(OutputIterator& sink, Context& ctx, Delimiter const& d
    +
    81  , Attribute const& attr_param) const
    +
    82  {
    +
    83  // wrap the given output iterator to compute size of output
    +
    84  boost::spirit::karma::detail::enable_buffering<OutputIterator> buffering(sink);
    +
    85  boost::spirit::karma::detail::enable_counting<OutputIterator> counting(sink);
    +
    86 
    +
    87  bool r = subject.generate(sink, ctx, d, attr_param);
    +
    88  size = buffering.buffer_size();
    +
    89  return r;
    +
    90  }
    +
    91 
    +
    92  template <typename Context>
    +
    93  boost::spirit::info what(Context& context) const
    +
    94  {
    +
    95  return info("size_of", subject.what(context));
    +
    96  }
    +
    97 
    +
    98  Subject subject;
    +
    99  std::size_t& size;
    +
    100  };
    +
    101 }}}
    +
    102 
    +
    103 
    +
    104 namespace boost { namespace spirit { namespace karma {
    +
    105 
    +
    107  // Generator generators: make_xxx function (objects)
    +
    109  template <typename T, typename Subject, typename Modifiers>
    +
    110  struct make_directive<
    +
    111  terminal_ex<pre::spirit::karma::tag::size_of, fusion::vector1<T> >,
    +
    112  Subject, Modifiers>
    +
    113  {
    + +
    115 
    +
    116  template <typename Terminal>
    +
    117  result_type operator()(Terminal & term, Subject const& subject
    +
    118  , unused_type) const
    +
    119  {
    +
    120  return result_type(subject, fusion::at_c<0>(term.args));
    +
    121  }
    +
    122  };
    +
    123 
    +
    124 }}}
    +
    125 
    +
    126 namespace boost { namespace spirit { namespace traits
    +
    127 {
    +
    129  template <typename Subject>
    +
    130  struct has_semantic_action<pre::spirit::karma::sizeof_directive<Subject> >
    +
    131  : unary_has_semantic_action<Subject> {};
    +
    132 
    +
    134  template <typename Subject, typename Attribute, typename Context
    +
    135  , typename Iterator>
    +
    136  struct handles_container<pre::spirit::karma::sizeof_directive<Subject>, Attribute
    +
    137  , Context, Iterator>
    +
    138  : unary_handles_container<Subject, Attribute, Context, Iterator> {};
    +
    139 }}}
    +
    140 
    +
    141 #endif
    +
    Definition: size_of.hpp:62
    + +
    @@ -109,9 +219,9 @@ diff --git a/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_34b5d88cc5bd64521f46f30f49dbe425.html b/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_34b5d88cc5bd64521f46f30f49dbe425.html index 16afc90..b942239 100644 --- a/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_34b5d88cc5bd64521f46f30f49dbe425.html +++ b/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_34b5d88cc5bd64521f46f30f49dbe425.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: boost::spirit::karma::make_directive< terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > >, Subject, Modifiers > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +

    Public Types

    - + typedef pre::spirit::karma::sizeof_directive< Subject > result_type   - - - + +

    Public Member Functions

    +
    template<typename Terminal >
    result_type operator() (Terminal &term, Subject const &subject, unused_type) const
     
    result_type operator() (Terminal &term, Subject const &subject, unused_type) const
     

    The documentation for this struct was generated from the following file:
    diff --git a/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_5ff51dacc8f29010bebeee6a7eeb70be.html b/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_5ff51dacc8f29010bebeee6a7eeb70be.html index 4dddb06..3241114 100644 --- a/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_5ff51dacc8f29010bebeee6a7eeb70be.html +++ b/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_5ff51dacc8f29010bebeee6a7eeb70be.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: boost::spirit::karma::make_directive< terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > >, Subject, Modifiers > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +

    Public Types

    - + typedef pre::spirit::karma::crc_of_directive< Subject > result_type   - - - + +

    Public Member Functions

    +
    template<typename Terminal >
    result_type operator() (Terminal &term, Subject const &subject, unused_type) const
     
    result_type operator() (Terminal &term, Subject const &subject, unused_type) const
     

    The documentation for this struct was generated from the following file:
    diff --git a/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_dedccf3f25004fc83bedd9542b225825.html b/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_dedccf3f25004fc83bedd9542b225825.html index d6fb193..b83de23 100644 --- a/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_dedccf3f25004fc83bedd9542b225825.html +++ b/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_dedccf3f25004fc83bedd9542b225825.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Member List @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + + @@ -113,9 +89,9 @@
    diff --git a/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_e40faa5203d2bfd02ffb0750e937ab75.html b/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_e40faa5203d2bfd02ffb0750e937ab75.html index f87e3a0..8fcb4e7 100644 --- a/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_e40faa5203d2bfd02ffb0750e937ab75.html +++ b/html/structboost_1_1spirit_1_1karma_1_1make__directive_3_01terminal__ex_3_01pre_1_1spirit_1_1karma_1_e40faa5203d2bfd02ffb0750e937ab75.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Member List @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + + @@ -113,9 +89,9 @@
    diff --git a/html/structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1crc__of__dir399a186e2d639ee2af7d7f049233656b.html b/html/structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1crc__of__dir399a186e2d639ee2af7d7f049233656b.html index 030fb1f..eeaf002 100644 --- a/html/structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1crc__of__dir399a186e2d639ee2af7d7f049233656b.html +++ b/html/structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1crc__of__dir399a186e2d639ee2af7d7f049233656b.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: boost::spirit::traits::handles_container< pre::spirit::karma::crc_of_directive< Subject >, Attribute, Context, Iterator > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1sizeof__dire7f631c3c70d51d01d23427f63dab3fd1.html b/html/structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1sizeof__dire7f631c3c70d51d01d23427f63dab3fd1.html index b228377..77cfd4f 100644 --- a/html/structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1sizeof__dire7f631c3c70d51d01d23427f63dab3fd1.html +++ b/html/structboost_1_1spirit_1_1traits_1_1handles__container_3_01pre_1_1spirit_1_1karma_1_1sizeof__dire7f631c3c70d51d01d23427f63dab3fd1.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: boost::spirit::traits::handles_container< pre::spirit::karma::sizeof_directive< Subject >, Attribute, Context, Iterator > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1crc__of__directive_3_01Subject_01_4_01_4.html b/html/structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1crc__of__directive_3_01Subject_01_4_01_4.html index 2cb5567..925dec9 100644 --- a/html/structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1crc__of__directive_3_01Subject_01_4_01_4.html +++ b/html/structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1crc__of__directive_3_01Subject_01_4_01_4.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: boost::spirit::traits::has_semantic_action< pre::spirit::karma::crc_of_directive< Subject > > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1sizeof__directive_3_01Subject_01_4_01_4.html b/html/structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1sizeof__directive_3_01Subject_01_4_01_4.html index c03ea0d..29afc35 100644 --- a/html/structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1sizeof__directive_3_01Subject_01_4_01_4.html +++ b/html/structboost_1_1spirit_1_1traits_1_1has__semantic__action_3_01pre_1_1spirit_1_1karma_1_1sizeof__directive_3_01Subject_01_4_01_4.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: boost::spirit::traits::has_semantic_action< pre::spirit::karma::sizeof_directive< Subject > > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_632d70f780c9bbd12f86656bf2a5f3ce.html b/html/structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_632d70f780c9bbd12f86656bf2a5f3ce.html index 5ca93c5..52eeb0f 100644 --- a/html/structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_632d70f780c9bbd12f86656bf2a5f3ce.html +++ b/html/structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_632d70f780c9bbd12f86656bf2a5f3ce.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: boost::spirit::use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::crc_of, fusion::vector1< T > > > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_9a24535ec3fb070215516644145fa642.html b/html/structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_9a24535ec3fb070215516644145fa642.html index a69b03e..21faf49 100644 --- a/html/structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_9a24535ec3fb070215516644145fa642.html +++ b/html/structboost_1_1spirit_1_1use__directive_3_01karma_1_1domain_00_01terminal__ex_3_01pre_1_1spirit_9a24535ec3fb070215516644145fa642.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: boost::spirit::use_directive< karma::domain, terminal_ex< pre::spirit::karma::tag::size_of, fusion::vector1< T > > > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive-members.html b/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive-members.html index de56f69..039a0d4 100644 --- a/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive-members.html +++ b/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive-members.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Member List @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + + @@ -118,9 +94,9 @@
    diff --git a/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive.html b/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive.html index cae2a41..2b1821b 100644 --- a/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive.html +++ b/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::spirit::karma::crc_of_directive< Subject > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    @@ -121,33 +95,33 @@

    - -

    Public Types

    +
    typedef Subject subject_type
     
    +
    typedef mpl::int_< subject_type::properties::value|boost::spirit::karma::generator_properties::countingbuffer > properties
     
    - - - - - + + - - + +

    Public Member Functions

    +
     crc_of_directive (Subject const &subject, uint16_t &crc)
     
    +
    template<typename OutputIterator , typename Context , typename Delimiter , typename Attribute >
    bool generate (OutputIterator &sink, Context &ctx, Delimiter const &d, Attribute const &attr) const
     
    +
    bool generate (OutputIterator &sink, Context &ctx, Delimiter const &d, Attribute const &attr) const
     
    template<typename Context >
    boost::spirit::info what (Context &context) const
     
    boost::spirit::info what (Context &context) const
     
    - -

    Public Attributes

    +
    Subject subject
     
    +
    uint16_t & crc
     
    @@ -163,9 +137,9 @@
    diff --git a/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive_1_1attribute.html b/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive_1_1attribute.html index da60b1d..3c0fb88 100644 --- a/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive_1_1attribute.html +++ b/html/structpre_1_1spirit_1_1karma_1_1crc__of__directive_1_1attribute.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::spirit::karma::crc_of_directive< Subject >::attribute< Context, Iterator > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive-members.html b/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive-members.html index 956da60..ad609c1 100644 --- a/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive-members.html +++ b/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive-members.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: Member List @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    This is the complete list of members for pre::spirit::karma::sizeof_directive< Subject >, including all inherited members.

    - + - +
    generate(OutputIterator &sink, Context &ctx, Delimiter const &d, Attribute const &attr_param) const (defined in pre::spirit::karma::sizeof_directive< Subject >)pre::spirit::karma::sizeof_directive< Subject >inline
    generate(OutputIterator &sink, Context &ctx, Delimiter const &d, Attribute const &attr_param) const (defined in pre::spirit::karma::sizeof_directive< Subject >)pre::spirit::karma::sizeof_directive< Subject >inline
    properties typedef (defined in pre::spirit::karma::sizeof_directive< Subject >)pre::spirit::karma::sizeof_directive< Subject >
    size (defined in pre::spirit::karma::sizeof_directive< Subject >)pre::spirit::karma::sizeof_directive< Subject >
    sizeof_directive(Subject const &subject, std::size_t &size) (defined in pre::spirit::karma::sizeof_directive< Subject >)pre::spirit::karma::sizeof_directive< Subject >inline
    subject (defined in pre::spirit::karma::sizeof_directive< Subject >)pre::spirit::karma::sizeof_directive< Subject >
    subject_type typedef (defined in pre::spirit::karma::sizeof_directive< Subject >)pre::spirit::karma::sizeof_directive< Subject >
    what(Context &context) const (defined in pre::spirit::karma::sizeof_directive< Subject >)pre::spirit::karma::sizeof_directive< Subject >inline
    what(Context &context) const (defined in pre::spirit::karma::sizeof_directive< Subject >)pre::spirit::karma::sizeof_directive< Subject >inline
    @@ -118,9 +94,9 @@
    diff --git a/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive.html b/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive.html index cf8f7d4..d222a37 100644 --- a/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive.html +++ b/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::spirit::karma::sizeof_directive< Subject > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    @@ -121,33 +95,33 @@

    - -

    Public Types

    +
    typedef Subject subject_type
     
    +
    typedef mpl::int_< subject_type::properties::value|boost::spirit::karma::generator_properties::countingbuffer > properties
     
    - - - - - + + - - + +

    Public Member Functions

    +
     sizeof_directive (Subject const &subject, std::size_t &size)
     
    +
    template<typename OutputIterator , typename Context , typename Delimiter , typename Attribute >
    bool generate (OutputIterator &sink, Context &ctx, Delimiter const &d, Attribute const &attr_param) const
     
    +
    bool generate (OutputIterator &sink, Context &ctx, Delimiter const &d, Attribute const &attr_param) const
     
    template<typename Context >
    boost::spirit::info what (Context &context) const
     
    boost::spirit::info what (Context &context) const
     
    - -

    Public Attributes

    +
    Subject subject
     
    +
    std::size_t & size
     
    @@ -163,9 +137,9 @@
    diff --git a/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive_1_1attribute.html b/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive_1_1attribute.html index b76d0a5..7e6832d 100644 --- a/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive_1_1attribute.html +++ b/html/structpre_1_1spirit_1_1karma_1_1sizeof__directive_1_1attribute.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::spirit::karma::sizeof_directive< Subject >::attribute< Context, Iterator > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/structpre_1_1type__traits_1_1function__traits.html b/html/structpre_1_1type__traits_1_1function__traits.html index d644226..b51ae07 100644 --- a/html/structpre_1_1type__traits_1_1function__traits.html +++ b/html/structpre_1_1type__traits_1_1function__traits.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::type_traits::function_traits< F, typename > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    -
    #include <iostream>
    #include <typeinfo>
    #include <pre/traits/function_traits.hpp>
    #include <pre/functional/to_std_function.hpp>
    int main() {
    auto my_lambda = [](bool arg_0, int arg_1, double arg_2, std::string arg_3) {
    return int{0} ;
    };
    std::cout << "my_lambda number of arguments " << my_lambda_types::arity << std::endl;
    std::cout << "my_lambda return type is " << typeid(my_lambda_types::result_type).name() << std::endl;
    std::cout << "my_lambda argument 0 type is " << typeid(my_lambda_types::arg<0>).name() << std::endl;
    std::cout << "my_lambda argument 1 type is " << typeid(my_lambda_types::arg<1>).name() << std::endl;
    std::cout << "my_lambda argument 2 type is " << typeid(my_lambda_types::arg<2>).name() << std::endl;
    std::cout << "my_lambda argument 3 type is " << typeid(my_lambda_types::arg<3>).name() << std::endl;
    std::cout << "my_lambda function type is " << typeid(my_lambda_types::function_type).name() << std::endl;
    auto std_function = pre::functional::to_std_function(my_lambda);
    std::cout << "my_lambda called as std::function " << std_function(true, int{42}, double{3.14}, std::string{"Hello World"}) << std::endl;
    return 0;
    }

    The documentation for this struct was generated from the following file:
      +
      #include <iostream>
      +
      #include <typeinfo>
      +
      #include <pre/traits/function_traits.hpp>
      +
      #include <pre/functional/to_std_function.hpp>
      +
      +
      int main() {
      +
      +
      auto my_lambda = [](bool arg_0, int arg_1, double arg_2, std::string arg_3) {
      +
      return int{0} ;
      +
      };
      +
      +
      typedef pre::type_traits::function_traits<decltype(my_lambda)> my_lambda_types;
      +
      +
      std::cout << "my_lambda number of arguments " << my_lambda_types::arity << std::endl;
      +
      std::cout << "my_lambda return type is " << typeid(my_lambda_types::result_type).name() << std::endl;
      +
      std::cout << "my_lambda argument 0 type is " << typeid(my_lambda_types::arg<0>).name() << std::endl;
      +
      std::cout << "my_lambda argument 1 type is " << typeid(my_lambda_types::arg<1>).name() << std::endl;
      +
      std::cout << "my_lambda argument 2 type is " << typeid(my_lambda_types::arg<2>).name() << std::endl;
      +
      std::cout << "my_lambda argument 3 type is " << typeid(my_lambda_types::arg<3>).name() << std::endl;
      +
      std::cout << "my_lambda function type is " << typeid(my_lambda_types::function_type).name() << std::endl;
      +
      +
      auto std_function = pre::functional::to_std_function(my_lambda);
      +
      +
      std::cout << "my_lambda called as std::function " << std_function(true, int{42}, double{3.14}, std::string{"Hello World"}) << std::endl;
      +
      +
      return 0;
      +
      }
      +

    The documentation for this struct was generated from the following file:
    +
    Provides access to lambda and functions arity, return type, arguments type and access as std::functio...
    Definition: function_traits.hpp:50
    @@ -125,9 +129,9 @@
    diff --git a/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__member__pointer__t_3_01F_01_4_01_4.html b/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__member__pointer__t_3_01F_01_4_01_4.html index 711b12b..e561c29 100644 --- a/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__member__pointer__t_3_01F_01_4_01_4.html +++ b/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__member__pointer__t_3_01F_01_4_01_4.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::type_traits::function_traits< F, detail::enable_if_is_function_member_pointer_t< F > > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__t_3_01F_01_4_01_4.html b/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__t_3_01F_01_4_01_4.html index 6c282bc..fbc4288 100644 --- a/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__t_3_01F_01_4_01_4.html +++ b/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__function__t_3_01F_01_4_01_4.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::type_traits::function_traits< F, detail::enable_if_is_function_t< F > > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__lambda__t_3_01F_01_4_01_4.html b/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__lambda__t_3_01F_01_4_01_4.html index 0499c76..9185576 100644 --- a/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__lambda__t_3_01F_01_4_01_4.html +++ b/html/structpre_1_1type__traits_1_1function__traits_3_01F_00_01detail_1_1enable__if__is__lambda__t_3_01F_01_4_01_4.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre::type_traits::function_traits< F, detail::enable_if_is_lambda_t< F > > Struct Template Reference @@ -14,9 +14,6 @@ - @@ -38,43 +35,22 @@
    - + - - + + + +
    - - - +

    The documentation for this struct was generated from the following file:
    diff --git a/html/tabs.css b/html/tabs.css index 9cf578f..85a0cd5 100644 --- a/html/tabs.css +++ b/html/tabs.css @@ -1,60 +1 @@ -.tabs, .tabs2, .tabs3 { - background-image: url('tab_b.png'); - width: 100%; - z-index: 101; - font-size: 13px; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; -} - -.tabs2 { - font-size: 10px; -} -.tabs3 { - font-size: 9px; -} - -.tablist { - margin: 0; - padding: 0; - display: table; -} - -.tablist li { - float: left; - display: table-cell; - background-image: url('tab_b.png'); - line-height: 36px; - list-style: none; -} - -.tablist a { - display: block; - padding: 0 20px; - font-weight: bold; - background-image:url('tab_s.png'); - background-repeat:no-repeat; - background-position:right; - color: #283A5D; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; - outline: none; -} - -.tabs3 .tablist a { - padding: 0 10px; -} - -.tablist a:hover { - background-image: url('tab_h.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - text-decoration: none; -} - -.tablist li.current a { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/html/to__json_8hpp_source.html b/html/to__json_8hpp_source.html index 8c6d176..1813669 100644 --- a/html/to__json_8hpp_source.html +++ b/html/to__json_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/json/to_json.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
    - + - - + + + +
    to_json.hpp
    -
    1 #ifndef PRE_JSON_TO_JSON_HPP
    2 #define PRE_JSON_TO_JSON_HPP
    3 
    4 #include <pre/json/detail/jsonizer.hpp>
    5 
    6 namespace pre { namespace json {
    7 
    64  template<class T>
    65  nlohmann::json to_json(const T& value) {
    66  nlohmann::json json_object;
    67  detail::jsonizer jsonizer(json_object);
    68  jsonizer(value);
    69  return json_object;
    70  }
    71 
    72 }}
    73 
    74 #endif
    nlohmann::json to_json(const T &value)
    Serialize to a JSON object any C++ object of any type, even your own types.
    Definition: to_json.hpp:65
    - +
    1 #ifndef PRE_JSON_TO_JSON_HPP
    +
    2 #define PRE_JSON_TO_JSON_HPP
    +
    3 
    +
    4 #include <pre/json/detail/jsonizer.hpp>
    +
    5 
    +
    6 namespace pre { namespace json {
    +
    7 
    +
    64  template<class T>
    +
    65  nlohmann::json to_json(const T& value) {
    +
    66  nlohmann::json json_object;
    +
    67  detail::jsonizer jsonizer(json_object);
    +
    68  jsonizer(value);
    +
    69  return json_object;
    +
    70  }
    +
    71 
    +
    72 }}
    +
    73 
    +
    74 #endif
    + +
    nlohmann::json to_json(const T &value)
    Serialize to a JSON object any C++ object of any type, even your own types.
    Definition: to_json.hpp:65
    @@ -107,9 +104,9 @@
    diff --git a/html/to__std__function_8hpp_source.html b/html/to__std__function_8hpp_source.html index f7cc902..ef60b8b 100644 --- a/html/to__std__function_8hpp_source.html +++ b/html/to__std__function_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/functional/to_std_function.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
    - + - - + + + +
    to_std_function.hpp
    -
    1 #ifndef PRE_FUNCTIONAL_TO_STD_FUNCTION_HPP
    2 #define PRE_FUNCTIONAL_TO_STD_FUNCTION_HPP
    3 
    4 #include <functional>
    5 #include <pre/type_traits/function_traits.hpp>
    6 
    7 namespace pre { namespace functional {
    8 
    9 
    10  /* Creates an std::function object from the given lambda, member function, free standing function
    11  * @t the lambda/[member]function to transform into std::function.
    12  * @return An [std::function](http://en.cppreference.com/w/cpp/utility/functional/function) of the given functor/function.
    13  */
    14  template <class T>
    15  auto to_std_function (T t) -> typename type_traits::function_traits<T>::function_type {
    16  return typename type_traits::function_traits<T>::function_type(t);
    17  }
    18 
    19 }}
    20 
    21 #endif /*PRE_FUNCTIONAL_TO_STD_FUNCTION_HPP*/
    +
    1 #ifndef PRE_FUNCTIONAL_TO_STD_FUNCTION_HPP
    +
    2 #define PRE_FUNCTIONAL_TO_STD_FUNCTION_HPP
    +
    3 
    +
    4 #include <functional>
    +
    5 #include <pre/type_traits/function_traits.hpp>
    +
    6 
    +
    7 namespace pre { namespace functional {
    +
    8 
    +
    9 
    +
    10  /* Creates an std::function object from the given lambda, member function, free standing function
    +
    11  * @t the lambda/[member]function to transform into std::function.
    +
    12  * @return An [std::function](http://en.cppreference.com/w/cpp/utility/functional/function) of the given functor/function.
    +
    13  */
    +
    14  template <class T>
    +
    15  auto to_std_function (T t) -> typename type_traits::function_traits<T>::function_type {
    +
    16  return typename type_traits::function_traits<T>::function_type(t);
    +
    17  }
    +
    18 
    +
    19 }}
    +
    20 
    +
    21 #endif /*PRE_FUNCTIONAL_TO_STD_FUNCTION_HPP*/
    +
    @@ -106,9 +106,9 @@
    diff --git a/html/to__underlying_8hpp_source.html b/html/to__underlying_8hpp_source.html index 4cd7517..af7d9ed 100644 --- a/html/to__underlying_8hpp_source.html +++ b/html/to__underlying_8hpp_source.html @@ -6,7 +6,7 @@ - + lib-cpp-pre: pre/enums/to_underlying.hpp Source File @@ -14,9 +14,6 @@ - @@ -38,40 +35,22 @@
    - + - - + + + +
    to_underlying.hpp
    -
    1 #ifndef PRE_ENUMS_TO_UNDERLYING_HPP
    2 #define PRE_ENUMS_TO_UNDERLYING_HPP
    3 
    4 #include <type_traits>
    5 
    6 namespace pre { namespace enums {
    7 
    11  template <typename E>
    12  typename std::underlying_type<E>::type to_underlying(E e) {
    13  return static_cast<typename std::underlying_type<E>::type>(e);
    14  }
    15 
    16 }}
    17 
    18 #endif
    std::underlying_type< E >::type to_underlying(E e)
    Definition: to_underlying.hpp:12
    - +
    1 #ifndef PRE_ENUMS_TO_UNDERLYING_HPP
    +
    2 #define PRE_ENUMS_TO_UNDERLYING_HPP
    +
    3 
    +
    4 #include <type_traits>
    +
    5 
    +
    6 namespace pre { namespace enums {
    +
    7 
    +
    11  template <typename E>
    +
    12  typename std::underlying_type<E>::type to_underlying(E e) {
    +
    13  return static_cast<typename std::underlying_type<E>::type>(e);
    +
    14  }
    +
    15 
    +
    16 }}
    +
    17 
    +
    18 #endif
    + +
    std::underlying_type< E >::type to_underlying(E e)
    Definition: to_underlying.hpp:12
    @@ -107,9 +101,9 @@