{"version":3,"sources":["/home/madhan/Apache/git/atlas/docs/target/src/documents/Project-Info/ProjectInfo.md"],"names":["layoutProps","MDXContent","components","props","mdxType","parentName","isMDXComponent"],"mappings":"iZASMA,EAAc,GAIL,SAASC,EAAW,GAG/B,IAFFC,EAAU,EAAVA,WACGC,EAAK,iBAER,OAAO,cALS,UAKC,iBAAKH,EAAiBG,EAAK,CAAED,WAAYA,EAAYE,QAAQ,cAC5E,oBACE,GAAM,uBAAqB,uBAE7B,wBACE,oBAAIC,WAAW,MAAI,gLAAkL,mBAAGA,WAAW,KAC/M,KAAQ,2BAAyB,SACnB,+BAEpB,oBACE,GAAM,YAAU,YAElB,2BACE,uBAAOA,WAAW,SAChB,oBAAIA,WAAW,SACb,oBAAIA,WAAW,KACb,MAAS,QAAM,YAEjB,oBAAIA,WAAW,KACb,MAAS,QAAM,iBAIrB,uBAAOA,WAAW,SAChB,oBAAIA,WAAW,SACb,oBAAIA,WAAW,KACb,MAAS,QACR,mBAAGA,WAAW,KACb,KAAQ,MAAI,UAEhB,oBAAIA,WAAW,KACb,MAAS,QAAM,+BAGnB,oBAAIA,WAAW,SACb,oBAAIA,WAAW,KACb,MAAS,QACR,mBAAGA,WAAW,KACb,KAAQ,cAAY,iBAExB,oBAAIA,WAAW,KACb,MAAS,QAAM,qEACwD,yBAAM,2FAEjF,oBAAIA,WAAW,SACb,oBAAIA,WAAW,KACb,MAAS,QACR,mBAAGA,WAAW,KACb,KAAQ,kBAAgB,kBAE5B,oBAAIA,WAAW,KACb,MAAS,QAAM,kGAGnB,oBAAIA,WAAW,SACb,oBAAIA,WAAW,KACb,MAAS,QACR,mBAAGA,WAAW,KACb,KAAQ,mBAAiB,mBAE7B,oBAAIA,WAAW,KACb,MAAS,QAAM,kEACqD,yBAAM,0FAE9E,oBAAIA,WAAW,SACb,oBAAIA,WAAW,KACb,MAAS,QACR,mBAAGA,WAAW,KACb,KAAQ,oBAAkB,oBAE9B,oBAAIA,WAAW,KACb,MAAS,QAAM,2DAGnB,oBAAIA,WAAW,SACb,oBAAIA,WAAW,KACb,MAAS,QACR,mBAAGA,WAAW,KACb,KAAQ,sBAAoB,sBAEhC,oBAAIA,WAAW,KACb,MAAS,QAAM,4FAM1B,+LAEDJ,EAAWK,gBAAiB","file":"static/js/documents-project-info-project-info.8337ab57.js","sourcesContent":["\nimport React from 'react'\nimport { mdx } from '@mdx-js/react'\n\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\n\n\nconst layoutProps = {\n  \n};\nconst MDXLayout = \"wrapper\"\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n    <h1 {...{\n      \"id\": \"project-information\"\n    }}>{`Project Information`}</h1>\n    <ul>\n      <li parentName=\"ul\">{`This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by `}<a parentName=\"li\" {...{\n          \"href\": \"http://maven.apache.org\"\n        }}>{`Maven`}</a>{` on behalf of the project.`}</li>\n    </ul>\n    <h1 {...{\n      \"id\": \"overview\"\n    }}>{`Overview`}</h1>\n    <table>\n      <thead parentName=\"table\">\n        <tr parentName=\"thead\">\n          <th parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}>{`Document`}</th>\n          <th parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}>{`Description`}</th>\n        </tr>\n      </thead>\n      <tbody parentName=\"table\">\n        <tr parentName=\"tbody\">\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}><a parentName=\"td\" {...{\n              \"href\": \"#/\"\n            }}>{`About`}</a></td>\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}>{`Apache Atlas Documentation`}</td>\n        </tr>\n        <tr parentName=\"tbody\">\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}><a parentName=\"td\" {...{\n              \"href\": \"#/TeamList\"\n            }}>{`Project Team`}</a></td>\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}>{`This document provides information on the members of this project.`}<br />{` These are the individuals who have contributed to the project in one form or another.`}</td>\n        </tr>\n        <tr parentName=\"tbody\">\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}><a parentName=\"td\" {...{\n              \"href\": \"#/MailingLists\"\n            }}>{`Mailing Lists`}</a></td>\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}>{`This document provides subscription and archive information for this project's mailing lists.`}</td>\n        </tr>\n        <tr parentName=\"tbody\">\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}><a parentName=\"td\" {...{\n              \"href\": \"#/IssueTracking\"\n            }}>{`Issue Tracking`}</a></td>\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}>{`This is a link to the issue management system for this project.`}<br />{` Issues (bugs, features, change requests) can be created and queried using this link.`}</td>\n        </tr>\n        <tr parentName=\"tbody\">\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}><a parentName=\"td\" {...{\n              \"href\": \"#/ProjectLicense\"\n            }}>{`Project License`}</a></td>\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}>{`This is a link to the definitions of project licenses.`}</td>\n        </tr>\n        <tr parentName=\"tbody\">\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}><a parentName=\"td\" {...{\n              \"href\": \"#/SourceRepository\"\n            }}>{`Source Repository`}</a></td>\n          <td parentName=\"tr\" {...{\n            \"align\": \"left\"\n          }}>{`This is a link to the online source repository that can be viewed via a web browser.`}</td>\n        </tr>\n      </tbody>\n    </table>\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;"],"sourceRoot":""}